Comment 1 for bug 2009757

Revision history for this message
Vladimir Petko (vpa1977) wrote (last edit ):

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

--------------------