Bug#1122432: libgusb: FTBFS: 2/3 libgusb:gusb-self-test FAIL 0.01s killed by signal 6 SIGABRT

2026-01-06 Thread Jochen Sprickerhof

Hi Jeremy,

* Jeremy Bícha  [2025-12-10 22:32]:

This situation is different as it's not been demonstrated yet that the
test is too unreliable for Debian's purposes. We don't have enough
information about why your system is different and your simple patch
(don't run the test in the official Debian build) isn't necessarily
something Debian maintainers should be eager to accept.

https://tests.reproducible-builds.org/debian/history/libgusb.html


I had a quick look because it is failing on:

https://reproduce.debian.net/all/#libgusb-doc

but not:

https://reproduce.debian.net/amd64/#libgusb2

The difference is that the arch:all build has no /sys/bus/usb/ and the 
test tries to access that. As I wrote in:


https://lists.debian.org/debian-release/2025/11/msg00362.html

/sys is known to be different on different systems.

Eventually sbuild will wrap the build in qemu to fix this..

Cheers Jochen


signature.asc
Description: PGP signature


Bug#1122432: libgusb: FTBFS: 2/3 libgusb:gusb-self-test FAIL 0.01s killed by signal 6 SIGABRT

2025-12-11 Thread Jeremy Bícha
On Thu, Dec 11, 2025 at 8:19 AM Santiago Vila  wrote:
> Well, for the record, it also fails in Salsa CI. I tried adding a
> salsa-ci.yml, which you removed in commit [8610af0], and this is what
> happened:
>
> https://salsa.debian.org/sanvila/libgusb/-/pipelines

Yes, I was the one who added the Salsa CI file but as I mentioned in
the commit message, the repo wasn't configured to actually use that
file, so I removed the file immediately afterwards. I'll contact the
repo owners so that we can enable Salsa CI.

The fact that the test fails in Salsa CI is a strong argument, and it
was one that I attempted to check a week ago but I didn't get it done.
Thank you for the data.

Jeremy Bícha



Bug#1122432: libgusb: FTBFS: 2/3 libgusb:gusb-self-test FAIL 0.01s killed by signal 6 SIGABRT

2025-12-11 Thread Santiago Vila
On Wed, Dec 10, 2025 at 10:32:47PM -0500, Jeremy Bícha wrote:
> On Wed, Dec 10, 2025 at 5:51 PM Santiago Vila  wrote:
> > On Wed, Dec 10, 2025 at 03:56:20PM -0500, Jeremy Bícha wrote:
> > > Control: severity -1 normal
> >
> > I think this is wrong, because it's a violation of Policy 4.2.
> > Policy 4.2 is "must" directive.
> 
> https://www.debian.org/doc/debian-policy/ch-source.html#package-relationships
> Debian Policy §4.2 is about build dependencies. Here's the heart of the 
> section:
> "If build-time dependencies are specified, it must be possible to
> build the package and produce working binaries on a system with only
> essential and build-essential packages installed and also those
> required to satisfy the build-time relationships"

This is not only about build-dependencies. This is THE paragraph in
policy mandating that packages must build from source.

Just because it's worded in a section about build-dependencies does
not mean that the paragraph only means "there must not be
missing build-depends".

> The package builds ok as is on Debian's buildds. It also builds for me
> ok with sbuild. You can build libgusb on your system by using the
> nocheck build profile.

"It must be possible" means it has to work. Not only in your computer,
not only in buildd.debian.org. It must work for anybody not doing
anything "wrong", and I'm not doing anything wrong.

And working means dpkg-buildpackage exiting with exit status 0
indicating success in the regular way of package building, without
having to jump through hoops (like using nocheck).

> This situation is different as it's not been demonstrated yet that the
> test is too unreliable for Debian's purposes.

Well, for the record, it also fails in Salsa CI. I tried adding a
salsa-ci.yml, which you removed in commit [8610af0], and this is what
happened:

https://salsa.debian.org/sanvila/libgusb/-/pipelines

> We don't have enough
> information about why your system is different

You don't really need "information about why my system is different".

This is precisely why I always offer a VM to test, but for some reason
you prefer to decline the offer and ignore that an unknown amount of
people can't build the package, just because you can build the package.

In this particular case, if you are still unwilling to use the VM
I offer, I suggest you try in a VM with 2 CPUs, which afaik
is also that Salsa CI uses.

Paul Gevers wrote:

> > Moreover, flaky tests are considered RC since trixie
>
> They were considered RC well before trixie. I don't think the
> start date matters.

Well, apparently some people seem not to be aware of that yet, and I
think that's a problem that we should try to address, because not
being aware is probably what makes discussions like this one to happen
from time to time.

(This is the meaning of the question which you call impossible
to answer, but I'm not sure how to express it in the best
possible way, sorry).

> Debian's purposes are its users. Including those that build the software we
> ship themselves.

That's exactly the point I was trying to make. Source packages are for
everybody, not just for buildd, not just for Salsa CI, not just
for reproducible-builds, and not just for the maintainer's own PC.

> [...]
> PS Santiago: I don't really like you phrasing this question like this

Ok, I apologize if my choice of words was not appropriate. Let me
reword the question in another way:

What can we do so that people abandon the (flawed, imo) idea that
our sources packages only need to be buildable in buildd.debian.org?

Is this a cultural problem? Is this a problem in the way Release
Policy is worded? Is it maybe a communication problem? What kind of
problem is it, and how could we address it?

(I admit that it's a difficult question, but I would not call it
impossible).

I've seen too many people thinking that way and I consider that
to be detrimental for the quality of Debian.

I think this idea comes from this sentence in Release Policy:

> Packages must autobuild without failure on all architectures on
> which they are supported.

My interpretation of that, and I think that was always the original
intent, is that FTBFS bugs are only acceptable when they happen
on non-release architectures, or on releases on which the
package is not supported.

And the idea is (or I believe it always was) that if we ship a given
package for a given architecture in a stable release, the package must
be buildable in such architecture within such stable release.

(So we have to make the bugs RC before that to ensure that packages
which do not build in some architecture do not reach the next stable).

The problem here is that the sentence uses "autobuilding" and too many
people interpret that as "autobuilding in the official buildds", when
I think that was never the idea or the intent.

In my opinion, the paragraph just follows a "simplified model" of
building, in which a package either always build ok in a given
architecture, or it always fail in a g

Bug#1122432: libgusb: FTBFS: 2/3 libgusb:gusb-self-test FAIL 0.01s killed by signal 6 SIGABRT

2025-12-10 Thread Paul Gevers

Hi,

Let me start off with saying I can sympathize with both of you. In the 
end I concluded I believe the test to be unreliable. See below.


On 12/11/25 04:32, Jeremy Bícha wrote:

On Wed, Dec 10, 2025 at 5:51 PM Santiago Vila  wrote:

On Wed, Dec 10, 2025 at 03:56:20PM -0500, Jeremy Bícha wrote:

The package builds ok as is on Debian's buildds. It also builds for me
ok with sbuild.



I also tried it (I used autopkgtest to build it) multiple times on two 
machines: my laptop and the amd64 ci.d.n host. It didn't fail for me. I 
noticed that for reproduce.debian.net if failed on another test [1].



You can build libgusb on your system by using the
nocheck build profile.



And what would the user conclude when the failing test? If it was me 
building it, I would conclude there is something wrong with the binaries.



Moreover, flaky tests are considered RC since trixie



They were considered RC well before trixie. I don't think the start date 
matters.



This situation is different as it's not been demonstrated yet that the
test is too unreliable for Debian's purposes.



Debian's purposes are it's users. Including those that build the 
software we ship themselves.



We don't have enough
information about why your system is different



Given that we now have 2 amd64 systems where the build fails with the 
SIGABRT in gusb-self-test (Santiago's and r-b.o), one where it fails 
with a timeout in gusb-umockdev-test and 4 where it works (amd64 buildd, 
Jeremy's system, my laptop and the ci.d.n amd64 host), it would be 
interesting to know about specialities of the hosts. I also note that 
Jeremy disabled the tests on some architectures, the changelog says 
because they fail. The build of several architectures on the buildds 
failed on SIGABRT in gusb-self-test too; I checked the logs of arm64, 
armhf, s390x and alpha. It seems that the gusb-self-test test isn't 
reliable.



and your simple patch
(don't run the test in the official Debian build) isn't necessarily
something Debian maintainers should be eager to accept.



Can it be made such that it runs, but failures ignored to collect some 
more statistics? Can more debugging information be added? I recognize 
the reluctance to disable tests, but I also believe flaky tests are bad. 
I also think this test has all appearances of being a bad test.


Paul

[1] https://reproduce.debian.net/amd64/api/v1/builds/102945/log

PS Santiago: I don't really like you phrasing this question like this: """
Once again, I have to ask Paul: What needs to happen so that people
stop using the simplistic "buildd" argument as an excuse to downgrade
and/or ignore build failures like this one?
"""
I think the question is asking the impossible and I don't consider it my 
task to answer that question for you.




OpenPGP_signature.asc
Description: OpenPGP digital signature


Bug#1122432: libgusb: FTBFS: 2/3 libgusb:gusb-self-test FAIL 0.01s killed by signal 6 SIGABRT

2025-12-10 Thread Jeremy Bícha
On Wed, Dec 10, 2025 at 5:51 PM Santiago Vila  wrote:
> On Wed, Dec 10, 2025 at 03:56:20PM -0500, Jeremy Bícha wrote:
> > Control: severity -1 normal
>
> I think this is wrong, because it's a violation of Policy 4.2.
> Policy 4.2 is "must" directive.

https://www.debian.org/doc/debian-policy/ch-source.html#package-relationships
Debian Policy §4.2 is about build dependencies. Here's the heart of the section:
"If build-time dependencies are specified, it must be possible to
build the package and produce working binaries on a system with only
essential and build-essential packages installed and also those
required to satisfy the build-time relationships"

The package builds ok as is on Debian's buildds. It also builds for me
ok with sbuild. You can build libgusb on your system by using the
nocheck build profile.

> Moreover, flaky tests are considered RC since trixie, and we already
> discussed about this in the gcr4 bug.

I am sorry for the gcr situation and that it took so long to resolve.

This situation is different as it's not been demonstrated yet that the
test is too unreliable for Debian's purposes. We don't have enough
information about why your system is different and your simple patch
(don't run the test in the official Debian build) isn't necessarily
something Debian maintainers should be eager to accept.

https://tests.reproducible-builds.org/debian/history/libgusb.html

Thank you,
Jeremy Bícha



Bug#1122432: libgusb: FTBFS: 2/3 libgusb:gusb-self-test FAIL 0.01s killed by signal 6 SIGABRT

2025-12-10 Thread Santiago Vila
tags 1122432 patch
thanks

Note: Cc to Paul as Release Manager because he set some conventional
thresholds for flaky tests in the gcr4 bug which I also would like to
see applied here.


On Wed, Dec 10, 2025 at 03:56:20PM -0500, Jeremy Bícha wrote:
> Control: severity -1 normal

I think this is wrong, because it's a violation of Policy 4.2.
Policy 4.2 is "must" directive.

Moreover, flaky tests are considered RC since trixie, and we already
discussed about this in the gcr4 bug.

For the record, I'm getting a failure rate of 100% (i.e. *always*),
which clearly exceeds the conventional threshold of 1/6 set by Paul in
the gcr4 bug.

I've put a bunch of build logs here for you to see:

https://people.debian.org/~sanvila/build-logs/202512/

> On Wed, Dec 10, 2025 at 3:40 PM Santiago Vila  wrote:
> > Package: src:libgusb
> > Version: 0.4.9-5
> > Severity: serious
> > Tags: ftbfs forky sid
> >
> > Dear maintainer:
> >
> > During a rebuild of all packages in unstable, this package failed to build.
> 
> But libgusb built successfully on all Debian architectures a few days ago:
> 
> https://buildd.debian.org/status/package.php?p=libgusb

So what? I've heard such argument before and I still believe it's wrong.

Policy 4.2 is not restricted to buildd.debian.org, and the end user
will not use buildd.debian.org to rebuild packages. Relying only on
whatever happens in buildd.debian.org to determine if something is
suitable for release does not make sense for a free software
distribution.

Once again, I have to ask Paul: What needs to happen so that people
stop using the simplistic "buildd" argument as an excuse to downgrade
and/or ignore build failures like this one? (The maintainer here even
claimed he would like to close the bug!).


Note that I'm *not* doing anything wrong, I'm also offering a VM to
reproduce, and I'm *not* the only one who can't rebuild the package:

https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/libgusb.html

A test which fails over and over again is telling us that the program
might be wrong. If you ignore the outcome of the test, it means
you don't really care. But if you don't really care, then there
is no excuse to not disable the test.

The "it works for me" argument may be suitable for a proprietary
software company. But for Debian it's an anti-pattern. I'm not
offering a VM to reproduce in *every* and *each* FTBFS bug I report so
that people still tell me "it works for me" as an excuse to do
nothing.

I'm attaching a patch to disable the flaky test if ignoring the
outcome of the test is what you really want to do.

Thanks.Description: Disable flaky test
Author: Santiago Vila 
Bug-Debian: https://bugs.debian.org/1122432
Last-Update: 2025-12-10

--- libgusb-0.4.9.orig/gusb/meson.build
+++ libgusb-0.4.9/gusb/meson.build
@@ -230,7 +230,7 @@ if get_option('tests')
   cargs,
 ],
   )
-  test('gusb-self-test', e)
+  # test('gusb-self-test', e)
 
   # Umockdev based tests
   test_env = environment()


Bug#1122432: libgusb: FTBFS: 2/3 libgusb:gusb-self-test FAIL 0.01s killed by signal 6 SIGABRT

2025-12-10 Thread Jeremy Bícha
Control: severity -1 normal

On Wed, Dec 10, 2025 at 3:40 PM Santiago Vila  wrote:
> Package: src:libgusb
> Version: 0.4.9-5
> Severity: serious
> Tags: ftbfs forky sid
>
> Dear maintainer:
>
> During a rebuild of all packages in unstable, this package failed to build.

But libgusb built successfully on all Debian architectures a few days ago:

https://buildd.debian.org/status/package.php?p=libgusb

Notably, I enabled build tests this month for Debian's libgusb instead
of silently skipping them. I believe that change was better for
Debian. Those tests are disabled on some architectures where this self
test is failing. Maybe there's some issue with umockdev or something
on some systems. You're of course welcome to build with nocheck if you
want. I don't think this is a FTBFS issue for Debian itself.
Therefore, I'd like to close this bug but I'm at least marking as not
RC.

Thank you,
Jeremy Bícha



Bug#1122432: libgusb: FTBFS: 2/3 libgusb:gusb-self-test FAIL 0.01s killed by signal 6 SIGABRT

2025-12-10 Thread Santiago Vila
Package: src:libgusb
Version: 0.4.9-5
Severity: serious
Tags: ftbfs forky sid

Dear maintainer:

During a rebuild of all packages in unstable, this package failed to build.

Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:

https://people.debian.org/~sanvila/build-logs/202512/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you cannot reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:libgusb, so that this is still
visible in the BTS web page for this package.

Thanks.


[...]
[26/33] cc -Igusb/gusb-umockdev-test.p -Igusb -I../gusb -I.  
[too-long-redacted] -c ../gusb/gusb-umockdev-test.c
[27/33] /usr/bin/x86_64-linux-gnu-g-ir-compiler gusb/GUsb-1.0.gir --output 
gusb/GUsb-1.0.typelib --includedir=/usr/share/gir-1.0
[28/33] cc -Itools/gusbcmd.p -Itools -I../tools -Igusb -I../ 
[too-long-redacted] ain.c.o -c ../tools/gusb-main.c
[29/33] cc  -o gusb/gusb-self-test gusb/gusb-self-test.p/gus 
[too-long-redacted] son-glib-1.0.so -Wl,--end-group
[30/33] cc  -o gusb/gusb-umockdev-test 
gusb/gusb-umockdev-test.p/gusb-umockdev-test.c.o -Wl,--as-needed 
-Wl,--no-undefined -Wl,-z,relro -Wl,-z,now -Wl,-z,relro -Wl,-z,now -Wl,-O1 
-Wl,-z,defs -g -O2 -Werror=implicit-function-declaration 
-ffile-prefix-map=/<>=. -fstack-protector-strong 
-fstack-clash-protection -Wformat -Werror=format-security -fcf-protection 
-Wdate-time -D_FORTIFY_SOURCE=2 '-Wl,-rpath,$ORIGIN/' -Wl,--start-group 
gusb/libgusb.so.2.0.10 /usr/lib/x86_64-linux-gnu/libumockdev.so 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so 
/usr/lib/x86_64-linux-gnu/libglib-2.0.so 
/usr/lib/x86_64-linux-gnu/libgio-2.0.so /usr/lib/x86_64-linux-gnu/libusb-1.0.so 
/usr/lib/x86_64-linux-gnu/libjson-glib-1.0.so -Wl,--end-group
[31/33] cc  -o tools/gusbcmd tools/gusbcmd.p/gusb-main.c.o -Wl,--as-needed 
-Wl,--no-undefined -Wl,-z,relro -Wl,-z,now -Wl,-z,relro -Wl,-z,now -Wl,-O1 
-Wl,-z,defs -g -O2 -Werror=implicit-function-declaration 
-ffile-prefix-map=/<>=. -fstack-protector-strong 
-fstack-clash-protection -Wformat -Werror=format-security -fcf-protection 
-Wdate-time -D_FORTIFY_SOURCE=2 '-Wl,-rpath,$ORIGIN/../gusb' -Wl,--start-group 
gusb/libgusb.so.2.0.10 /usr/lib/x86_64-linux-gnu/libgio-2.0.so 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so 
/usr/lib/x86_64-linux-gnu/libglib-2.0.so 
/usr/lib/x86_64-linux-gnu/libusb-1.0.so 
/usr/lib/x86_64-linux-gnu/libjson-glib-1.0.so -Wl,--end-group
[32/33] /usr/bin/vapigen --quiet --library=gusb 
--directory=/<>/obj-x86_64-linux-gnu/gusb --pkg=gio-2.0 
--pkg=json-glib-1.0 --metadatadir=/<>/gusb 
/<>/obj-x86_64-linux-gnu/gusb/GUsb-1.0.gir
[33/33] /usr/bin/gi-docgen generate --quiet 
--add-include-path=/<>/obj-x86_64-linux-gnu/docs/../libgusb 
--config=docs/libgusb.toml --output-dir=docs/libgusb --no-namespace-dir 
--content-dir=/<>/docs gusb/GUsb-1.0.gir
   dh_auto_test
cd obj-x86_64-linux-gnu && DEB_PYTHON_INSTALL_LAYOUT=deb LC_ALL=C.UTF-8 
MESON_TESTTHREADS=2 meson test --verbose
ninja: Entering directory `/<>/obj-x86_64-linux-gnu'
[1/1] Generating gusb/gusb_mapfile with a custom command
/<>/contrib/generate-version-script.py:10: DeprecationWarning: 
pkg_resources is deprecated as an API. See 
https://setuptools.pypa.io/en/latest/pkg_resources.html
  from pkg_resources import parse_version
1/3 libgusb:gusb-exported-api  RUNNING   
>>> MSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1
>>>  
>>> UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1
>>>  ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 
>>> MALLOC_PERTURB_=25 MESON_TEST_ITERATION=1 /usr/bin/diff -urNp 
>>> /<>/gusb/libgusb.ver gusb/libgusb.ver

2/3 libgusb:gusb-self-test RUNNING   
>>> MSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1
>>>  
>>> UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1
>>>  MALLOC_PERTURB_=191 
>>> ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 
>>> MESON_TEST_ITERATION=1 
>>> /<>/obj-x86_64-linux-gnu/gusb/gusb-self-test

1/3 libgusb:gusb-exported-api  OK  0.01s

3/3 libgusb:gusb-umockdev-test RUNNING   
>>> MALLOC_PERTURB_=188 
>>> MSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1
>>>  
>>> UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1
>>>  LD_PRELOAD=libumockdev-preload.so.0 
>>> ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 
>>> LD_LIBRARY_PATH=/<>/obj-x86_64-linux-gnu/gusb 
>>> MESON_TEST_ITERATION=1 
>>> /<>