this turned out to be two problems, one the "real" bug, and the other, 
causing the thread lock, was a "debugging" print within code called by 
print.  which i think has bitten me before...

On Saturday, 30 January 2016 14:11:29 UTC-3, andrew cooke wrote:
>
>
> i guess that makes sense.  thanks.  it's not clear to me why there's a 
> deadlock but the code looks pretty ugly.  i'll try simplifying it and see 
> how it goes.  andrew
>
> On Saturday, 30 January 2016 02:05:15 UTC-3, Yichao Yu wrote:
>>
>> On Fri, Jan 29, 2016 at 10:53 PM, andrew cooke <[email protected]> 
>> wrote: 
>> > 
>> > i've been away from julia for a while so am not up-to-date on changes, 
>> and 
>> > am looking at an odd problem. 
>> > 
>> > i have some code, which is messier and more complex than i would like, 
>> which 
>> > is called to print a graph of values.  the print code uses tasks.  in 
>> 0.3 
>> > this works, but in 0.4 the program sits, using no CPU. 
>> > 
>> > if i dump the stack (using gstack PID) i see: 
>> > 
>> > Thread 4 (Thread 0x7efe3b6bb700 (LWP 1709)): 
>> > #0  0x00007f0042e7e05f in pthread_cond_wait@@GLIBC_2.3.2 () from 
>> > /lib64/libpthread.so.0 
>> > #1  0x00007efe3bf62b5b in blas_thread_server () from 
>> > /home/andrew/pkg/julia-0.4/usr/bin/../lib/libopenblas64_.so 
>> > #2  0x00007f0042e7a0a4 in start_thread () from /lib64/libpthread.so.0 
>> > #3  0x00007f004231604d in clone () from /lib64/libc.so.6 
>> > Thread 3 (Thread 0x7efe3aeba700 (LWP 1710)): 
>> > #0  0x00007f0042e7e05f in pthread_cond_wait@@GLIBC_2.3.2 () from 
>> > /lib64/libpthread.so.0 
>> > #1  0x00007efe3bf62b5b in blas_thread_server () from 
>> > /home/andrew/pkg/julia-0.4/usr/bin/../lib/libopenblas64_.so 
>> > #2  0x00007f0042e7a0a4 in start_thread () from /lib64/libpthread.so.0 
>> > #3  0x00007f004231604d in clone () from /lib64/libc.so.6 
>> > Thread 2 (Thread 0x7efe3a6b9700 (LWP 1711)): 
>> > #0  0x00007f0042e7e05f in pthread_cond_wait@@GLIBC_2.3.2 () from 
>> > /lib64/libpthread.so.0 
>> > #1  0x00007efe3bf62b5b in blas_thread_server () from 
>> > /home/andrew/pkg/julia-0.4/usr/bin/../lib/libopenblas64_.so 
>> > #2  0x00007f0042e7a0a4 in start_thread () from /lib64/libpthread.so.0 
>> > #3  0x00007f004231604d in clone () from /lib64/libc.so.6 
>> > Thread 1 (Thread 0x7f0044710740 (LWP 1708)): 
>> > #0  0x00007f0042e8120d in pause () from /lib64/libpthread.so.0 
>> > #1  0x00007f0040a190fe in julia_wait_17546 () at task.jl:364 
>> > #2  0x00007f0040a18ea1 in julia_wait_17544 () at task.jl:286 
>> > #3  0x00007f0040a40ffc in julia_lock_18599 () at lock.jl:23 
>> > #4  0x00007efe3ecdbeb7 in ?? () 
>> > #5  0x00007ffd3e6ad2c0 in ?? () 
>> > #6  0x0000000000000000 in ?? () 
>> > 
>> > which looks suspiciously like some kind of deadlock. 
>> > 
>> > but i am not using threads, myself.  just tasks. 
>>
>> Tasks are not threads. You can see the threads are started by openblas. 
>>
>> IIUC tasks can have dead lock too, depending on how you use it. 
>>
>> > 
>> > hence the question.  any pointers appreciated. 
>> > 
>> > thanks, 
>> > andrew 
>> > 
>>
>

Reply via email to