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

Reply via email to