Re: Help diagnosing libtorrent build test failure on ppc64el

Simon Richter <[email protected]> Sat, 3 Jan 2026 19:44:23 +0900
Newsgroups gmane.linux.debian.ports.powerpc
Message-ID <[email protected]>
Hi,

On 1/3/26 03:48, Jonathan McDowell wrote:

> Looking at the tests it's the torrent/ 
> utils::TestSignalInterrupt::test_thread_interrupt test that's failing, 
> which appears to be trying to do signal delivery to a C++ thread and 
> confirm it behaves as expected.

Looking into the SignalInterrupt class, that one seems to use a socket 
pair, not even a signal, and optimizes to send fewer notifications by 
noting down in an atomic boolean when it has already sent one.

After a quick glance at the code, I'm not convinced this is actually 
safe, because that variable is reset to false with an unconditional 
write at the end of processing when it should be reset at the beginning 
of processing in order to not lose events, i.e. we would need to reach 
this line

https://salsa.debian.org/debian/libtorrent/-/blob/master/src/utils/signal_interrupt.cc?ref_type=heads#L90

before we even take a look at whatever other channel we're sending data 
through, such as shared memory with a mutex, otherwise a notification 
can be eaten here.

That alone is fishy. I'm not sure this is the culprit, though, just the 
first thing I found, without testing anything on actual hardware.

    Simon
OpenPGP_0xEBF67A846AABE354.asc (application/pgp-keys, 11 KB)
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
ICmH3XHvTMqSYdXuRXGqpA==
=xVQ0
-----END PGP PUBLIC KEY BLOCK-----
OpenPGP_signature.asc (application/pgp-signature, 488 B)
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEtjuqOJSXmNjSiX3Tfr04e7CZCBEFAmlY8wcACgkQfr04e7CZ
CBEOnwf/eHq2n+PC8LzJE32x8wXlaoYDf1ZJ1thpn+GOEGprT4GwQ0xMmfP/q3JA
3gx8tsPoWL11XdDeAhfHtBqIpZxd0ZAVcELJ+eccSPUqNg+sHNTQq0EZwmz8dJMJ
EyrSzJIh7vt434XoUn6ZD0uny8dMPtbrbeKyg0qQQyMLM1mEMiRw8HPrwhjT1dKF
LJgfo+QSEZvu1SJ8O+uF25xE7+vM3wbXsXvoTMQo1kEyBOkm1++3dkM356BTlTOA
zKw060xuZujLorER5NvggO6X41nJgqeBKhkWWaNQAZZbsLHrsILkjHBCo1lhDgCV
oleqc50gjukCHIxi1J+sx9Itw3WCgQ==
=5a0E
-----END PGP SIGNATURE-----