Skip to content

RTS gets stuck in scheduleDetectDeadlock()

Steps to reproduce:

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

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@entry=0x0, pcap=pcap@entry=0x7fffb90b7778) at rts/Schedule.c:2380
#5  0x0000000002187724 in rts_evalLazyIO (cap=cap@entry=0x7fffb90b7778, p=<optimized out>, ret=ret@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.

Trac metadata
Trac field Value
Version 8.1
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Runtime System
Test case
Differential revisions
BlockedBy
Related
Blocking
CC simonmar
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information