
#10414: Buggy behavior with threaded runtime (-N1 working, -N2 getting into <<loop>>) -------------------------------------+------------------------------------- Reporter: exio4 | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.10.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Incorrect result | Unknown/Multiple at runtime | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Revisions: -------------------------------------+------------------------------------- Comment (by rwbarton): I inlined the relevant parts of the parallel package into michaelt's example for the sake of testing across multiple versions of GHC. In the process I discovered that building with `-feager-blackholing` is necessary to reproduce the bug. Well, not surprising. (The parallel package specifies this flag in its cabal file.) To be specific, I am building it as {{{ ghc -threaded -O -rtsopts par -fforce-recomp -feager-blackholing }}} and running as {{{ while ./par 8 +RTS -N4; do :; done }}} until it fails (which is usually immediately). I managed to bisect the failure down to these three commits between 7.6 and 7.8 which added cardinality analysis: https://github.com/ghc/ghc/compare/da4ff650ae77930a5a10d4886c8bc7d37f081db7.... Interestingly in the versions that have cardinality analysis, the program still loops even when built with `-fkill-absence`. Hopefully this provides some clues to someone... -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10414#comment:8 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler