** Patch added: "boost-context-0921b9fd5c.patch" https://bugs.launchpad.net/ubuntu/+source/boost1.90/+bug/2173538/+attachment/6015426/+files/boost-context-0921b9fd5c.patch
** Description changed: - 1) Ubuntu 26.04.1 LTS (resolute), amd64 and arm64 + 1) The release of Ubuntu you are using: + Ubuntu 26.04.1 LTS (resolute), amd64 and arm64 - 2) libboost1.90-dev / libboost-context1.90-dev 1.90.0-6ubuntu1, g++ - 15.2.0-16ubuntu1 + 2) The version of the package you are using: + libboost1.90-dev / libboost-context1.90-dev 1.90.0-6ubuntu1, g++ 15.2.0-16ubuntu1 - 3) An exception caught inside a boost::asio::spawn coroutine should stay - the current exception, so `throw;` rethrows it. + 3) What you expected to happen: + An exception caught inside a boost::asio::spawn coroutine should stay the current exception, so `throw;` rethrows it. - 4) When coroutines move between threads, the exception state of another - thread gets overwritten. `throw;` inside a catch block then aborts with - "terminate called without an active exception": + 4) What happened instead: + When coroutines move between threads, the exception state of another thread gets overwritten. `throw;` inside a catch block then aborts with "terminate called without an active exception": g++ -O2 -std=c++17 -pthread -o repro repro.cpp -lboost_context ./repro rethrow 10 # aborts within milliseconds; with the patch it runs 10 s and exits 0 This is https://github.com/boostorg/context/issues/323. `manage_exception_state` in boost/context/fiber_fcontext.hpp lost its `BOOST_NOINLINE`, so gcc caches the TLS address from `__cxa_get_globals()` across the fiber switch. It is fixed upstream in Boost 1.92 by commit 0921b9fd5c (https://github.com/boostorg/context/pull/331). The patch is attached; it applies unchanged to 1.90.0-6ubuntu1. We hit this with Icinga 2 (from packages.icinga.com) on 26.04: about 1 in 240 cancelled connections crashed an I/O thread. After rebuilding the same sources against the patched header, we saw 0 in 12,675. radosgw/librgw2 from ceph show the same code pattern. Since the bug is in a header, affected packages need a rebuild after the fix. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2173538 Title: boost1.90: fibers clobber the libstdc++ exception state of another thread (upstream boostorg/context#323) To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/boost1.90/+bug/2173538/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
