zhengxwen / SNPRelate

R package: parallel computing toolset for relatedness and principal component analysis of SNP data (Development version only)
http://www.bioconductor.org/packages/SNPRelate
101 stars 25 forks source link

deadlocks #17

Open kforner opened 8 years ago

kforner commented 8 years ago

Hello,

I sometimes experiment deadlocks using SNPRelate::snpgdsIBS with multiple threads. It is in one of my tests, and I have to run my whole testsuite multiple times to be able to reproduce it, usually about 40 times.

strace:

[pid 14165] futex(0x783b52c, FUTEX_WAIT_PRIVATE, 315, NULL <unfinished ...>
[pid   196] futex(0x7ff7f1aa69d0, FUTEX_WAIT, 14165, NULL^CProcess 196 detached
 <detached ...>

Here's a stack trace:

0x00007ff830d1748d in pthread_join () from /lib/x86_64-linux-gnu/libpthread.so.0
(gdb) bt
#0  0x00007ff830d1748d in pthread_join () from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007ff82b221927 in CoreArray::CdThread::EndThread (this=0x1baba60) at CoreArray/dPlatform.cpp:1939
#2  0x00007ff82b21eb9c in CoreArray::Parallel::CParallelBase::RunThreads (this=this@entry=0x7ff82b4b6a60 <R_CoreArray_ParallelBase>, 
    Proc=Proc@entry=0x7ff81e580b90 <__DoThread_WorkingGeno(PdThread, int, void*)>, param=param@entry=0x7ff81e7ae700 <GWAS::MCWorkingGeno>) at CoreArray/dParallel.cpp:243
#3  0x00007ff82b155c12 in GDS_Parallel_RunThreads (Proc=Proc@entry=0x7ff81e580b90 <__DoThread_WorkingGeno(PdThread, int, void*)>, Param=Param@entry=0x7ff81e7ae700 <GWAS::MCWorkingGeno>, 
    nThread=nThread@entry=80) at R_CoreArray.cpp:1351
#4  0x00007ff81e58091f in GWAS::CMultiCoreWorkingGeno::Run (this=this@entry=0x7ff81e7ae700 <GWAS::MCWorkingGeno>, nThread=nThread@entry=80, 
    do_read=do_read@entry=0x7ff81e5907c0 <IBS::_Do_IBS_ReadBlock(C_UInt8*, long, long, void*)>, do_thread=do_thread@entry=0x7ff81e590940 <IBS::_Do_IBS_Compute(int, long, long, void*)>, 
    Param=<optimized out>) at dGenGWAS.cpp:1634
#5  0x00007ff81e591e87 in IBS::DoIBSCalculate (PublicIBS=..., NumThread=80, Info=Info@entry=0x7ff81e5a0dca 'IBS:\000', verbose=verbose@entry=false) at genIBS.cpp:253
#6  0x00007ff81e591fdf in gnrIBSAve (NumThread=0xca00288, _Verbose=<optimized out>) at genIBS.cpp:392

sessionInfo()

R version 3.2.3 (2015-12-10)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Debian GNU/Linux stretch/sid

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] SNPRelate_1.4.2 gdsfmt_1.6.2