[GHC] #8295: T4850 deadlocks when run with -Ds on Windows (also it's failing)
GHC
ghc-devs at haskell.org
Sat Sep 14 10:38:23 CEST 2013
#8295: T4850 deadlocks when run with -Ds on Windows (also it's failing)
--------------------------+------------------------------------------------
Reporter: ezyang | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: | Version: 7.7
Runtime System | Operating System: Windows
Keywords: | Type of failure: Incorrect result at runtime
Architecture: x86_64 | Test Case: T4850
(amd64) | Blocking:
Difficulty: |
Unknown |
Blocked By: |
Related Tickets: |
--------------------------+------------------------------------------------
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.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8295>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list