
#15449: Nondeterministic Failure on aarch64 with -jn, n > 1 -------------------------------------+------------------------------------- Reporter: tmobile | Owner: tmobile Type: bug | Status: new Priority: normal | Milestone: 8.10.1 Component: Compiler | Version: 8.4.3 Resolution: | Keywords: Operating System: Linux | Architecture: aarch64 Type of failure: Compile-time | Test Case: crash or panic | Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by bgamari): tmobile, if you want something else to try you might try this patch. I really don't see how the current implementation can be correct; afterall, during a thunk update we need to make sure that the result is visible to other cores *before* we update the thunk. Reordering here would be quite bad. On the other hand, it seems like we would have seen this go wrong on SPARC far earlier than today. {{{#!diff diff --git a/rts/Updates.h b/rts/Updates.h index 1ba398bd35..412db99dda 100644 --- a/rts/Updates.h +++ b/rts/Updates.h @@ -44,8 +44,8 @@ W_ bd; \ \ OVERWRITING_CLOSURE(p1); \ - StgInd_indirectee(p1) = p2; \ prim_write_barrier; \ + StgInd_indirectee(p1) = p2; \ SET_INFO(p1, stg_BLACKHOLE_info); \ LDV_RECORD_CREATE(p1); \ bd = Bdescr(p1); \ }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15449#comment:22 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler