[GHC] #12062: Parallel make with -j0 and hs-boot leads to floating point exception

GHC ghc-devs at haskell.org
Sun May 15 03:29:05 UTC 2016


#12062: Parallel make with -j0 and hs-boot leads to floating point exception
-------------------------------------+-------------------------------------
           Reporter:  ezyang         |             Owner:
               Type:  bug            |            Status:  new
           Priority:  low            |         Milestone:
          Component:  Runtime        |           Version:  8.0.1-rc2
  System                             |
           Keywords:  newcomer       |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  None/Unknown
  Unknown/Multiple                   |
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 When I run https://ghc.haskell.org/trac/ghc/ticket/1012#comment:5 with
 `ghc-8.0 --make ModuleB.hs -j0 -fforce-recomp` (the `-j0` is important) I
 get a `Floating point exception (core dumped)`.

 When I run under GDB, I get:

 {{{
 (gdb) r
 Starting program:
 /srv/code/ghc-8.0.0.20160204/usr/lib/ghc-8.0.0.20160204/bin/ghc
 -B/home/ezyang/Dev/ghc-8.0.0.20160204/usr/lib/ghc-8.0.0.20160204 --make
 ModuleB.hs -j0 -fforce-recomp
 [Thread debugging using libthread_db enabled]
 Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
 [New Thread 0x7fffecd7f700 (LWP 28877)]
 [New Thread 0x7fffe7fff700 (LWP 28878)]
 [New Thread 0x7fffe77fe700 (LWP 28879)]
 [1 of 4] Compiling ModuleA[boot]    ( ModuleA.hs-boot, ModuleA.o-boot )
 [2 of 4] Compiling ModuleC          ( ModuleC.hs, ModuleC.o )
 [3 of 4] Compiling ModuleA          ( ModuleA.hs, ModuleA.o )
 [4 of 4] Compiling ModuleB          ( ModuleB.hs, ModuleB.o )

 Program received signal SIGFPE, Arithmetic exception.
 [Switching to Thread 0x7fffecd7f700 (LWP 28877)]
 schedule (initialCapability=<optimized out>, task=task at entry=0x7b6310) at
 rts/Schedule.c:373
 373     rts/Schedule.c: No such file or directory.
 (gdb) bt
 #0  schedule (initialCapability=<optimized out>, task=task at entry=0x7b6310)
 at rts/Schedule.c:373
 #1  0x00007fffed65018c in scheduleWorker (cap=<optimized out>,
 task=0x7b6310) at rts/Schedule.c:2378
 #2  0x00007ffff738a6aa in start_thread (arg=0x7fffecd7f700) at
 pthread_create.c:333
 #3  0x00007fffed14fe9d in clone () at
 ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
 }}}

 I once got a different error running this:

 {{{
 warning: Corrupted shared library list: 0x7e1ee0 != 0x7ffff7ffd9d8
 }}}

 Looking at the code which is a `capabilities[cap->no %
 enabled_capabilities]`, I guess this is just something goofy, like GHC not
 rejecting `-j0` and then however we're setting the capabilities not
 checking this case.

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


More information about the ghc-tickets mailing list