btlib tests die on armhf due to the deadlock: -------------------- (gdb) thread apply all bt
Thread 4 (Thread 0xf6a5c800 (LWP 3970) "seq_reader_fast"): #0 __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46 #1 0xf7cba47e in __futex_abstimed_wait_common32 (private=<optimized out>, cancel=<optimized out>, abstime=<optimized out>, op=<optimized out>, expected=<optimized out>, futex_word=<optimized out>) at futex-internal.c:40 #2 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x423588, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:99 #3 0xf7cba55c in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x423588, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139 #4 0xf7cbc876 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x423540, cond=0x423560) at pthread_cond_wait.c:503 #5 ___pthread_cond_wait (cond=0x423560, mutex=0x423540) at pthread_cond_wait.c:627 #6 0x0040d542 in std::condition_variable::wait<btllib::OrderQueueMPMC<btllib::SeqReader::Record>::write(btllib::OrderQueue<btllib::SeqReader::Record>::Block&)::{lambda()#1}>(std::unique_lock<std::mutex>&, btllib::OrderQueueMPMC<btllib::SeqReader::Record>::write(btllib::OrderQueue<btllib::SeqReader::Record>::Block&)::{lambda()#1}) (__p=..., __lock=..., this=0x423560) at /usr/include/c++/12/condition_variable:102 #7 btllib::OrderQueueMPMC<btllib::SeqReader::Record>::write (this=0xfffef910, block=...) at ../include/btllib/order_queue.hpp:243 #8 0x0040b1c8 in operator() (__closure=<optimized out>) at /usr/src/btllib-1.4.10+dfsg-1ubuntu1/src/btllib/seq_reader.cpp:420 #9 0xf7ebde16 in ?? () from /lib/arm-linux-gnueabihf/libstdc++.so.6 #10 0xf7cbd06e in start_thread (arg=0x417f6c05) at pthread_create.c:442 #11 0xf7d14140 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:74 from /lib/arm-linux-gnueabihf/libc.so.6 Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Thread 3 (Thread 0xf745d800 (LWP 3969) "seq_reader_fast"): #0 __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46 #1 0xf7cba47e in __futex_abstimed_wait_common32 (private=<optimized out>, cancel=<optimized out>, abstime=<optimized out>, op=<optimized out>, expected=<optimized out>, futex_word=<optimized out>) at futex-internal.c:40 #2 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x423518, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:99 #3 0xf7cba55c in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x423518, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139 #4 0xf7cbc876 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x4234d0, cond=0x4234f0) at pthread_cond_wait.c:503 #5 ___pthread_cond_wait (cond=0x4234f0, mutex=0x4234d0) at pthread_cond_wait.c:627 #6 0x0040d542 in std::condition_variable::wait<btllib::OrderQueueMPMC<btllib::SeqReader::Record>::write(btllib::OrderQueue<btllib::SeqReader::Record>::Block&)::{lambda()#1}>(std::unique_lock<std::mutex>&, btllib::OrderQueueMPMC<btllib::SeqReader::Record>::write(btllib::OrderQueue<btllib::SeqReader::Record>::Block&)::{lambda()#1}) (__p=..., __lock=..., this=0x4234f0) at /usr/include/c++/12/condition_variable:102 #7 btllib::OrderQueueMPMC<btllib::SeqReader::Record>::write (this=0xfffef910, block=...) at ../include/btllib/order_queue.hpp:243 #8 0x0040a886 in operator() (__closure=<optimized out>) at /usr/src/btllib-1.4.10+dfsg-1ubuntu1/src/btllib/seq_reader.cpp:424 #9 0xf7ebde16 in ?? () from /lib/arm-linux-gnueabihf/libstdc++.so.6 #10 0xf7cbd06e in start_thread (arg=0x417f6c05) at pthread_create.c:442 #11 0xf7d14140 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:74 from /lib/arm-linux-gnueabihf/libc.so.6 Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Thread 2 (Thread 0xf7c5e800 (LWP 3960) "seq_reader_fast"): #0 __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46 #1 0xf7d05c10 in __GI___libc_read (nbytes=1, buf=0xf7c5e1a3, fd=7) at ../sysdeps/unix/sysv/linux/read.c:26 #2 __GI___libc_read (fd=7, buf=buf@entry=0xf7c5e1a3, nbytes=nbytes@entry=1) at ../sysdeps/unix/sysv/linux/read.c:24 #3 0x0040fea8 in read (__nbytes=1, __buf=0xf7c5e1a3, __fd=<optimized out>) at /usr/include/arm-linux-gnueabihf/bits/unistd.h:38 #4 operator() (__closure=<optimized out>) at /usr/src/btllib-1.4.10+dfsg-1ubuntu1/src/btllib/process_pipeline.cpp:731 #5 std::__invoke_impl<void, btllib::start_watchdog()::<lambda()> > (__f=...) at /usr/include/c++/12/bits/invoke.h:61 #6 std::__invoke<btllib::start_watchdog()::<lambda()> > (__fn=...) at /usr/include/c++/12/bits/invoke.h:96 #7 std::thread::_Invoker<std::tuple<btllib::start_watchdog()::<lambda()> > >::_M_invoke<0> (this=<optimized out>) at /usr/include/c++/12/bits/std_thread.h:252 #8 std::thread::_Invoker<std::tuple<btllib::start_watchdog()::<lambda()> > >::operator() (this=<optimized out>) at /usr/include/c++/12/bits/std_thread.h:259 #9 std::thread::_State_impl<std::thread::_Invoker<std::tuple<btllib::start_watchdog()::<lambda()> > > >::_M_run(void) (this=<optimized out>) at /usr/include/c++/12/bits/std_thread.h:210 #10 0xf7ebde16 in ?? () from /lib/arm-linux-gnueabihf/libstdc++.so.6 #11 0xf7cbd06e in start_thread (arg=0x417f6c05) at pthread_create.c:442 #12 0xf7d14140 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:74 from /lib/arm-linux-gnueabihf/libc.so.6 Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Thread 1 (Thread 0xf7fe4020 (LWP 3957) "seq_reader_fast"): #0 __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46 #1 0xf7cba47e in __futex_abstimed_wait_common32 (private=<optimized out>, cancel=<optimized out>, abstime=<optimized out>, op=<optimized out>, expected=<optimized out>, futex_word=<optimized out>) at futex-internal.c:40 #2 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x423518, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:99 #3 0xf7cba55c in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x423518, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139 #4 0xf7cbc876 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x4234d0, cond=0x4234f0) at pthread_cond_wait.c:503 #5 ___pthread_cond_wait (cond=0x4234f0, mutex=0x4234d0) at pthread_cond_wait.c:627 #6 0x0040d6b0 in std::condition_variable::wait<btllib::OrderQueueMPMC<btllib::SeqReader::Record>::read(btllib::OrderQueue<btllib::SeqReader::Record>::Block&)::{lambda()#1}>(std::unique_lock<std::mutex>&, btllib::OrderQueueMPMC<btllib::SeqReader::Record>::read(btllib::OrderQueue<btllib::SeqReader::Record>::Block&)::{lambda()#1}) (__p=..., __lock=..., this=0x4234f0) at /usr/include/c++/12/condition_variable:102 #7 btllib::OrderQueueMPMC<btllib::SeqReader::Record>::read (this=this@entry=0xfffef910, block=...) at ../include/btllib/order_queue.hpp:243 #8 0x0040cf88 in btllib::SeqReader::read (this=this@entry=0xfffef818) at /usr/src/btllib-1.4.10+dfsg-1ubuntu1/src/btllib/seq_reader.cpp:445 #9 0x00402c7a in btllib::SeqReader::RecordIterator::operator++ (this=0xfffef748) at ../include/btllib/seq_reader.hpp:130 #10 btllib::SeqReader::RecordIterator::RecordIterator (end=false, reader=..., this=0xfffef748) at ../include/btllib/seq_reader.hpp:151 #11 btllib::SeqReader::begin (this=0xfffef818) at ../include/btllib/seq_reader.hpp:160 --Type <RET> for more, q to quit, c to continue without paging-- #12 main () at /usr/src/btllib-1.4.10+dfsg-1ubuntu1/tests/seq_reader_fasta_module.cpp:25
--------------------
btlib tests die on armhf due to the deadlock: ------- ------
-------
(gdb) thread apply all bt
Thread 4 (Thread 0xf6a5c800 (LWP 3970) "seq_reader_fast"): unix/sysv/ linux/arm/ libc-do- syscall. S:46 abstimed_ wait_common32 (private=<optimized out>, cancel=<optimized out>, abstime=<optimized out>, op=<optimized out>, expected=<optimized out>, futex_word= <optimized out>) at futex-internal.c:40 abstimed_ wait_common (futex_ word=futex_ word@entry= 0x423588, expected= expected@ entry=0, clockid= clockid@ entry=0, abstime= abstime@ entry=0x0, private= private@ entry=0, cancel= cancel@ entry=true) at futex-internal.c:99 futex_abstimed_ wait_cancelable 64 (futex_ word=futex_ word@entry= 0x423588, expected= expected@ entry=0, clockid= clockid@ entry=0, abstime= abstime@ entry=0x0, private= private@ entry=0) at futex-internal. c:139 cond_wait_ common (abstime=0x0, clockid=0, mutex=0x423540, cond=0x423560) at pthread_ cond_wait. c:503 cond_wait (cond=0x423560, mutex=0x423540) at pthread_ cond_wait. c:627 variable: :wait<btllib: :OrderQueueMPMC <btllib: :SeqReader: :Record> ::write( btllib: :OrderQueue< btllib: :SeqReader: :Record> ::Block& )::{lambda( )#1}>(std: :unique_ lock<std: :mutex> &, btllib: :OrderQueueMPMC <btllib: :SeqReader: :Record> ::write( btllib: :OrderQueue< btllib: :SeqReader: :Record> ::Block& )::{lambda( )#1}) (__p=..., __lock=..., this=0x423560) at /usr/include/ c++/12/ condition_ variable: 102 :OrderQueueMPMC <btllib: :SeqReader: :Record> ::write (this=0xfffef910, block=...) at ../include/ btllib/ order_queue. hpp:243 <optimized out>) at /usr/src/ btllib- 1.4.10+ dfsg-1ubuntu1/ src/btllib/ seq_reader. cpp:420 linux-gnueabihf /libstdc+ +.so.6 create. c:442 unix/sysv/ linux/arm/ clone.S: 74 from /lib/arm- linux-gnueabihf /libc.so. 6
#0 __libc_do_syscall () at ../sysdeps/
#1 0xf7cba47e in __futex_
#2 __futex_
#3 0xf7cba55c in __GI___
#4 0xf7cbc876 in __pthread_
#5 ___pthread_
#6 0x0040d542 in std::condition_
#7 btllib:
#8 0x0040b1c8 in operator() (__closure=
#9 0xf7ebde16 in ?? () from /lib/arm-
#10 0xf7cbd06e in start_thread (arg=0x417f6c05) at pthread_
#11 0xf7d14140 in ?? () at ../sysdeps/
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Thread 3 (Thread 0xf745d800 (LWP 3969) "seq_reader_fast"): unix/sysv/ linux/arm/ libc-do- syscall. S:46 abstimed_ wait_common32 (private=<optimized out>, cancel=<optimized out>, abstime=<optimized out>, op=<optimized out>, expected=<optimized out>, futex_word= <optimized out>) at futex-internal.c:40 abstimed_ wait_common (futex_ word=futex_ word@entry= 0x423518, expected= expected@ entry=0, clockid= clockid@ entry=0, abstime= abstime@ entry=0x0, private= private@ entry=0, cancel= cancel@ entry=true) at futex-internal.c:99 futex_abstimed_ wait_cancelable 64 (futex_ word=futex_ word@entry= 0x423518, expected= expected@ entry=0, clockid= clockid@ entry=0, abstime= abstime@ entry=0x0, private= private@ entry=0) at futex-internal. c:139 cond_wait_ common (abstime=0x0, clockid=0, mutex=0x4234d0, cond=0x4234f0) at pthread_ cond_wait. c:503 cond_wait (cond=0x4234f0, mutex=0x4234d0) at pthread_ cond_wait. c:627 variable: :wait<btllib: :OrderQueueMPMC <btllib: :SeqReader: :Record> ::write( btllib: :OrderQueue< btllib: :SeqReader: :Record> ::Block& )::{lambda( )#1}>(std: :unique_ lock<std: :mutex> &, btllib: :OrderQueueMPMC <btllib: :SeqReader: :Record> ::write( btllib: :OrderQueue< btllib: :SeqReader: :Record> ::Block& )::{lambda( )#1}) (__p=..., __lock=..., this=0x4234f0) at /usr/include/ c++/12/ condition_ variable: 102 :OrderQueueMPMC <btllib: :SeqReader: :Record> ::write (this=0xfffef910, block=...) at ../include/ btllib/ order_queue. hpp:243 <optimized out>) at /usr/src/ btllib- 1.4.10+ dfsg-1ubuntu1/ src/btllib/ seq_reader. cpp:424 linux-gnueabihf /libstdc+ +.so.6 create. c:442 unix/sysv/ linux/arm/ clone.S: 74 from /lib/arm- linux-gnueabihf /libc.so. 6
#0 __libc_do_syscall () at ../sysdeps/
#1 0xf7cba47e in __futex_
#2 __futex_
#3 0xf7cba55c in __GI___
#4 0xf7cbc876 in __pthread_
#5 ___pthread_
#6 0x0040d542 in std::condition_
#7 btllib:
#8 0x0040a886 in operator() (__closure=
#9 0xf7ebde16 in ?? () from /lib/arm-
#10 0xf7cbd06e in start_thread (arg=0x417f6c05) at pthread_
#11 0xf7d14140 in ?? () at ../sysdeps/
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Thread 2 (Thread 0xf7c5e800 (LWP 3960) "seq_reader_fast"): unix/sysv/ linux/arm/ libc-do- syscall. S:46 unix/sysv/ linux/read. c:26 entry=0xf7c5e1a 3, nbytes= nbytes@ entry=1) at ../sysdeps/ unix/sysv/ linux/read. c:24 arm-linux- gnueabihf/ bits/unistd. h:38 <optimized out>) at /usr/src/ btllib- 1.4.10+ dfsg-1ubuntu1/ src/btllib/ process_ pipeline. cpp:731 invoke_ impl<void, btllib: :start_ watchdog( )::<lambda( )> > (__f=...) at /usr/include/ c++/12/ bits/invoke. h:61 invoke< btllib: :start_ watchdog( )::<lambda( )> > (__fn=...) at /usr/include/ c++/12/ bits/invoke. h:96 :_Invoker< std::tuple< btllib: :start_ watchdog( )::<lambda( )> > >::_M_invoke<0> (this=<optimized out>) at /usr/include/ c++/12/ bits/std_ thread. h:252 :_Invoker< std::tuple< btllib: :start_ watchdog( )::<lambda( )> > >::operator() (this=<optimized out>) at /usr/include/ c++/12/ bits/std_ thread. h:259 :_State_ impl<std: :thread: :_Invoker< std::tuple< btllib: :start_ watchdog( )::<lambda( )> > > >::_M_run(void) (this=<optimized out>) at /usr/include/ c++/12/ bits/std_ thread. h:210 linux-gnueabihf /libstdc+ +.so.6 create. c:442 unix/sysv/ linux/arm/ clone.S: 74 from /lib/arm- linux-gnueabihf /libc.so. 6
#0 __libc_do_syscall () at ../sysdeps/
#1 0xf7d05c10 in __GI___libc_read (nbytes=1, buf=0xf7c5e1a3, fd=7) at ../sysdeps/
#2 __GI___libc_read (fd=7, buf=buf@
#3 0x0040fea8 in read (__nbytes=1, __buf=0xf7c5e1a3, __fd=<optimized out>) at /usr/include/
#4 operator() (__closure=
#5 std::__
#6 std::__
#7 std::thread:
#8 std::thread:
#9 std::thread:
#10 0xf7ebde16 in ?? () from /lib/arm-
#11 0xf7cbd06e in start_thread (arg=0x417f6c05) at pthread_
#12 0xf7d14140 in ?? () at ../sysdeps/
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Thread 1 (Thread 0xf7fe4020 (LWP 3957) "seq_reader_fast"): unix/sysv/ linux/arm/ libc-do- syscall. S:46 abstimed_ wait_common32 (private=<optimized out>, cancel=<optimized out>, abstime=<optimized out>, op=<optimized out>, expected=<optimized out>, futex_word= <optimized out>) at futex-internal.c:40 abstimed_ wait_common (futex_ word=futex_ word@entry= 0x423518, expected= expected@ entry=0, clockid= clockid@ entry=0, abstime= abstime@ entry=0x0, private= private@ entry=0, cancel= cancel@ entry=true) at futex-internal.c:99 futex_abstimed_ wait_cancelable 64 (futex_ word=futex_ word@entry= 0x423518, expected= expected@ entry=0, clockid= clockid@ entry=0, abstime= abstime@ entry=0x0, private= private@ entry=0) at futex-internal. c:139 cond_wait_ common (abstime=0x0, clockid=0, mutex=0x4234d0, cond=0x4234f0) at pthread_ cond_wait. c:503 cond_wait (cond=0x4234f0, mutex=0x4234d0) at pthread_ cond_wait. c:627 variable: :wait<btllib: :OrderQueueMPMC <btllib: :SeqReader: :Record> ::read( btllib: :OrderQueue< btllib: :SeqReader: :Record> ::Block& )::{lambda( )#1}>(std: :unique_ lock<std: :mutex> &, btllib: :OrderQueueMPMC <btllib: :SeqReader: :Record> ::read( btllib: :OrderQueue< btllib: :SeqReader: :Record> ::Block& )::{lambda( )#1}) (__p=..., __lock=..., this=0x4234f0) at /usr/include/ c++/12/ condition_ variable: 102 :OrderQueueMPMC <btllib: :SeqReader: :Record> ::read (this=this@ entry=0xfffef91 0, block=...) at ../include/ btllib/ order_queue. hpp:243 :SeqReader: :read (this=this@ entry=0xfffef81 8) at /usr/src/ btllib- 1.4.10+ dfsg-1ubuntu1/ src/btllib/ seq_reader. cpp:445 :SeqReader: :RecordIterator ::operator+ + (this=0xfffef748) at ../include/ btllib/ seq_reader. hpp:130 :SeqReader: :RecordIterator ::RecordIterato r (end=false, reader=..., this=0xfffef748) at ../include/ btllib/ seq_reader. hpp:151 :SeqReader: :begin (this=0xfffef818) at ../include/ btllib/ seq_reader. hpp:160 btllib- 1.4.10+ dfsg-1ubuntu1/ tests/seq_ reader_ fasta_module. cpp:25
#0 __libc_do_syscall () at ../sysdeps/
#1 0xf7cba47e in __futex_
#2 __futex_
#3 0xf7cba55c in __GI___
#4 0xf7cbc876 in __pthread_
#5 ___pthread_
#6 0x0040d6b0 in std::condition_
#7 btllib:
#8 0x0040cf88 in btllib:
#9 0x00402c7a in btllib:
#10 btllib:
#11 btllib:
--Type <RET> for more, q to quit, c to continue without paging--
#12 main () at /usr/src/
------- ------- ------