Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • GHC GHC
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 5,248
    • Issues 5,248
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 563
    • Merge requests 563
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Releases
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Glasgow Haskell CompilerGlasgow Haskell Compiler
  • GHCGHC
  • Issues
  • #8295
Closed
Open
Issue created Sep 14, 2013 by Edward Z. Yang@ezyangDeveloper

T4850 deadlocks when run with -Ds on Windows (also it's failing)

T4850 has been failing recently, reporting too *few* OS threads allocated. That's pretty odd. What is also odd (and much less good) is that T4850 is deadlocking when you run it with -Ds. Uh oh!

bash.exe-3.1$ ./T4850 +RTS -Ds
        7eb0: created capset 0 of type 2
        7eb0: created capset 1 of type 3
        7eb0: cap 0: initialised
        7eb0: assigned cap 0 to capset 0
        7eb0: assigned cap 0 to capset 1
        7eb0: allocated 1 more capabilities
        7eb0: new task (taskCount: 1)
        7eb0: returning; I want capability 0
        7eb0: resuming capability 0
        7eb0: cap 0: created thread 1
        7eb0: new bound thread (1)
        7eb0: cap 0: schedule()
        7eb0: cap 0: running thread 1 (ThreadRunGHC)
        7eb0: cap 0: created thread 2
        7eb0: cap 0: thread 1 stopped (finished)
        7eb0: bound thread (1) finished
        7eb0: starting new worker on capability 0
        7eb0: new worker task (taskCount: 2)
        7eb0: task exiting
        7eb0: new task (taskCount: 2)
        7eb0: returning; I want capability 0
        7fc0: cap 0: schedule()
        7fc0: giving up capability 0
        7fc0: passing capability 0 to worker 0x7eb0
        7eb0: resuming capability 0
        7eb0: cap 0: created thread 3
        7eb0: new bound thread (3)
        7eb0: cap 0: schedule()
        7eb0: giving up capability 0
        7eb0: passing capability 0 to worker 0x7fc0
        7fc0: woken up on capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to bound task 0x7eb0
        7eb0: woken up on capability 0
        7eb0: resuming capability 0
        7eb0: cap 0: running thread 3 (ThreadRunGHC)
        7eb0: cap 0: thread 3 stopped (suspended while making a foreign call)
        7eb0: starting new worker on capability 0
        7eb0: new worker task (taskCount: 3)
        7eb0: returning; I want capability 0
        7b50: cap 0: schedule()
        7b50: giving up capability 0
        7b50: passing capability 0 to bound task 0x7eb0
        7eb0: resuming capability 0
        7eb0: cap 0: running thread 3 (ThreadRunGHC)
        7eb0: cap 0: created thread 4
        7eb0: cap 0: thread 3 stopped (blocked on an MVar)
        thread    3 @ 00e03bbc is blocked on an MVar @ 00e021e4 (TSO_DIRTY)
        7eb0: giving up capability 0
        7eb0: passing capability 0 to worker 0x7b50
        7b50: woken up on capability 0
        7b50: resuming capability 0
        7b50: cap 0: running thread 4 (ThreadRunGHC)
        7b50: cap 0: thread 4 stopped (suspended while making a foreign call)
        7b50: starting new worker on capability 0
        7b50: new worker task (taskCount: 4)
        7b50: new task (taskCount: 4)
        7b50: returning; I want capability 0
        7de4: cap 0: schedule()
        7de4: giving up capability 0
        7de4: passing capability 0 to worker 0x7b50
        7b50: resuming capability 0
        7b50: cap 0: created thread 5
        7b50: new bound thread (5)
        7b50: cap 0: schedule()
        7b50: cap 0: running thread 5 (ThreadRunGHC)
        7b50: cap 0: thread 5 stopped (finished)
        7b50: bound thread (5) finished
        7b50: freeing capability 0
        7b50: task exiting
        7b50: returning; I want capability 0
        7b50: resuming capability 0
        7b50: cap 0: running thread 4 (ThreadRunGHC)
        7b50: cap 0: waking up thread 3 on cap 0
        7b50: cap 0: thread 4 stopped (finished)
        7b50: giving up capability 0
        7b50: passing capability 0 to bound task 0x7eb0
        7eb0: woken up on capability 0
        7eb0: resuming capability 0
        7eb0: cap 0: running thread 3 (ThreadRunGHC)
        7eb0: cap 0: thread 3 stopped (suspended while making a foreign call)
        7eb0: freeing capability 0
        7eb0: returning; I want capability 0
        7eb0: resuming capability 0
        7eb0: cap 0: running thread 3 (ThreadRunGHC)
        7eb0: cap 0: thread 3 stopped (suspended while making a foreign call)
        7eb0: freeing capability 0
4
        7eb0: returning; I want capability 0
        7eb0: resuming capability 0
        7eb0: cap 0: running thread 3 (ThreadRunGHC)
        7eb0: cap 0: created thread 6
        7eb0: cap 0: thread 3 stopped (blocked on an MVar)
        thread    3 @ 00e03bbc is blocked on an MVar @ 00e021e4 (TSO_DIRTY)
        7eb0: giving up capability 0
        7eb0: passing capability 0 to worker 0x7b50
        7b50: woken up on capability 0
        7b50: resuming capability 0
        7b50: cap 0: running thread 6 (ThreadRunGHC)
        7b50: cap 0: thread 6 stopped (suspended while making a foreign call)
        7b50: freeing capability 0
        7b50: new task (taskCount: 4)
        7b50: returning; I want capability 0
        7b50: resuming capability 0
        7b50: cap 0: created thread 7
        7b50: new bound thread (7)
        7b50: cap 0: schedule()
        7b50: cap 0: running thread 7 (ThreadRunGHC)
        7b50: cap 0: thread 7 stopped (finished)
        7b50: bound thread (7) finished
        7b50: freeing capability 0
        7b50: task exiting
        7b50: returning; I want capability 0
        7b50: resuming capability 0
        7b50: cap 0: running thread 6 (ThreadRunGHC)
        7b50: cap 0: waking up thread 3 on cap 0
        7b50: cap 0: thread 6 stopped (finished)
        7b50: giving up capability 0
        7b50: passing capability 0 to bound task 0x7eb0
        7eb0: woken up on capability 0
        7eb0: resuming capability 0
        7eb0: cap 0: running thread 3 (ThreadRunGHC)
        7eb0: cap 0: thread 3 stopped (suspended while making a foreign call)
        7eb0: freeing capability 0
        7eb0: returning; I want capability 0
        7eb0: resuming capability 0
        7eb0: cap 0: running thread 3 (ThreadRunGHC)
        7eb0: cap 0: thread 3 stopped (suspended while making a foreign call)
        7eb0: freeing capability 0
4
        7eb0: returning; I want capability 0
        7eb0: resuming capability 0
        7eb0: cap 0: running thread 3 (ThreadRunGHC)
        7eb0: cap 0: thread 3 stopped (yielding)
        7eb0: cap 0: running thread 3 (ThreadRunGHC)
        7eb0: cap 0: thread 3 stopped (finished)
        7eb0: bound thread (3) finished
        7eb0: freeing capability 0
        7eb0: task exiting
        7eb0: new task (taskCount: 4)
        7eb0: returning; I want capability 0
        7eb0: resuming capability 0
        7eb0: cap 0: created thread 8
        7eb0: new bound thread (8)
        7eb0: cap 0: schedule()
        7eb0: cap 0: running thread 8 (ThreadRunGHC)
        7eb0: cap 0: thread 8 stopped (finished)
        7eb0: bound thread (8) finished
        7eb0: freeing capability 0
        7eb0: task exiting
        7eb0: new task (taskCount: 4)
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7eb0: returning; I want capability 0
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to worker 0x7eb0
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to worker 0x7eb0
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to worker 0x7eb0
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to worker 0x7eb0
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to worker 0x7eb0
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to worker 0x7eb0
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to worker 0x7eb0
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to worker 0x7eb0
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to worker 0x7eb0
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to worker 0x7eb0
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to worker 0x7eb0
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to worker 0x7eb0
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to worker 0x7eb0
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to worker 0x7eb0
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to worker 0x7eb0
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to worker 0x7eb0
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to worker 0x7eb0
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to worker 0x7eb0
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to worker 0x7eb0
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to worker 0x7eb0
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to worker 0x7eb0
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to worker 0x7eb0
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to worker 0x7eb0
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to worker 0x7eb0
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to worker 0x7eb0
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to worker 0x7eb0
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to worker 0x7eb0
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to worker 0x7eb0
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (suspended while making a foreign call)
        7fc0: passing capability 0 to worker 0x7eb0
        7fc0: returning; I want capability 0
        7fc0: resuming capability 0
        7fc0: cap 0: running thread 2 (ThreadRunGHC)
        7fc0: cap 0: thread 2 stopped (yielding)
        7fc0: SCHED_INTERRUPTING
        7fc0: cap 0: requesting sequential GC
        7fc0: grabbing all the capabilies (0/1)
all threads:
threads on capability 0:
        thread    2 @ 00e037bc is not blocked (TSO_DIRTY)
other threads:
        7fc0: deleting all threads
        7fc0: cap 0: raising exception in thread 2.
        7fc0: cap 0: starting GC
        7fc0: cap 0: GC working
        7fc0: cap 0: GC idle
        7fc0: cap 0: GC done
        7fc0: cap 0: GC idle
        7fc0: cap 0: GC done
        7fc0: cap 0: GC idle
        7fc0: cap 0: GC done
        7fc0: cap 0: all caps stopped for GC
        7fc0: cap 0: finished GC
        7fc0: SCHED_SHUTTING_DOWN
        7fc0: giving up capability 0
        7fc0: passing capability 0 to worker 0x7eb0
        7eb0: resuming capability 0
        7eb0: passing capability 0 to worker 0x7fc0
        7eb0: shutting down capability 0, attempt 0
        7fc0: woken up on capability 0
        7eb0: runnable threads or workers still alive, yielding
        7eb0: passing capability 0 to worker 0x7fc0
        7eb0: shutting down capability 0, attempt 1
        7eb0: not owner, yielding
        7eb0: shutting down capability 0, attempt 2
        7eb0: not owner, yielding
        7eb0: shutting down capability 0, attempt 3
        7eb0: not owner, yielding
        7eb0: shutting down capability 0, attempt 4
        7eb0: not owner, yielding
        7eb0: shutting down capability 0, attempt 5
        7eb0: not owner, yielding
        7eb0: shutting down capability 0, attempt 6
        7eb0: not owner, yielding
        7eb0: shutting down capability 0, attempt 7
        7eb0: not owner, yielding
        7eb0: shutting down capability 0, attempt 8
        7eb0: not owner, yielding
        7eb0: shutting down capability 0, attempt 9
        7eb0: not owner, yielding
        7eb0: shutting down capability 0, attempt 10
        7eb0: not owner, yielding
        7eb0: shutting down capability 0, attempt 11
        7eb0: not owner, yielding
        7eb0: shutting down capability 0, attempt 12
        7eb0: not owner, yielding
        7eb0: shutting down capability 0, attempt 13
        7eb0: not owner, yielding
        7eb0: shutting down capability 0, attempt 14
        7eb0: not owner, yielding
        7eb0: shutting down capability 0, attempt 15
        7eb0: not owner, yielding
        7eb0: shutting down capability 0, attempt 16
        7eb0: not owner, yielding
        7eb0: shutting down capability 0, attempt 17
        7eb0: not owner, yielding
        7eb0: shutting down capability 0, attempt 18
        7eb0: not owner, yielding
...

ad infinitum.

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