Bug#893472: libfurl-perl: broken on s390x?

Niko Tyni ntyni at debian.org
Mon Mar 19 19:35:03 UTC 2018


On Mon, Mar 19, 2018 at 01:03:12AM -0700, Steve Langasek wrote:
> Source: libfurl-perl
> Version: 3.13-1
> Severity: grave
> User: ubuntu-devel at lists.ubuntu.com
> Usertags: origin-ubuntu bionic autopkgtest

> t/100_low/13_deflate.t .......................... 
> # normal 1 gzip
> Uncompress error: data error at /usr/share/perl5/Furl/HTTP.pm line 845.

> From what I'm able to tell, this test failure points to the library actually
> being broken on s390x, as it fails to decompress data sent back by the
> test server which is implemented using libplack-middleware-deflater-perl.
> But it's also possible that it's libplack-middleware-deflater-perl which is
> broken on s390x, in which case this bug should be certainly reassigned.

Thanks for the report. Testing on zelenka.d.o, I see the same behaviour.

I suspect the real culprit is libplack-middleware-deflater-perl; it uses
pack() in suspicious ways that might break on big vs. little endian.
Its own t/furl.t is failing similarly, but gets skipped on Debian
build+autopkgtest because libfurl-perl is not a build dependency of
libplack-middleware-deflater-perl (possibly due to build cycle reasons.)

I got as far as seeing that removing line 144 in Deflater.pm

 https://sources.debian.org/src/libplack-middleware-deflater-perl/0.12-1/lib/Plack/Middleware/Deflater.pm/#L144

-       $buf .= pack("LL", $self->{crc},$self->{length}) if $self->{encoding} eq 'gzip';

makes both test suites pass, but that doesn't seem like a fully
satisfactory patch. (And no, s/LL/NN/ doesn't fix it.)

There's some probably related upstream discussion in

 https://github.com/miyagawa/Plack-Middleware-Deflater/issues/11

 https://github.com/miyagawa/Plack-Middleware-Deflater/commit/02db7d339af94c9013a81f17189fccf082cfe3a9

No tuits to actually dig into gzip streams at least tonight...
-- 
Niko Tyni   ntyni at debian.org



More information about the pkg-perl-maintainers mailing list