Bug#922168: debian-handbook: FTBFS randomly (dh-strip-nondeterminism fails to handle a PNG file)
Chris Lamb
lamby at debian.org
Tue Feb 12 22:46:53 GMT 2019
tags 922168 + patch
thanks
Hi Santiago,
> > Glancing very quickly at this package, I suspect the PNG is
> > generated correctly (otherwise the PNG handler would typically not
> > be called), but then strip-nondeterminism's parallel executation is
> > choking at the hardlinks that rdfind(1) creates in debian/rules.
> >
> > If that sounds sensible, please feel free to reassign to dh-strip-
> > nondeterminism (and add an affects to taste).
>
> Yes, I think it makes sense. Incidentally, I'm currently using
> machines with one core and machines with two cores, but this package
> only failed to build for me on the machines having two cores.
I've got a hacky testcase locally that confirms this. Does this make
sense as a patch, perhaps?
diff --git a/bin/dh_strip_nondeterminism b/bin/dh_strip_nondeterminism
index 5c82b16..6f7d693 100755
--- a/bin/dh_strip_nondeterminism
+++ b/bin/dh_strip_nondeterminism
@@ -45,7 +45,7 @@ things to exclude.
init();
-my @nondeterministic_files;
+my (@nondeterministic_files, %seen);
sub testfile {
return if -l $_ or -d $_; # Skip directories and symlinks always.
@@ -57,6 +57,11 @@ sub testfile {
return if ($fn=~m/\Q$f\E/);
}
+ # Deduplicate hardlinks to avoid issues under parallelism
+ my ($dev, $inode, undef, $nlink) = stat($_);
+ return if defined $nlink && $nlink > 1 && $seen{"$inode.$dev"};
+ $seen{"$inode.$dev"} = 1;
+
my $normalizer = File::StripNondeterminism::get_normalizer_for_file($_);
if ($normalizer) {
push @nondeterministic_files, [$fn, $normalizer];
Regards,
--
,''`.
: :' : Chris Lamb
`. `'` lamby at debian.org 🍥 chris-lamb.co.uk
`-
More information about the Reproducible-builds
mailing list