please fix nthash FTBS in lunar

Bug #2009757 reported by Vladimir Petko
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
btllib (Ubuntu)
Fix Released
Undecided
Unassigned
nthash (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

nthash fails to build from source for armhf, riscv64 and s390x platform.

s390x platform is not available for its dependency libbtllib-dev, because libomp-dev provided by llvm-defaults is not available for s390x [1]

Build failed for riscv64 because it was built with libbtllib-dev earlier depended on libsdsl-dev. It was demoted to recommends and we can retry the build.

libbtllib-dev fails tests on armhf [2]

Objectives:
 - update arches to align with dependency (drop s390x)
 - fix armhf tests

[1] https://launchpadlibrarian.net/655100169/buildlog_ubuntu-lunar-s390x.btllib_1.4.10+dfsg-1ubuntu1_BUILDING.txt.gz
[2] https://launchpadlibrarian.net/655100633/buildlog_ubuntu-lunar-armhf.btllib_1.4.10+dfsg-1ubuntu1_BUILDING.txt.gz

Vladimir Petko (vpa1977)
tags: added: update-excuse
Vladimir Petko (vpa1977)
description: updated
description: updated
Vladimir Petko (vpa1977)
summary: - please fix nhash FTBS in lunar
+ please fix nthash FTBS in lunar
Revision history for this message
Vladimir Petko (vpa1977) wrote (last edit ):
Download full text (7.9 KiB)

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::OrderQ...

Read more...

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

Seems to be caused by absence of the integer overflow - there is addional condition for the queue `&&(num - target.last_tenant <= this->queue_size),` and target.lasttenant is coming up as `4294967295`

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

Filed bug and patch upstream: https://github.com/bcgsc/btllib/issues/80

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package btllib - 1.4.10+dfsg-1ubuntu2

---------------
btllib (1.4.10+dfsg-1ubuntu2) lunar; urgency=medium

  [ Graham Inggs ]
  * Revert libbtllib-dev to Architecture: any

  [ Vladimir Petko ]
  * Avoid FTBFS due to deadlock on 32-bit architectures (LP: #2009757)

 -- Graham Inggs <email address hidden> Sun, 16 Apr 2023 12:12:42 +0000

Changed in btllib (Ubuntu):
status: New → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package nthash - 2.3.0+dfsg-1ubuntu1

---------------
nthash (2.3.0+dfsg-1ubuntu1) lunar; urgency=medium

  * Link with -latomic on riscv64 to avoid FTBFS (LP: #2009757)

 -- Graham Inggs <email address hidden> Sun, 16 Apr 2023 12:59:10 +0000

Changed in nthash (Ubuntu):
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.