On Sun, Apr 07, 2024 at 01:49:35PM +0500, Andrey Rakhmatullin wrote: > On Sat, Apr 06, 2024 at 10:31:52PM +0000, tony mancill wrote: > > On Fri, Mar 29, 2024 at 12:13:57AM +0500, Andrey Rakhmatullin wrote: > > > Source: capnproto > > > Version: 1.0.1-3 > > > Severity: serious > > > Tags: ftbfs > > > > > > https://buildd.debian.org/status/fetch.php?pkg=capnproto&arch=armhf&ver=1.0.1-3%2Bb2&stamp=1711652087&raw=0 > > > > Thank you for the bug report. I'm not able to reproduce the test > > failure when cross-building on amd64, so am in the process of triaging > > on a porter box. > Does it fail on a porter box? > As a (useless?) data point I've just tried building it in a qemu chroot > and some other tests failed, e.g. AsyncIo/AncillaryMessageHandler and > AsyncIo/ScmRightsTruncatedOdd so it's not useful.
Yes, the failure is consistent on the porter box. It's still quite early in my investigation (and I'm not slow at this sort of stuff). My first hypothesis was that usleep() might behave differently, but there is no evidence to support that. Now I'm trying to decide whether the difference in the timespec struct contributes to the issue: on armhf: Size of timespec.tz_sec: 8 byte Size of timespec.tz_nsec: 4 byte Everywhere else: Size of timespec.tz_sec: 8 byte Size of timespec.tz_nsec: 8 byte I'm focused on this code: https://sources.debian.org/src/capnproto/1.0.1-3/src/kj/mutex.c%2B%2B/#L157-L173 But I'm haven't yet found a clear issue, or an explanation as why this is behaving differently now, since this code has worked on 32-bit architectures in the past. I am assuming that if the futux syscall here: https://sources.debian.org/src/capnproto/1.0.1-3/src/kj/mutex.c%2B%2B/#L250 which also gets passed a timespec, was the culprit, that more things would be broken on armhf than just a few tests. But that's an area I need to explore further. Thank you, tony
signature.asc
Description: PGP signature