Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
GHC
GHC
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 4,310
    • Issues 4,310
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
    • Iterations
  • Merge Requests 382
    • Merge Requests 382
  • Requirements
    • Requirements
    • List
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Security & Compliance
    • Security & Compliance
    • Dependency List
    • License Compliance
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI / CD
    • Code Review
    • Insights
    • Issue
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Glasgow Haskell Compiler
  • GHCGHC
  • Issues
  • #8295

Closed
Open
Opened 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
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: ghc/ghc#8295