
#14310: Assertion triggered by STM invariant. ----------------------------------+-------------------------------------- Reporter: mbw | Owner: (none) Type: bug | Status: new Priority: high | Milestone: 8.4.1 Component: Compiler | Version: 8.2.1 Resolution: | Keywords: Operating System: Linux | Architecture: x86_64 (amd64) Type of failure: Runtime crash | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ----------------------------------+-------------------------------------- Changes (by bgamari): * priority: normal => high * milestone: => 8.4.1 Old description:
The program attached depends on the async and stm packages. It will push some numbers through a pipeline, while keeping track of some state.
If invoked without arguments, the program will output the state and result of each iteration. If invoked via "./repro check", an STM invariant will be installed when the state is initialized. This invariant will cause the program to
a) hangup, presumably due to a livelock, if the program has been compiled without "-debug",
b) crash with the following error: "internal error: ASSERTION FAILED: file rts/RaiseAsync.c, line 1001", if the "-debug" flag has been used for compilation.
The latter case also happens with GHC 8.0.2: "internal error: ASSERTION FAILED: file rts/RaiseAsync.c, line 997".
Furthermore, this problem only occurs if the program is compiled using the additional flags "-rtsopts -threaded -with-rtsopts=-N".
New description: The program attached depends on the async and stm packages. It will push some numbers through a pipeline, while keeping track of some state. If invoked without arguments, the program will output the state and result of each iteration. If invoked via `./repro check`, an STM invariant will be installed when the state is initialized. This invariant will cause the program to 1. hangup, presumably due to a livelock, if the program has been compiled without `-debug`, or 2. crash with the following error: {{{ internal error: ASSERTION FAILED: file rts/RaiseAsync.c, line 1001", }}} if the "-debug" flag has been used for compilation. The latter case also happens with GHC 8.0.2: {{{ internal error: ASSERTION FAILED: file rts/RaiseAsync.c, line 997 }}} Furthermore, this problem only occurs if the program is compiled using the additional flags `-rtsopts -threaded -with-rtsopts=-N`. -- -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14310#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler