logo       

Threaded runtime error: msg#00122

lang.haskell.glasgow.bugs

Subject: Threaded runtime error

With -HEAD from darcs the new threaded runtime seems to trigger an assertion in
FreeBSD's libpthread. Maybe this is some sign of an error in the RTS?
I can only find references to this happending also in MySQL, but I haven't found
any explanation yet.

This is 'timeout' from the testsuite:

timeout@menelaos [20:17:08]> ./timeout 10 /usr/bin/true
FFatal error '_pq_insert_tail: Already in priority queue' at line 200 in file
/usr/src/lib/libpthread/thread/thr_priority_queue.c (errno = 0)

timeout@menelaos [20:20:15]> uname -a
FreeBSD menelaos.informatik.rwth-aachen.de 6.1-BETA3 FreeBSD 6.1-BETA3 #1: Mon
Mar 13 10:45:03 CET 2006
root@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:/usr/obj/usr/src/sys/MENELAOS i386

A debugging RTS around this location shows:

sched (task 0x80b9600): created thread 5, stack size = f2 words
sched (task 0x80b9600): new bound thread (5)
sched (task 0x80b9600): ### NEW SCHEDULER LOOP (task: 0x80b1e00, cap: 0x80aed20)
sched (task 0x80b9600): ### Running thread 5 in bound thread
sched (task 0x80b9600): -->> running thread 5 ThreadRunGHC ...
sched (task 0x80b9600): --<< thread 5 (ThreadRunGHC) stopped, yielding
sched (task 0x80b9600): ### Running thread 5 in bound thread
sched (task 0x80b9600): -->> running thread 5 ThreadRunGHC ...
sched (task 0x80b9400): returning; I want capability 0
sched (task 0x80b9400): returning; got capability 0
sched (task 0x80b9400): thread 2: re-entering RTS
sched (task 0x80b9400): --<< thread 2 (ThreadRunGHC) stopped, yielding
sched (task 0x80b9400): -->> running thread 2 ThreadRunGHC ...
sched (task 0x80b9400): thread 2 did a safe foreign call
sched (task 0x80b9400): freeing capability 0
sched (task 0x80b9400): thread 2: leaving RTS
sched (task 0x80b9600): thread 5 did a safe foreign call
sched (task 0x80b9600): starting new worker on capability 0
FFatal error '_pq_insert_tail: Already in priority queue' at line 200 in file
/usr/src/lib/libpthread/thread/thr_priority_queue.c (errno = 0)
sched (task 0x80b9600): returning; I want capability 0
sched (task 0x80b9600): returning; got capability 0
sched (task 0x80b9600): thread 4: re-entering RTS
--
http://www-i2.informatik.rwth-aachen.de/stolz/ *** PGP *** S/MIME
"All the excitement lies in pattern matching." (SPJ et al.)


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise