Hi David, I can reproduce this (or at least a very similar issue) seemingly every time on 32-bit PowerPC. All three of my uploads to Debian failed to build on it (across different machines) and I can reproduce it on another box. It happens with both jessie and unstable; below is the state of all the threads when I built it on unstable with two calls to "make compiler" followed by a "make check" (though ./poly --script Tests/Succeed/Test166.ML also hangs, so the test harness and running other tests first is irrelevant). Do you have access to a PowerPC machine you can put Debian on? If not I can probably arrange getting you remote access to one.
Regards, James
(gdb) thread apply all bt
Thread 16 (Thread 0xee2ff450 (LWP 1795)): #0 0x1fdefb98 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/powerpc-linux-gnu/libpthread.so.0 #1 0x1ff45718 in pthread_cond_wait () from /lib/powerpc-linux-gnu/libc.so.6 #2 0x20024eb4 in PCondVar::Wait (this=this at entry=0xf2a172b8, pLock=pLock at entry=0x200911ec <processesModule+20>) at locking.cpp:169 #3 0x20036880 in Processes::WaitInfinite (this=this at entry=0x200911d8 <processesModule>, taskData=taskData at entry=0xf2a17280, hMutex=0xf2a6a4c0) at processes.cpp:576 #4 0x2003694c in PolyThreadCondVarWait (threadId=<optimized out>, arg=...) at processes.cpp:509 #5 0x2004ca2c in IntTaskData::SwitchToPoly (this=this at entry=0xf2a17280) at interpret.cpp:855 #6 0x2004f374 in IntTaskData::EnterPolyCode (this=0xf2a17280) at interpret.cpp:1936 #7 0x20037074 in NewThreadFunction (parameter=0xf2a17280) at processes.cpp:1361 #8 0x1fde7500 in start_thread () from /lib/powerpc-linux-gnu/libpthread.so.0 #9 0x1ff339ac in clone () from /lib/powerpc-linux-gnu/libc.so.6
Thread 15 (Thread 0xeeaff450 (LWP 1794)): #0 0x1fdefb98 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/powerpc-linux-gnu/libpthread.so.0 #1 0x1ff45718 in pthread_cond_wait () from /lib/powerpc-linux-gnu/libc.so.6 #2 0x20024eb4 in PCondVar::Wait (this=this at entry=0xf2a17088, pLock=pLock at entry=0x200911ec <processesModule+20>) at locking.cpp:169 #3 0x20036880 in Processes::WaitInfinite (this=this at entry=0x200911d8 <processesModule>, taskData=taskData at entry=0xf2a17050, hMutex=0xf2a69510) at processes.cpp:576 #4 0x2003694c in PolyThreadCondVarWait (threadId=<optimized out>, arg=...) at processes.cpp:509 #5 0x2004ca2c in IntTaskData::SwitchToPoly (this=this at entry=0xf2a17050) at interpret.cpp:855 #6 0x2004f374 in IntTaskData::EnterPolyCode (this=0xf2a17050) at interpret.cpp:1936 #7 0x20037074 in NewThreadFunction (parameter=0xf2a17050) at processes.cpp:1361 #8 0x1fde7500 in start_thread () from /lib/powerpc-linux-gnu/libpthread.so.0 #9 0x1ff339ac in clone () from /lib/powerpc-linux-gnu/libc.so.6
Thread 14 (Thread 0xef2ff450 (LWP 1793)): #0 0x1fdefb98 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/powerpc-linux-gnu/libpthread.so.0 #1 0x1ff45718 in pthread_cond_wait () from /lib/powerpc-linux-gnu/libc.so.6 #2 0x20024eb4 in PCondVar::Wait (this=this at entry=0xf2a16f48, pLock=pLock at entry=0x200911ec <processesModule+20>) at locking.cpp:169 #3 0x20036880 in Processes::WaitInfinite (this=this at entry=0x200911d8 <processesModule>, taskData=taskData at entry=0xf2a16f10, hMutex=0xf2a68560) at processes.cpp:576 #4 0x2003694c in PolyThreadCondVarWait (threadId=<optimized out>, arg=...) at processes.cpp:509 #5 0x2004ca2c in IntTaskData::SwitchToPoly (this=this at entry=0xf2a16f10) at interpret.cpp:855 #6 0x2004f374 in IntTaskData::EnterPolyCode (this=0xf2a16f10) at interpret.cpp:1936 #7 0x20037074 in NewThreadFunction (parameter=0xf2a16f10) at processes.cpp:1361 #8 0x1fde7500 in start_thread () from /lib/powerpc-linux-gnu/libpthread.so.0 #9 0x1ff339ac in clone () from /lib/powerpc-linux-gnu/libc.so.6
Thread 13 (Thread 0xf1fff450 (LWP 1792)): #0 0x1fdefb98 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/powerpc-linux-gnu/libpthread.so.0 #1 0x1ff45718 in pthread_cond_wait () from /lib/powerpc-linux-gnu/libc.so.6 #2 0x20024eb4 in PCondVar::Wait (this=this at entry=0xf2a19078, pLock=pLock at entry=0x200911ec <processesModule+20>) at locking.cpp:169 #3 0x20036540 in Processes::MutexBlock (this=this at entry=0x200911d8 <processesModule>, taskData=taskData at entry=0xf2a19040, hMutex=0xf2a190e0) at processes.cpp:465 #4 0x2003661c in PolyThreadMutexBlock (threadId=<optimized out>, arg=...) at processes.cpp:395 #5 0x2004ca2c in IntTaskData::SwitchToPoly (this=this at entry=0xf2a19040) at interpret.cpp:855 #6 0x2004f374 in IntTaskData::EnterPolyCode (this=0xf2a19040) at interpret.cpp:1936 #7 0x20037074 in NewThreadFunction (parameter=0xf2a19040) at processes.cpp:1361 #8 0x1fde7500 in start_thread () from /lib/powerpc-linux-gnu/libpthread.so.0 #9 0x1ff339ac in clone () from /lib/powerpc-linux-gnu/libc.so.6
Thread 12 (Thread 0xf29ff450 (LWP 1757)): #0 0x1fdefb98 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/powerpc-linux-gnu/libpthread.so.0 #1 0x1ff45718 in pthread_cond_wait () from /lib/powerpc-linux-gnu/libc.so.6 #2 0x20024eb4 in PCondVar::Wait (this=this at entry=0xf2a044c8, pLock=pLock at entry=0x200911ec <processesModule+20>) at locking.cpp:169 #3 0x20037cb4 in Processes::WaitForSignal (this=0x200911d8 <processesModule>, taskData=0xf2a04490, sigLock=0x20092210 <sigLock>) at processes.cpp:2110 #4 0x20048aac in waitForSignal (taskData=0xf2a04490) at sighandler.cpp:275 #5 PolyWaitForSignal (threadId=<optimized out>) at sighandler.cpp:344 #6 0x2004c9cc in IntTaskData::SwitchToPoly (this=this at entry=0xf2a04490) at interpret.cpp:843 #7 0x2004f3f0 in IntTaskData::EnterPolyCode (this=0xf2a04490) at interpret.cpp:1936 #8 0x20037074 in NewThreadFunction (parameter=0xf2a04490) at processes.cpp:1361 #9 0x1fde7500 in start_thread () from /lib/powerpc-linux-gnu/libpthread.so.0 #10 0x1ff339ac in clone () from /lib/powerpc-linux-gnu/libc.so.6
Thread 11 (Thread 0xf33cf450 (LWP 1756)): #0 0x1fdefb98 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/powerpc-linux-gnu/libpthread.so.0 #1 0x1ff45718 in pthread_cond_wait () from /lib/powerpc-linux-gnu/libc.so.6 #2 0x20024eb4 in PCondVar::Wait (this=this at entry=0x20adc4a8, pLock=pLock at entry=0x200911ec <processesModule+20>) at locking.cpp:169 #3 0x20036880 in Processes::WaitInfinite (this=this at entry=0x200911d8 <processesModule>, taskData=taskData at entry=0x20adc470, hMutex=0x20adc51c) at processes.cpp:576 #4 0x2003694c in PolyThreadCondVarWait (threadId=<optimized out>, arg=...) at processes.cpp:509 #5 0x2004ca2c in IntTaskData::SwitchToPoly (this=this at entry=0x20adc470) at interpret.cpp:855 #6 0x2004f374 in IntTaskData::EnterPolyCode (this=0x20adc470) at interpret.cpp:1936 #7 0x20037074 in NewThreadFunction (parameter=0x20adc470) at processes.cpp:1361 #8 0x1fde7500 in start_thread () from /lib/powerpc-linux-gnu/libpthread.so.0 #9 0x1ff339ac in clone () from /lib/powerpc-linux-gnu/libc.so.6
Thread 10 (Thread 0xf3bdf450 (LWP 1755)): #0 0x1fdf365c in do_futex_wait.constprop () from /lib/powerpc-linux-gnu/libpthread.so.0 #1 0x1fdf3808 in __new_sem_wait_slow.constprop.1 () from /lib/powerpc-linux-gnu/libpthread.so.0 #2 0x20025288 in PSemaphore::Wait (this=this at entry=0x20090688 <gTaskFarm>) at locking.cpp:308 #3 0x20021df0 in GCTaskFarm::ThreadFunction (this=0x20090688 <gTaskFarm>) at gctaskfarm.cpp:218 #4 0x20021f24 in GCTaskFarm::WorkerThreadFunction (parameter=<optimized out>) at gctaskfarm.cpp:241 #5 0x1fde7500 in start_thread () from /lib/powerpc-linux-gnu/libpthread.so.0 #6 0x1ff339ac in clone () from /lib/powerpc-linux-gnu/libc.so.6
Thread 9 (Thread 0xf43df450 (LWP 1754)): #0 0x1fdf365c in do_futex_wait.constprop () from /lib/powerpc-linux-gnu/libpthread.so.0 #1 0x1fdf3808 in __new_sem_wait_slow.constprop.1 () from /lib/powerpc-linux-gnu/libpthread.so.0 #2 0x20025288 in PSemaphore::Wait (this=this at entry=0x20090688 <gTaskFarm>) at locking.cpp:308 #3 0x20021df0 in GCTaskFarm::ThreadFunction (this=0x20090688 <gTaskFarm>) at gctaskfarm.cpp:218 #4 0x20021f24 in GCTaskFarm::WorkerThreadFunction (parameter=<optimized out>) at gctaskfarm.cpp:241 #5 0x1fde7500 in start_thread () from /lib/powerpc-linux-gnu/libpthread.so.0 #6 0x1ff339ac in clone () from /lib/powerpc-linux-gnu/libc.so.6
Thread 8 (Thread 0xf4bdf450 (LWP 1753)): #0 0x1fdf365c in do_futex_wait.constprop () from /lib/powerpc-linux-gnu/libpthread.so.0 #1 0x1fdf3808 in __new_sem_wait_slow.constprop.1 () from /lib/powerpc-linux-gnu/libpthread.so.0 #2 0x20025288 in PSemaphore::Wait (this=this at entry=0x20090688 <gTaskFarm>) at locking.cpp:308 #3 0x20021df0 in GCTaskFarm::ThreadFunction (this=0x20090688 <gTaskFarm>) at gctaskfarm.cpp:218 #4 0x20021f24 in GCTaskFarm::WorkerThreadFunction (parameter=<optimized out>) at gctaskfarm.cpp:241 #5 0x1fde7500 in start_thread () from /lib/powerpc-linux-gnu/libpthread.so.0 #6 0x1ff339ac in clone () from /lib/powerpc-linux-gnu/libc.so.6
Thread 7 (Thread 0xf53df450 (LWP 1752)): #0 0x1fdf365c in do_futex_wait.constprop () from /lib/powerpc-linux-gnu/libpthread.so.0 #1 0x1fdf3808 in __new_sem_wait_slow.constprop.1 () from /lib/powerpc-linux-gnu/libpthread.so.0 #2 0x20025288 in PSemaphore::Wait (this=this at entry=0x20090688 <gTaskFarm>) at locking.cpp:308 #3 0x20021df0 in GCTaskFarm::ThreadFunction (this=0x20090688 <gTaskFarm>) at gctaskfarm.cpp:218 #4 0x20021f24 in GCTaskFarm::WorkerThreadFunction (parameter=<optimized out>) at gctaskfarm.cpp:241 #5 0x1fde7500 in start_thread () from /lib/powerpc-linux-gnu/libpthread.so.0 #6 0x1ff339ac in clone () from /lib/powerpc-linux-gnu/libc.so.6
Thread 6 (Thread 0xf5bdf450 (LWP 1751)): #0 0x1fdf365c in do_futex_wait.constprop () from /lib/powerpc-linux-gnu/libpthread.so.0 #1 0x1fdf3808 in __new_sem_wait_slow.constprop.1 () from /lib/powerpc-linux-gnu/libpthread.so.0 #2 0x20025288 in PSemaphore::Wait (this=this at entry=0x20090688 <gTaskFarm>) at locking.cpp:308 #3 0x20021df0 in GCTaskFarm::ThreadFunction (this=0x20090688 <gTaskFarm>) at gctaskfarm.cpp:218 #4 0x20021f24 in GCTaskFarm::WorkerThreadFunction (parameter=<optimized out>) at gctaskfarm.cpp:241 #5 0x1fde7500 in start_thread () from /lib/powerpc-linux-gnu/libpthread.so.0 #6 0x1ff339ac in clone () from /lib/powerpc-linux-gnu/libc.so.6
Thread 5 (Thread 0xf63df450 (LWP 1750)): #0 0x1fdf365c in do_futex_wait.constprop () from /lib/powerpc-linux-gnu/libpthread.so.0 #1 0x1fdf3808 in __new_sem_wait_slow.constprop.1 () from /lib/powerpc-linux-gnu/libpthread.so.0 #2 0x20025288 in PSemaphore::Wait (this=this at entry=0x20090688 <gTaskFarm>) at locking.cpp:308 #3 0x20021df0 in GCTaskFarm::ThreadFunction (this=0x20090688 <gTaskFarm>) at gctaskfarm.cpp:218 #4 0x20021f24 in GCTaskFarm::WorkerThreadFunction (parameter=<optimized out>) at gctaskfarm.cpp:241 #5 0x1fde7500 in start_thread () from /lib/powerpc-linux-gnu/libpthread.so.0 #6 0x1ff339ac in clone () from /lib/powerpc-linux-gnu/libc.so.6
Thread 4 (Thread 0xf6bdf450 (LWP 1749)): #0 0x1fdf365c in do_futex_wait.constprop () from /lib/powerpc-linux-gnu/libpthread.so.0 #1 0x1fdf3808 in __new_sem_wait_slow.constprop.1 () from /lib/powerpc-linux-gnu/libpthread.so.0 #2 0x20025288 in PSemaphore::Wait (this=this at entry=0x20090688 <gTaskFarm>) at locking.cpp:308 #3 0x20021df0 in GCTaskFarm::ThreadFunction (this=0x20090688 <gTaskFarm>) at gctaskfarm.cpp:218 #4 0x20021f24 in GCTaskFarm::WorkerThreadFunction (parameter=<optimized out>) at gctaskfarm.cpp:241 #5 0x1fde7500 in start_thread () from /lib/powerpc-linux-gnu/libpthread.so.0 #6 0x1ff339ac in clone () from /lib/powerpc-linux-gnu/libc.so.6
Thread 3 (Thread 0xf73df450 (LWP 1748)): #0 0x1fdf365c in do_futex_wait.constprop () from /lib/powerpc-linux-gnu/libpthread.so.0 #1 0x1fdf3808 in __new_sem_wait_slow.constprop.1 () from /lib/powerpc-linux-gnu/libpthread.so.0 #2 0x20025288 in PSemaphore::Wait (this=this at entry=0x20090688 <gTaskFarm>) at locking.cpp:308 #3 0x20021df0 in GCTaskFarm::ThreadFunction (this=0x20090688 <gTaskFarm>) at gctaskfarm.cpp:218 #4 0x20021f24 in GCTaskFarm::WorkerThreadFunction (parameter=<optimized out>) at gctaskfarm.cpp:241 #5 0x1fde7500 in start_thread () from /lib/powerpc-linux-gnu/libpthread.so.0 #6 0x1ff339ac in clone () from /lib/powerpc-linux-gnu/libc.so.6
Thread 2 (Thread 0xf7cdf450 (LWP 1747)): #0 0x1fdf365c in do_futex_wait.constprop () from /lib/powerpc-linux-gnu/libpthread.so.0 #1 0x1fdf3808 in __new_sem_wait_slow.constprop.1 () from /lib/powerpc-linux-gnu/libpthread.so.0 #2 0x20025288 in PSemaphore::Wait (this=0x20092238 SigHandler::Init()::waitSemaphore) at locking.cpp:308 #3 0x200482c0 in SignalDetectionThread () at sighandler.cpp:524 #4 0x1fde7500 in start_thread () from /lib/powerpc-linux-gnu/libpthread.so.0 #5 0x1ff339ac in clone () from /lib/powerpc-linux-gnu/libc.so.6
Thread 1 (Thread 0xf7d25290 (LWP 1733)): #0 0x1fdf0138 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/powerpc-linux-gnu/libpthread.so.0 #1 0x1ff45788 in pthread_cond_timedwait () from /lib/powerpc-linux-gnu/libc.so.6 #2 0x20024fc4 in PCondVar::WaitFor (this=this at entry=0x20091218 <processesModule+64>, pLock=pLock at entry=0x200911ec <processesModule+20>, milliseconds=milliseconds at entry=400) at locking.cpp:227 #3 0x200373f4 in Processes::BeginRootThread (this=0x200911d8 <processesModule>, rootFunction=<optimized out>) at processes.cpp:1573 #4 0x2002a3c0 in polymain (argc=1, argv=0xff8e1d44, exports=0x2085a290 <poly_exports>) at mpoly.cpp:399 #5 0x20486ea8 in main (argc=<optimized out>, argv=<optimized out>) at polystub.c:42
On 1 Mar 2017, at 15:57, James Clarke <jrtc27 at jrtc27.com> wrote:
This is on Debian unstable (the soon-to-be-released Stretch should be close enough), but also amd64 in VirtualBox. Perhaps there have been some glibc changes? I couldn't reproduce it under my macOS host, which would be consistent with that.
James
On 1 Mar 2017, at 15:48, David Matthews <David.Matthews at prolingua.co.uk> wrote:
Hi James, I've tried this with Debian stable 64-bit in a VirtualBox and haven't had any problems. Of course that's a different set-up but I would have expected to see something if there was a problem. It makes it rather difficult to track this down.
David
On 23/02/2017 20:44, James Clarke wrote:
Hi David, It seems Test166 (the new condition variable one) sometimes deadlocks. I'm able to reliably reproduce with the following:
./configure make -j2 compiler make -j2 compiler while true; do make -j2 check; done
(The -j2's are probably irrelevant, but I'm including them for completeness)
On the 40th iteration of the loop it got stuck for me:
val runTests = fn: string -> bool Test028.ML => Passed Test166.ML =>
Threads:
Thread 9 (Thread 0x7faf066fc700 (LWP 29448)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x000055ff143b7e30 in Processes::WaitInfinite(TaskData*, SaveVecEntry*) () #2 0x000055ff143b7f4f in PolyThreadCondVarWait () #3 0x000055ff1426496d in area1 () #4 0x00007faf0ce71c00 in ?? () #5 0x00007faf066fbe08 in ?? () #6 0x00007faf0fb79040 in ?? () from /lib64/ld-linux-x86-64.so.2 #7 0x00007faf0e6f0e48 in __GI___libc_malloc (bytes=140389730295024) at malloc.c:2925 #8 0x000055ff143c5477 in initThreadSignals(TaskData*) () #9 0x000055ff143b8990 in NewThreadFunction(void*) () #10 0x00007faf0f73f424 in start_thread (arg=0x7faf066fc700) at pthread_create.c:333 #11 0x00007faf0e75e9bf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105
Thread 8 (Thread 0x7faf06efd700 (LWP 29447)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x000055ff143b7e30 in Processes::WaitInfinite(TaskData*, SaveVecEntry*) () #2 0x000055ff143b7f4f in PolyThreadCondVarWait () #3 0x000055ff1426496d in area1 () #4 0x00007faf0ce71c00 in ?? () #5 0x00007faf06efce08 in ?? () #6 0x00007faf0fb79040 in ?? () from /lib64/ld-linux-x86-64.so.2 #7 0x00007faf0e6f0e48 in __GI___libc_malloc (bytes=140389730294192) at malloc.c:2925 #8 0x000055ff143c5477 in initThreadSignals(TaskData*) () #9 0x000055ff143b8990 in NewThreadFunction(void*) () #10 0x00007faf0f73f424 in start_thread (arg=0x7faf06efd700) at pthread_create.c:333 #11 0x00007faf0e75e9bf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105
Thread 7 (Thread 0x7faf076fe700 (LWP 29446)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x000055ff143b7e30 in Processes::WaitInfinite(TaskData*, SaveVecEntry*) () #2 0x000055ff143b7f4f in PolyThreadCondVarWait () #3 0x000055ff1426496d in area1 () #4 0x00007faf0ce71c00 in ?? () #5 0x00007faf076fde08 in ?? () #6 0x00007faf0fb79040 in ?? () from /lib64/ld-linux-x86-64.so.2 #7 0x00007faf0e6f0e48 in __GI___libc_malloc (bytes=140389730242944) at malloc.c:2925 #8 0x000055ff143c5477 in initThreadSignals(TaskData*) () #9 0x000055ff143b8990 in NewThreadFunction(void*) () #10 0x00007faf0f73f424 in start_thread (arg=0x7faf076fe700) at pthread_create.c:333 #11 0x00007faf0e75e9bf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105
Thread 6 (Thread 0x7faf07fff700 (LWP 29445)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x000055ff143b7237 in Processes::WaitForSignal(TaskData*, PLock*) () #2 0x000055ff143c4f8f in PolyWaitForSignal () #3 0x000055ff13f1b8ba in area1 () #4 0x00007faf0ce71c00 in ?? () #5 0x00007faf07ffee08 in ?? () #6 0x00007faf0fb79040 in ?? () from /lib64/ld-linux-x86-64.so.2 #7 0x00007faf0e6f0e48 in __GI___libc_malloc (bytes=140389730232720) at malloc.c:2925 #8 0x000055ff143c5477 in initThreadSignals(TaskData*) () #9 0x000055ff143b8990 in NewThreadFunction(void*) () #10 0x00007faf0f73f424 in start_thread (arg=0x7faf07fff700) at pthread_create.c:333 #11 0x00007faf0e75e9bf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105
Thread 5 (Thread 0x7faf0ce72700 (LWP 29444)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x000055ff143b7e30 in Processes::WaitInfinite(TaskData*, SaveVecEntry*) () #2 0x000055ff143b7f4f in PolyThreadCondVarWait () #3 0x000055ff1426496d in area1 () #4 0x000055ff14b34e00 in gHeapSizeParameters () #5 0x00007faf0ce71e08 in ?? () #6 0x00007faf0fb64000 in ?? () #7 0x000055ff143a7988 in MemMgr::GrowOrShrinkStack(TaskData*, unsigned long) () #8 0x000055ff15c76870 in ?? () #9 0x000055ff15c76870 in ?? () #10 0x000055ff15c76660 in ?? () #11 0x000055ff15c76668 in ?? () #12 0x000055ff143c9681 in X86TaskData::EnterPolyCode() () #13 0x000055ff143b8990 in NewThreadFunction(void*) () #14 0x00007faf0f73f424 in start_thread (arg=0x7faf0ce72700) at pthread_create.c:333 #15 0x00007faf0e75e9bf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105
Thread 4 (Thread 0x7faf0d673700 (LWP 29443)): #0 0x00007faf0f747536 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, expected=0, futex_word=0x55ff14b34b40 <gTaskFarm>) at ../sysdeps/unix/sysv/linux/futex-internal.h:205 #1 do_futex_wait (sem=sem at entry=0x55ff14b34b40 <gTaskFarm>, abstime=0x0) at sem_waitcommon.c:111 #2 0x00007faf0f7475e4 in __new_sem_wait_slow (sem=0x55ff14b34b40 <gTaskFarm>, abstime=0x0) at sem_waitcommon.c:181 #3 0x000055ff143a61a3 in PSemaphore::Wait() () #4 0x000055ff143a313d in GCTaskFarm::ThreadFunction() () #5 0x000055ff143a3229 in GCTaskFarm::WorkerThreadFunction(void*) () #6 0x00007faf0f73f424 in start_thread (arg=0x7faf0d673700) at pthread_create.c:333 #7 0x00007faf0e75e9bf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105
Thread 3 (Thread 0x7faf0de74700 (LWP 29442)): #0 0x00007faf0f747536 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, expected=0, futex_word=0x55ff14b34b40 <gTaskFarm>) at ../sysdeps/unix/sysv/linux/futex-internal.h:205 #1 do_futex_wait (sem=sem at entry=0x55ff14b34b40 <gTaskFarm>, abstime=0x0) at sem_waitcommon.c:111 #2 0x00007faf0f7475e4 in __new_sem_wait_slow (sem=0x55ff14b34b40 <gTaskFarm>, abstime=0x0) at sem_waitcommon.c:181 #3 0x000055ff143a61a3 in PSemaphore::Wait() () #4 0x000055ff143a313d in GCTaskFarm::ThreadFunction() () #5 0x000055ff143a3229 in GCTaskFarm::WorkerThreadFunction(void*) () #6 0x00007faf0f73f424 in start_thread (arg=0x7faf0de74700) at pthread_create.c:333 #7 0x00007faf0e75e9bf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105
Thread 2 (Thread 0x7faf0e675700 (LWP 29441)): #0 0x00007faf0f747536 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, expected=0, futex_word=0x55ff14b35fc0 SigHandler::Init()::waitSemaphore) at ../sysdeps/unix/sysv/linux/futex-internal.h:205 #1 do_futex_wait (sem=sem at entry=0x55ff14b35fc0 SigHandler::Init()::waitSemaphore, abstime=0x0) at sem_waitcommon.c:111 #2 0x00007faf0f7475e4 in __new_sem_wait_slow (sem=0x55ff14b35fc0 SigHandler::Init()::waitSemaphore, abstime=0x0) at sem_waitcommon.c:181 #3 0x000055ff143a61a3 in PSemaphore::Wait() () #4 0x000055ff143c4c91 in SignalDetectionThread(void*) () #5 0x00007faf0f73f424 in start_thread (arg=0x7faf0e675700) at pthread_create.c:333 #6 0x00007faf0e75e9bf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105
Thread 1 (Thread 0x7faf0fb49740 (LWP 29440)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000055ff143a604e in PCondVar::WaitFor(PLock*, unsigned int) () #2 0x000055ff143b8c9f in Processes::BeginRootThread(PolyObject*) () #3 0x000055ff143aaf13 in polymain () #4 0x00007faf0e6962b1 in __libc_start_main (main=0x55ff13f15dc0 <main>, argc=1, argv=0x7ffe94073258, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffe94073248) at ../csu/libc-start.c:291 #5 0x000055ff13f1661a in _start ()
Any ideas? This is on Debian amd64 unstable, but I've seen it on non-x86 architectures too with the latest version. Interestingly I can't seem to reproduce it on macOS.
Regards, James
On 21 Feb 2017, at 12:48, David Matthews <David.Matthews at prolingua.co.uk> wrote:
The latest version, provisionally called 5.6.1, has had very little change for several months. I'm not aware of any show-stoppers so I think it would be a good time to make a release. Because there have been some major changes I was planning to call it 5.7. This is the last chance to do any last tests before the release.
David _______________________________________________ polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml