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@entry=0xf2a172b8, > pLock=pLock@entry=0x200911ec <processesModule+20>) at locking.cpp:169 > #3 0x20036880 in Processes::WaitInfinite (this=this@entry=0x200911d8 > <processesModule>, taskData=taskData@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@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@entry=0xf2a17088, > pLock=pLock@entry=0x200911ec <processesModule+20>) at locking.cpp:169 > #3 0x20036880 in Processes::WaitInfinite (this=this@entry=0x200911d8 > <processesModule>, taskData=taskData@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@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@entry=0xf2a16f48, > pLock=pLock@entry=0x200911ec <processesModule+20>) at locking.cpp:169 > #3 0x20036880 in Processes::WaitInfinite (this=this@entry=0x200911d8 > <processesModule>, taskData=taskData@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@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@entry=0xf2a19078, > pLock=pLock@entry=0x200911ec <processesModule+20>) at locking.cpp:169 > #3 0x20036540 in Processes::MutexBlock (this=this@entry=0x200911d8 > <processesModule>, taskData=taskData@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@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@entry=0xf2a044c8, > pLock=pLock@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@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@entry=0x20adc4a8, > pLock=pLock@entry=0x200911ec <processesModule+20>) at locking.cpp:169 > #3 0x20036880 in Processes::WaitInfinite (this=this@entry=0x200911d8 > <processesModule>, taskData=taskData@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@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@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@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@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@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@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@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@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@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@entry=0x20091218 > <processesModule+64>, pLock=pLock@entry=0x200911ec <processesModule+20>, > milliseconds=milliseconds@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 <jrt...@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.matth...@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@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@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@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.matth...@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@inf.ed.ac.uk >>>> http://lists.inf.ed.ac.uk/mailman/listinfo/polyml > _______________________________________________ polyml mailing list polyml@inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml