[GHC] #14310: Assertion triggered by STM invariant.

GHC ghc-devs at haskell.org
Tue Oct 3 19:20:29 UTC 2017


#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


More information about the ghc-tickets mailing list