[GHC] #11406: RTS gets stuck in scheduleDetectDeadlock()

GHC ghc-devs at haskell.org
Mon Jan 11 15:21:30 UTC 2016


#11406: RTS gets stuck in scheduleDetectDeadlock()
-------------------------------------+-------------------------------------
           Reporter:  osa1           |             Owner:
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:
          Component:  Runtime        |           Version:  8.1
  System                             |
           Keywords:                 |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  None/Unknown
  Unknown/Multiple                   |
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 Steps to reproduce:

 - Compile HEAD.
 - Add this line to MkId.mkDataConRep:

     {{{#!haskell
     pprTrace "mkDataConRep" (text "wrap_body:" <+> ppr wrap_body) (return
 ())
     }}}

 - Recompile only stage1. (stage2 will fail, see next step)
 - Compile any file using newly generated stage1.

 GHC gets stuck, not using any CPU or RAM. The stack trace:

 {{{
 #0  0x00007fd56d570650 in __pause_nocancel () at ../sysdeps/unix/syscall-
 template.S:81
 #1  0x0000000002174e11 in awaitUserSignals () at rts/posix/Signals.c:343
 #2  0x0000000002168a6a in scheduleDetectDeadlock (pcap=<synthetic
 pointer>, task=<optimized out>) at rts/Schedule.c:931
 #3  schedule (task=0x42fa8e0, initialCapability=<optimized out>) at
 rts/Schedule.c:282
 #4  scheduleWaitThread (tso=<optimized out>, ret=ret at entry=0x0,
 pcap=pcap at entry=0x7fffb90b7778) at rts/Schedule.c:2380
 #5  0x0000000002187724 in rts_evalLazyIO (cap=cap at entry=0x7fffb90b7778,
 p=<optimized out>, ret=ret at entry=0x0) at rts/RtsAPI.c:500
 #6  0x0000000002166637 in real_main () at rts/RtsMain.c:63
 #7  hs_main (argc=<optimized out>, argv=<optimized out>,
 main_closure=<optimized out>, rts_config=...) at rts/RtsMain.c:114
 #8  0x0000000000421fe4 in main ()
 }}}

 It's basically stuck in pause() syscall.

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


More information about the ghc-tickets mailing list