
#12009: ASSERTION FAILED: file rts/LdvProfile.c, line 48 -------------------------------------+------------------------------------- Reporter: erikd | Owner: erikd Type: bug | Status: new Priority: normal | Milestone: 8.0.2 Component: Compiler | Version: 7.10.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: Runtime crash | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by erikd): * cc: carter (added) Comment: Oh wow, just realised that the profiling code is not thread safe!!!!! The function `LDV_recordDead` mutates global variable `censuses` which does not have any locking around it. Only figured this out because the following assert (in `LDV_recordDead`) was being triggered. {{{ ASSERT(censuses[t].void_total < censuses[t].not_used); }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12009#comment:7 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler