[GHC] #15449: Nondeterministic Failure on aarch64 with -jn, n > 1

GHC ghc-devs at haskell.org
Fri Jul 27 20:14:54 UTC 2018


#15449: Nondeterministic Failure on aarch64 with -jn, n > 1
-------------------------------------+-------------------------------------
           Reporter:  tmobile        |             Owner:  (none)
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:  8.6.1
          Component:  Compiler       |           Version:  8.4.3
           Keywords:                 |  Operating System:  Linux
       Architecture:  aarch64        |   Type of failure:  Compile-time
                                     |  crash or panic
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 GHC releases 8.2.1 through 8.4.3 exhibit various crashes when invoked with
 '-jn' where n > 1. GHCHQ's binary releases have this behavior, as well as
 GHCs I've cross-built on my own.

 In order to reproduce this issue there must be some parallelism in the
 module dependency graph; I've attached a test package for easily
 reproducing this. Use of deriving in the test modules isn't necessary to
 trigger this; it merely gives the compiler some work to do. The 'hscolour'
 package also triggers this issue reliably.

 To trigger the bad behavior, simply run:

 ghc --make -jn Main.hs -o test

 with n > 1 in the test-package. Running this repeatedly (removing .hi and
 .o files in between runs, of course), I've observed these outcomes with
 varying frequencies:

 - Segmentation fault.
 - Bus fault.
 - Compiler process sleeps indefinitely.
 -
 {{{
 <no location info>: error:
     ghc: panic! (the 'impossible' happened)
   (GHC version 8.4.3 for aarch64-unknown-linux):
         Binary.UserData: no put_binding_name
 }}}

 -
 {{{
    ghc: internal error: MUT_VAR_CLEAN object entered!
        (GHC version 8.4.3 for aarch64_unknown_linux)
        Please report this as a GHC bug:
 http://www.haskell.org/ghc/reportabug
    Aborted (core dumped)
 }}}
 - And most strangely:
 {{{
 A.hs:3:1: error:
     • Kind signature on data type declaration has non-* return kind *
     • In the data declaration for ‘A’
   |
 3 | data A = A
   | ^^^^^^^^^^...
 }}}

 I have not noticed issues with any other concurrent Haskell programs on
 aarch64. I'm using the NVIDIA Jetson TX2 for these tests. I have not yet
 tried GHC 8.0.x, 8.6.x, or HEAD. I'm having trouble reproducing this in
 GDB; I'll report back when I've got that working.

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15449>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list