x86_64-pc-linux-gnu-gcc -I. -I./simdzone/include -O2 -pipe -march=native -fno-diagnostics-color -c region-allocator.c x86_64-pc-linux-gnu-gcc -I. -I./simdzone/include -O2 -pipe -march=native -fno-diagnostics-color -c xfrd-disk.c make -C simdzone make[1]: Entering directory '/var/tmp/portage/net-dns/nsd-4.10.0/work/nsd-4.10.0/simdzone' x86_64-pc-linux-gnu-gcc -MT src/fallback/parser.o -MMD -MP -MF src/fallback/parser.d -I./include -I./src -I. -O2 -pipe -march=native -fno-diagnostics-color -o src/fallback/parser.o -c ./src/fallback/parser.c In file included from ./src/fallback/parser.c:9: ./include/zone.h:24:10: fatal error: zone/export.h: No such file or directory 24 | #include "zone/export.h" | ^~~~~~~~~~~~~~~ ------------------------------------------------------------------- This is an unstable amd64 chroot image at a tinderbox (==build bot) name: 23.0_no_multilib_systemd-20240712-235502 UNMASKED: ~dev-libs/icu-75.1 ~dev-libs/icu-layoutex-75.1 Requested by sam ~dev-lang/perl-5.40.0 ~virtual/perl-Archive-Tar-3.20.10_rc ~virtual/perl-CPAN-Meta-Requirements-2.143.0 ~virtual/perl-Compress-Raw-Bzip2-2.212.0 ~virtual/perl-DB_File-1.859.0 ~virtual/perl-Data-Dumper-2.189.0 ~virtual/perl-Devel-PPPort-3.720.0 ~virtual/perl-Exporter-5.780.0 ~virtual/perl-ExtUtils-CBuilder-0.280.240 ~virtual/perl-ExtUtils-Manifest-1.750.0 ~virtual/perl-File-Spec-3.900.0 ~virtual/perl-HTTP-Tiny-0.88.0 ~virtual/perl-IO-1.550.0 ~virtual/perl-IO-Compress-2.212.0 ~virtual/perl-IO-Socket-IP-0.420.0 ~virtual/perl-IO-Zlib-1.150.0 ~virtual/perl-Math-BigInt-2.3.2 ~virtual/perl-Math-BigInt-FastCalc-0.501.800 ~virtual/perl-Math-BigRat-2.3.2 ~virtual/perl-Module-CoreList-5.202.406.90 ~virtual/perl-Module-Metadata-1.0.38 ~virtual/perl-Pod-Simple-3.450.0 ~virtual/perl-Safe-2.460.0 ~virtual/perl-Socket-2.38.0 ~virtual/perl-Test-Harness-3.480.0 ~virtual/perl-Test-Simple-1.302.199 ~virtual/perl-Text-Tabs+Wrap-2024.1.0 ~virtual/perl-Time-HiRes-1.977.700 ~virtual/perl-Time-Local-1.350.0 ~virtual/perl-autodie-2.370.0 ~virtual/perl-bignum-0.670.0 ~virtual/perl-podlators-5.10.200_rc ~virtual/perl-threads-2.400.0 ~virtual/perl-threads-shared-1.690.0 ~virtual/perl-version-0.993.0 Requested by dilfridge and sam The attached etc.portage.tar.xz has all details. ------------------------------------------------------------------- GNUMAKEFLAGS="$GNUMAKEFLAGS --shuffle" gcc-config -l: [1] x86_64-pc-linux-gnu-14 * clang/llvm (if any): clang version 18.1.8 Target: x86_64-pc-linux-gnu Thread model: posix InstalledDir: /usr/lib/llvm/18/bin Configuration file: /etc/clang/x86_64-pc-linux-gnu-clang.cfg /usr/lib/llvm/18 18.1.8 Python 3.12.4 Available Ruby profiles: [1] ruby31 (with Rubygems) [2] ruby32 (with Rubygems) [3] ruby33 (with Rubygems) * Available Rust versions: [1] rust-bin-1.79.0 * The following VMs are available for generation-2: 1) Eclipse Temurin JDK 17.0.11_p9 [openjdk-bin-17] *) Eclipse Temurin JDK 21.0.3_p9 [openjdk-bin-21] 3) Eclipse Temurin JDK 8.412_p08 [openjdk-bin-8] Available Java Virtual Machines: [1] openjdk-bin-8 [2] openjdk-bin-17 [3] openjdk-bin-21 system-vm php cli (if any): go version go1.22.5 linux/amd64 HEAD of ::gentoo commit f67e1eed0bd81d732aaf91015af994a3e052e248 Author: Repository mirror & CI <repomirrorci@gentoo.org> Date: Mon Jul 15 09:19:12 2024 +0000 2024-07-15 09:19:12 UTC emerge -qpvO net-dns/nsd [ebuild N ] net-dns/nsd-4.10.0 USE="default-znow ipv6 largefile lto mmap nsec3 pie radix-tree simdzone ssl systemd tfo -bind8-stats -debug -dnstap -libevent -memclean -minimal-responses -munin -packed -ratelimit -recvmmsg -year2038"
Created attachment 897717 [details] emerge-info.txt
Created attachment 897718 [details] emerge-history.txt
Created attachment 897719 [details] environment
Created attachment 897720 [details] etc.clang.tar.xz
Created attachment 897721 [details] etc.portage.tar.xz
Created attachment 897722 [details] logs.tar.xz
Created attachment 897723 [details] net-dns:nsd-4.10.0:20240715-093408.log
Created attachment 897724 [details] qlist-info.txt.xz
Created attachment 897725 [details] temp.tar.xz
It looks like this is being caused by the tinderbox having "GNUMAKEFLAGS" include the "--shuffle" flag to make(1), which causes it to randomize the order of prerequisites around. That's causing the simdzone Makefile dependencies to be built out of their prescribed order, which leads to simdzone/include/zone/export.h not getting created by the Makefile before it's referenced during another portion of the build process. Is this something the tinderbox does automatically to find weird build failure modes? It does highlight the oddity of why is the simdzone subproject's build system seemingly doing a conditional generation of a one-line header file that might be better off just being a normal, preexisting file, but I also don't see any benefit to using --shuffle in this situation, either. I'll lodge a bug upstream to see if simply carrying include/zone/export.h is an option they'll consider, but if we have any documentation on how the tinderbox works, it might be worth making sure that its use of --shuffle is cited as a sort of build fuzzer. Cause it's not immediately apparent that make(1) was employing --shuffle and I was getting really confused why this particular build error was coming up, cause if simdzone's Makefile logic is processed in the normal, expected way, then it should always JustWork(TM).
The tinderbox intentionally use "--shuffle" since: commit 4251952fe98d782deaa012ae7dd0827ee40d8c1f Author: Toralf Förster <toralf.foerster@gmx.de> Date: Sun Aug 28 19:08:33 2022 +0200 prepare for slyfgox make shuffle patch In moment it is visible only in the attached emerge-info.txt. If this is not sufficient I can add it more prominent to comment0. But b/c such a request makes comment0 another 1 additional line bigger - maybe more devs might vote up for it?
(In reply to Toralf Förster from comment #11) > The tinderbox intentionally use "--shuffle" since: > > commit 4251952fe98d782deaa012ae7dd0827ee40d8c1f > Author: Toralf Förster <toralf.foerster@gmx.de> > Date: Sun Aug 28 19:08:33 2022 +0200 > > prepare for slyfgox make shuffle patch > > > In moment it is visible only in the attached emerge-info.txt. If this is not > sufficient I can add it more prominent to comment0. But b/c such a request > makes comment0 another 1 additional line bigger - maybe more devs might vote > up for it? Upstream has implemented a fix for this by changing the Makefile dependencies in the simdzone subproject's Makefile.in. It'll be released as part of an upcoming nsd-4.10.1 release, so I will wait for that before pushing any changes to the tree. As for making the actual failure mode more apparent, it might make sense to somehow flag failures that happen when --shuffle=<seed> is passed to make(1) via GNUMAKEFLAGS as an issue w/ make and parallelism, possibly even going as far as to auto-block Bug #351559 (parallel-make) on bug creation. I think that would provide more benefit to an individual developer than a few extra lines of text output in one of the comments. Another option to look at would be getting a "MAKE-PARALLELISM" keyword added to Bugzie, though I dunno people's thoughts on that. Keywords feel like a really under-utilized feature of Buzilla. It took me a good half-hour messing with the ebuild, trying different USE and FEATURE flags to reproduce the failure, and I was about to post an entirely different comment when I just happened to see the "shuffle=2635539989" bit in the error (I should've caught that first, TBH). That sent me down another rabbit hole for a bit to figure out A) what it was (hadn't seen that flag to make before) and B) how to test it locally. Once I got that right and reproduced the failure, then I submitted comment #10 and went on to work on an upstream bug.
(In reply to Toralf Förster from comment #11) > The tinderbox intentionally use "--shuffle" since: > > commit 4251952fe98d782deaa012ae7dd0827ee40d8c1f > Author: Toralf Förster <toralf.foerster@gmx.de> > Date: Sun Aug 28 19:08:33 2022 +0200 > > prepare for slyfgox make shuffle patch > > > In moment it is visible only in the attached emerge-info.txt. If this is not > sufficient I can add it more prominent to comment0. But b/c such a request > makes comment0 another 1 additional line bigger - maybe more devs might vote > up for it? Maybe let's add a new section like "UNMASKED" for "SPECIAL CONFIG", and then in that, say "if this looks like a parallel build issue, block ..., and try use MAKEOPTS="--seed=..." if there is a seed in the emerge --info".
I can move this section 2 lines higher: The attached etc.portage.tar.xz has all details. ------------------------------------------------------------------- GNUMAKEFLAGS="$GNUMAKEFLAGS --shuffle" but please note that the information ^^ is already in comment0.
Let see how https://github.com/toralf/tinderbox/commit/7843aad1e20c39820db8c0ab4e70351fe0e42eb7 works.
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9bdd082a7cd14d3af5a7f0e5438e224d88e10fbb commit 9bdd082a7cd14d3af5a7f0e5438e224d88e10fbb Author: Joshua Kinard <kumba@gentoo.org> AuthorDate: 2024-08-04 10:13:04 +0000 Commit: Joshua Kinard <kumba@gentoo.org> CommitDate: 2024-08-04 10:15:21 +0000 net-dns/nsd: Cleanups, add 4.10.1 Clean out older ebuilds and files in FILESDIR and add a new ebuild for recently released 4.10.1, which includes fixes for parallelism in the simdzone Makefile and OpenRC init/conf files sent to upstream by @mjo. Closes: https://bugs.gentoo.org/936119 Bug: https://bugs.gentoo.org/927552 Co-authored-by: Michael Orlitzky <mjo@gentoo.org> Signed-off-by: Joshua Kinard <kumba@gentoo.org> net-dns/nsd/Manifest | 3 +- .../nsd/files/nsd-4.8.0-implausible-stats.patch | 22 ---- net-dns/nsd/files/nsd.initd-r1 | 59 ---------- net-dns/nsd/files/nsd.service | 14 --- net-dns/nsd/metadata.xml | 9 +- .../nsd/{nsd-4.10.0.ebuild => nsd-4.10.1.ebuild} | 12 +- net-dns/nsd/nsd-4.8.0-r1.ebuild | 128 --------------------- net-dns/nsd/nsd-4.9.1.ebuild | 4 +- net-dns/nsd/nsd-9999.ebuild | 12 +- 9 files changed, 20 insertions(+), 243 deletions(-)