Package: libtorrent-rasterbar2.0 Version: 2.0.6-3+b1 Severity: grave X-Debbugs-Cc: none, Hilko Bengen <ben...@debian.org> Control: notfound -1 2.0.6-3
Dear Maintainer, bug #1013470 about a nbdkit rebuild failure was reported and it turned out that this happens because of a crash that happens even in trivial cases: ,---- | $ server/nbdkit plugins/torrent/.libs/nbdkit-torrent-plugin.so --help | nbdkit [-4|--ipv4-only] [-6|--ipv6-only] | [-D|--debug PLUGIN|FILTER|nbdkit.FLAG=N] | [-e|--exportname EXPORTNAME] [--exit-with-parent] | [--filter FILTER ...] [-f|--foreground] | [-g|--group GROUP] [-i|--ipaddr IPADDR] | [--log stderr|syslog|null] | [-n|--newstyle] [--mask-handshake MASK] [--no-sr] [-o|--oldstyle] | [-P|--pidfile PIDFILE] | [-p|--port PORT] [-r|--readonly] | [--run CMD] [-s|--single] [--selinux-label LABEL] [--swap] | [-t|--threads THREADS] | [--tls off|on|require] | [--tls-certificates /path/to/certificates] | [--tls-psk /path/to/pskfile] [--tls-verify-peer] | [-U|--unix SOCKET] [-u|--user USER] | [-v|--verbose] [-V|--version] [--vsock] | PLUGIN [[KEY=]VALUE [KEY=VALUE [...]]] | | nbdkit --dump-config | | nbdkit PLUGIN --dump-plugin | | nbdkit --help | | Please read the nbdkit(1) manual page for full usage. | | plugin: torrent (nbdkit bittorrent plugin) | (plugins/torrent/.libs/nbdkit-torrent-plugin.so) | torrent=<TORRENT> (required) Torrent or magnet link. | file=DISK.iso File to serve within torrent. | cache=DIR Set directory to store partial downloads. | Segmentation fault `---- >From the output, it looks as if the crash occurred on a cleanup code path. Downgrading to 2.0.6-3 (before the OpenSSL 3 rebuild) makes the segmentation fault go away. The stacktrace below suggests that this is related to cleanup code registered using atexit(3): pthread_rwlock_wrlock() is called with a NULL pointer. ,---- | $ gdb --args server/nbdkit plugins/torrent/.libs/nbdkit-torrent-plugin.so --help | GNU gdb (Debian 12.1-2) 12.1 | Copyright (C) 2022 Free Software Foundation, Inc. | [...] | (gdb) run | Starting program: /home/bengen/p/deb/nbdkit/server/nbdkit plugins/torrent/.libs/nbdkit-torrent-plugin.so --help | [Thread debugging using libthread_db enabled] | Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". | nbdkit [-4|--ipv4-only] [-6|--ipv6-only] | [-D|--debug PLUGIN|FILTER|nbdkit.FLAG=N] | [...] | torrent=<TORRENT> (required) Torrent or magnet link. | file=DISK.iso File to serve within torrent. | cache=DIR Set directory to store partial downloads. | | Program received signal SIGSEGV, Segmentation fault. | __GI___pthread_rwlock_wrlock (rwlock=0x0) at pthread_rwlock_wrlock.c:27 | 27 pthread_rwlock_wrlock.c: No such file or directory. | (gdb) bt | #0 __GI___pthread_rwlock_wrlock (rwlock=0x0) at pthread_rwlock_wrlock.c:27 | #1 0x00007ffff6c8a8e9 in CRYPTO_THREAD_write_lock (lock=<optimized out>) at ../crypto/threads_pthread.c:112 | #2 0x00007ffff6ba7a03 in conf_modules_finish_int () at ../crypto/conf/conf_mod.c:524 | #3 0x00007ffff6ba8132 in CONF_modules_unload (all=1) at ../crypto/conf/conf_mod.c:482 | #4 0x00007ffff726af24 in boost::asio::ssl::detail::openssl_init_base::do_init::~do_init (this=0x55556157dc50, __in_chrg=<optimized out>) | at /usr/include/boost/asio/ssl/detail/impl/openssl_init.ipp:90 | #5 std::_Sp_counted_ptr<boost::asio::ssl::detail::openssl_init_base::do_init*, (__gnu_cxx::_Lock_policy)2>::_M_dispose ( | this=<optimized out>) at /usr/include/c++/11/bits/shared_ptr_base.h:348 | #6 0x00007ffff726b09a in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x55556157db90) | at /usr/include/c++/11/bits/shared_ptr_base.h:168 | #7 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count (this=<optimized out>, __in_chrg=<optimized out>) | at /usr/include/c++/11/bits/shared_ptr_base.h:705 | #8 std::__shared_ptr<boost::asio::ssl::detail::openssl_init_base::do_init, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr ( | this=<optimized out>, __in_chrg=<optimized out>) at /usr/include/c++/11/bits/shared_ptr_base.h:1154 | #9 std::shared_ptr<boost::asio::ssl::detail::openssl_init_base::do_init>::~shared_ptr (this=<optimized out>, __in_chrg=<optimized out>) | at /usr/include/c++/11/bits/shared_ptr.h:122 | #10 0x00007ffff7bb9f77 in __run_exit_handlers (status=status@entry=0, listp=0x7ffff7d4d738 <__exit_funcs>, | run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true) at exit.c:108 | #11 0x00007ffff7bba11a in __GI_exit (status=status@entry=0) at exit.c:139 | #12 0x000055555555a944 in main (argc=<optimized out>, argv=<optimized out>) at ./server/main.c:678 `---- Cheers, -Hilko