Hi,

GNU Make now has a --shuffle option that simulates non-deterministic
ordering of target prerequisites. See
https://trofi.github.io/posts/238-new-make-shuffle-mode.html and also
previous work in Debian by Santiago Vila:
https://people.debian.org/~sanvila/make-shuffle/

While make always processes prerequisites left-to-right when running
sequentially, prerequisites can be evaluated in an arbitrary order when
building in parallel (make -j). This option is thus useful to trigger
and debug issues that occur when building in parallel.

I identified 511 packages in unstable[0] (dd-list[1]) that fail to build
with 'make --shuffle=reverse' or 'make --shuffle=random', but do not fail to
build with 'make --shuffle=none'.

[0] http://qa-logs.debian.net/2025/05/05/shuffle/sources.txt
[1] http://qa-logs.debian.net/2025/05/05/shuffle/dd-list.txt

Builds logs are available in http://qa-logs.debian.net/2025/05/05/shuffle/

I would like to submit bugs (severity:minor) against those packages.

I'd rather do the bug submitting now to avoid refreshing build results
later, but I agree that this is not release-critical material of course,
so I can also wait until after the trixie release.

One could argue that those issues are not bugs in Debian since they
cannot be triggered in packages that do not build in parallel.  However
building in parallel is now the default, so I think that even for those
packages that do not build in parallel yet, it is good to know that
there is something broken that could bite with a
difficult-to-reproduce-and-explain race condition if parallel building
was enabled.

I prepared a wiki page [2] and debugged a few failures listed on that
page (#1104421 #1104428 #1104429 #1104430 #1104751).

[2] https://wiki.debian.org/qa.debian.org/FTBFS/Shuffle

Note to self or anyone interested: I did not check if packages built with
or without --shuffle were identical. That could be fun as a future work.

Proposed bug template:
--------------------------------------->8
From: {{ fullname }} <{{ email }}>
To: sub...@bugs.debian.org
Subject: {{ package }}: FTBFS with make --shuffle: {{ summary }}

Source: {{ package }}
Version: {{ version }}
Severity: minor
Tags: trixie sid ftbfs
User: lu...@debian.org
Usertags: ftbfs-shuffle

Hi,

GNU Make now has a --shuffle option that simulates non-deterministic ordering
of target prerequisites. See
https://trofi.github.io/posts/238-new-make-shuffle-mode.html and also previous
work in Debian by Santiago Vila:
https://people.debian.org/~sanvila/make-shuffle/

This package fails to build with make --shuffle=reverse or make
--shuffle=random.  This is likely to be caused by a missing dependency in
debian/rules or an upstream Makefile.

More information about this mass bug filing is available at
https://wiki.debian.org/qa.debian.org/FTBFS/Shuffle

[...]
--------------------------------------->8

- Lucas

Reply via email to