MaxMind-DB-Writer-perl
MaxMind-DB-Writer-perl copied to clipboard
FTBFS: test failures on some architectures
We have the following bug reported to the Debian package of MaxMind-DB-Writer, c.f. https://bugs.debian.org/968362
It doesn't seem to be a bug in the packaging, so you may want to take a look. Thanks!
------8<-----------8<-----------8<-----------8<-----------8<-----
Source: libmaxmind-db-writer-perl
Version: 0.300003-1
Severity: serious
Tags: upstream ftbfs
Justification: fails to build from source (but built successfully in the past)
libmaxmind-db-writer-perl never built on all architectures:
https://buildd.debian.org/status/logs.php?pkg=libmaxmind-db-writer-perl
The history of the uploads goes like this:
0.300003-1: testsuite disabled
Result: successful build on all architectures where all build dependencies
are available (esp. libmath-int128-perl is missing on quite a few).
0.300003-2: testsuite enabled but tests needing Test::HexDifferences
skipped (as it was not yet packaged)
Result: additional failures in the tests on ppc64, s390x, sparc64
As (only) s390x is a release architecture, the package never migrated
to testing.
0.300003-3: all tests are run after libtest-hexdifferences entered
the archive.
Result: same as for 0.300003-2
Logs of the failures (for 0.300003-3):
ppc64:
https://buildd.debian.org/status/fetch.php?pkg=libmaxmind-db-writer-perl&arch=ppc64&ver=0.300003-3&stamp=1596597051&raw=0
sparc64:
https://buildd.debian.org/status/fetch.php?pkg=libmaxmind-db-writer-perl&arch=sparc64&ver=0.300003-3&stamp=1596597463&raw=0
s390x:
https://buildd.debian.org/status/fetch.php?pkg=libmaxmind-db-writer-perl&arch=s390x&ver=0.300003-3&stamp=1596578449&raw=0
The failing tests are always the same, quoting from the s390x log:
Sereal: Error: Bad Sereal header: Not a valid Sereal document. at offset 1 of input at srl_decoder.c line 600 at /<<PKGBUILDDIR>>/blib/lib/MaxMind/DB/Writer/Tree.pm line 403.
t/MaxMind/DB/Writer/Tree-freeze-thaw.t .....................
1..0
not ok 1 - No tests run for subtest "Tree with 256 networks - IPv4 only - 24-bit records"
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/1 subtests
[â¦]
Sereal: Error: Bad Sereal header: Not a valid Sereal document. at offset 1 of input at srl_decoder.c line 600 at /<<PKGBUILDDIR>>/blib/lib/MaxMind/DB/Writer/Tree.pm line 403.
t/MaxMind/DB/Writer/Tree-output/freeze-thaw-record-size.t ..
Dubious, test returned 255 (wstat 65280, 0xff00)
No subtests run
[â¦]
Sereal: Error: Bad Sereal header: Not a valid Sereal document. at offset 1 of input at srl_decoder.c line 600 at /<<PKGBUILDDIR>>/blib/lib/MaxMind/DB/Writer/Tree.pm line 403.
t/MaxMind/DB/Writer/Tree-record-collisions.t ...............
[â¦]
Dubious, test returned 255 (wstat 65280, 0xff00)
All 21 subtests passed
[â¦]
# Failed test 'Run without exceptions'
# at t/MaxMind/DB/Writer/Tree-thaw-merge.t line 86.
# Sereal: Error: Bad Sereal header: Not a valid Sereal document. at offset 1 of input at srl_decoder.c line 600 at /<<PKGBUILDDIR>>/blib/lib/MaxMind/DB/Writer/Tree.pm line 403.
# Looks like you failed 1 test of 1.
# Failed test 'Run without exceptions'
# at t/MaxMind/DB/Writer/Tree-thaw-merge.t line 86.
# Sereal: Error: Bad Sereal header: Not a valid Sereal document. at offset 1 of input at srl_decoder.c line 600 at /<<PKGBUILDDIR>>/blib/lib/MaxMind/DB/Writer/Tree.pm line 403.
# Looks like you failed 1 test of 1.
# Failed test 'Run without exceptions'
# at t/MaxMind/DB/Writer/Tree-thaw-merge.t line 86.
# Sereal: Error: Bad Sereal header: Not a valid Sereal document. at offset 1 of input at srl_decoder.c line 600 at /<<PKGBUILDDIR>>/blib/lib/MaxMind/DB/Writer/Tree.pm line 403.
# Looks like you failed 1 test of 1.
# Failed test 'Run without exceptions'
# at t/MaxMind/DB/Writer/Tree-thaw-merge.t line 86.
# Sereal: Error: Bad Sereal header: Not a valid Sereal document. at offset 1 of input at srl_decoder.c line 600 at /<<PKGBUILDDIR>>/blib/lib/MaxMind/DB/Writer/Tree.pm line 403.
# Looks like you failed 1 test of 1.
# Failed test 'Run without exceptions'
# at t/MaxMind/DB/Writer/Tree-thaw-merge.t line 86.
# Sereal: Error: Bad Sereal header: Not a valid Sereal document. at offset 1 of input at srl_decoder.c line 600 at /<<PKGBUILDDIR>>/blib/lib/MaxMind/DB/Writer/Tree.pm line 403.
# Looks like you failed 1 test of 1.
# Failed test 'Run without exceptions'
# at t/MaxMind/DB/Writer/Tree-thaw-merge.t line 86.
# Sereal: Error: Bad Sereal header: Not a valid Sereal document. at offset 1 of input at srl_decoder.c line 600 at /<<PKGBUILDDIR>>/blib/lib/MaxMind/DB/Writer/Tree.pm line 403.
# Looks like you failed 1 test of 1.
# Failed test 'Run without exceptions'
# at t/MaxMind/DB/Writer/Tree-thaw-merge.t line 86.
# Sereal: Error: Bad Sereal header: Not a valid Sereal document. at offset 1 of input at srl_decoder.c line 600 at /<<PKGBUILDDIR>>/blib/lib/MaxMind/DB/Writer/Tree.pm line 403.
# Looks like you failed 1 test of 1.
# Failed test 'Run without exceptions'
# at t/MaxMind/DB/Writer/Tree-thaw-merge.t line 86.
# Sereal: Error: Bad Sereal header: Not a valid Sereal document. at offset 1 of input at srl_decoder.c line 600 at /<<PKGBUILDDIR>>/blib/lib/MaxMind/DB/Writer/Tree.pm line 403.
# Looks like you failed 1 test of 1.
# Failed test 'Run without exceptions'
# at t/MaxMind/DB/Writer/Tree-thaw-merge.t line 86.
# Sereal: Error: Bad Sereal header: Not a valid Sereal document. at offset 1 of input at srl_decoder.c line 600 at /<<PKGBUILDDIR>>/blib/lib/MaxMind/DB/Writer/Tree.pm line 403.
# Looks like you failed 1 test of 1.
# Failed test 'Run without exceptions'
# at t/MaxMind/DB/Writer/Tree-thaw-merge.t line 86.
# Sereal: Error: Bad Sereal header: Not a valid Sereal document. at offset 1 of input at srl_decoder.c line 600 at /<<PKGBUILDDIR>>/blib/lib/MaxMind/DB/Writer/Tree.pm line 403.
# Looks like you failed 1 test of 1.
# Failed test 'Run without exceptions'
# at t/MaxMind/DB/Writer/Tree-thaw-merge.t line 86.
# Sereal: Error: Bad Sereal header: Not a valid Sereal document. at offset 1 of input at srl_decoder.c line 600 at /<<PKGBUILDDIR>>/blib/lib/MaxMind/DB/Writer/Tree.pm line 403.
# Looks like you failed 1 test of 1.
# Failed test 'Run without exceptions'
# at t/MaxMind/DB/Writer/Tree-thaw-merge.t line 86.
# Sereal: Error: Bad Sereal header: Not a valid Sereal document. at offset 1 of input at srl_decoder.c line 600 at /<<PKGBUILDDIR>>/blib/lib/MaxMind/DB/Writer/Tree.pm line 403.
# Looks like you failed 1 test of 1.
# Failed test 'Run without exceptions'
# at t/MaxMind/DB/Writer/Tree-thaw-merge.t line 86.
# Sereal: Error: Bad Sereal header: Not a valid Sereal document. at offset 1 of input at srl_decoder.c line 600 at /<<PKGBUILDDIR>>/blib/lib/MaxMind/DB/Writer/Tree.pm line 403.
# Looks like you failed 1 test of 1.
# Failed test 'Run without exceptions'
# at t/MaxMind/DB/Writer/Tree-thaw-merge.t line 86.
# Sereal: Error: Bad Sereal header: Not a valid Sereal document. at offset 1 of input at srl_decoder.c line 600 at /<<PKGBUILDDIR>>/blib/lib/MaxMind/DB/Writer/Tree.pm line 403.
# Looks like you failed 1 test of 1.
t/MaxMind/DB/Writer/Tree-thaw-merge.t ......................
not ok 1 - Run without exceptions
1..1
not ok 1 - check defaults work
not ok 1 - Run without exceptions
1..1
not ok 2 - check no merging explictly
not ok 1 - Run without exceptions
1..1
not ok 3 - check no merging and none explictly
not ok 1 - Run without exceptions
1..1
not ok 4 - set mrc in constructor, toplevel in thaw
not ok 1 - Run without exceptions
1..1
not ok 5 - set toplevel in constructor
not ok 1 - Run without exceptions
1..1
not ok 6 - set recurse in constructor
not ok 1 - Run without exceptions
1..1
not ok 7 - set mrc only in constructor
not ok 1 - Run without exceptions
1..1
not ok 8 - set toplevel only in constructor
not ok 1 - Run without exceptions
1..1
not ok 9 - set recurse only in constructor
not ok 1 - Run without exceptions
1..1
not ok 10 - set toplevel only in thaw
not ok 1 - Run without exceptions
1..1
not ok 11 - set mrc off in constructor, toplevel in thaw
not ok 1 - Run without exceptions
1..1
not ok 12 - set none in constructor, toplevel only in thaw
not ok 1 - Run without exceptions
1..1
not ok 13 - set recurse only in thaw
not ok 1 - Run without exceptions
1..1
not ok 14 - set mrc off in constructor, recurse in thaw
ok 15 - no (unexpected) warnings (via done_testing)
1..15
Dubious, test returned 14 (wstat 3584, 0xe00)
Failed 14/15 subtests
[â¦]
Test Summary Report
-------------------
t/MaxMind/DB/Writer/Tree-freeze-thaw.t (Wstat: 65280 Tests: 1 Failed: 1)
Failed test: 1
Non-zero exit status: 255
Parse errors: No plan found in TAP output
t/MaxMind/DB/Writer/Tree-output/freeze-thaw-record-size.t (Wstat: 65280 Tests: 0 Failed: 0)
Non-zero exit status: 255
Parse errors: No plan found in TAP output
t/MaxMind/DB/Writer/Tree-record-collisions.t (Wstat: 65280 Tests: 21 Failed: 0)
Non-zero exit status: 255
Parse errors: No plan found in TAP output
t/MaxMind/DB/Writer/Tree-thaw-merge.t (Wstat: 3584 Tests: 15 Failed: 14)
Failed tests: 1-14
Non-zero exit status: 14
Files=39, Tests=446, 16 wallclock secs ( 0.19 usr 0.02 sys + 9.19 cusr 0.52 csys = 9.92 CPU)
Result: FAIL
Failed 4/39 test programs. 15/446 subtests failed.
So basically always the same:
Sereal: Error: Bad Sereal header: Not a valid Sereal document. at offset 1 of input at srl_decoder.c line 600 at /<<PKGBUILDDIR>>/blib/lib/MaxMind/DB/Writer/Tree.pm line 403.
The tests were run with libsereal-{de,}encoder-perl 4.018+ds-1, srl_decoder.c
is in libsereal-decoder-perl.
Cheers,
gregor
------8<-----------8<-----------8<-----------8<-----------8<-----
Thanks for considering, gregor herrmann, Debian Perl Group
I believe these are all big endian architectures. Do you happen to know if it is failing on all big endian architectures that Debian supports?
One thing that I am confused by is 0.300003-1 seems to have built on most of these architectures but 0.300003-3 doesn't. Are you sure it isn't a packaging issue or something in the build environment that has changed?
On Thu, 13 Aug 2020 08:25:59 -0700, Gregory Oschwald wrote:
I believe these are all big endian architectures. Do you happen to know if it is failing on all big endian architectures that Debian supports?
According to https://wiki.debian.org/ArchitectureSpecificsMemo the big-endian architectures are avr32 hppa m68k mips mips64 mipsn32 powerpc ppc64 s390 s390x sparc sparc64.
Not all of them have build daemons or are {still,already} alive but from the existing ones we see at https://buildd.debian.org/status/package.php?p=libmaxmind-db-writer-perl
hppa: no libmath-int128-perl m68k: no libmath-int128-perl powerpc: no libmath-int128-perl ppc64: failure s390x: failure sparc64: failure
So yeah, this indeed looks like a BE issue, at least there is no successful test on any big-endian machine.
Cheers, gregor
--
.''. https://info.comodo.priv.at -- Debian Developer https://www.debian.org : :' : OpenPGP fingerprint D1E1 316E 93A7 60A8 104D 85FA BB3A 6801 8649 AA06 . ' Member VIBE!AT & SPI Inc. -- Supporter Free Software Foundation Europe - NP: David Bowie: Modern Love
On Thu, 13 Aug 2020 08:34:11 -0700, Gregory Oschwald wrote:
One thing that I am confused by is 0.300003-1 seems to have built on most of these architectures but 0.300003-3 doesn't.
0.300003-1 has built because the testsuite was disabled for this upload. [0]
Are you sure it isn't a packaging issue or something in the build environment that has changed?
I'm sure the change was that I have removed the test disabling :)
Cheers, gregor
[0] If you look at https://buildd.debian.org/status/fetch.php?pkg=libmaxmind-db-writer-perl&arch=s390x&ver=0.300003-1&stamp=1594592481&raw=0
you see:
debian/rules override_dh_auto_test
make[1]: Entering directory '/<<PKGBUILDDIR>>'
true
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
and no test harness output whatsoever
--
.''. https://info.comodo.priv.at -- Debian Developer https://www.debian.org : :' : OpenPGP fingerprint D1E1 316E 93A7 60A8 104D 85FA BB3A 6801 8649 AA06 . ' Member VIBE!AT & SPI Inc. -- Supporter Free Software Foundation Europe - NP: David Bowie: Modern Love
Thanks for explaining that. It sounds like there might be a bug in the freeze/thaw code on big endian architectures.
Hi,
I just wanted to ask if you got a chance to look into this issue? (All Debian build logs at https://buildd.debian.org/status/logs.php?pkg=libmaxmind-db-writer-perl )
Cheers, gregor
We haven't had a chance to look at it too closely besides identifying it as likely an issue on big endian architectures. Unfortunately, we don't have easy access to big endian hardware. I suppose it may be possible to replicate the issue using QEMU.
Most of our future development is going into the Go mmdbwriter library, which should be a full replacement. Is the Perl writer a dependency of something in Debian? I glanced at the package page and it wasn't obvious to me.
Thanks for the quick reply!
I guess we can live with the situation where it's not available for BE architectures; as for the question why it was packaged originally, maybe @FedericoCeratto can answer. (Technically it's indeed not a dependency of another package right now.)
We are deprecating this library and archiving the repo. As mentioned above, we have a Go library for writing MMDB files that is being actively maintained.