Bug#912900: perl: Storable stack recursion limit probe in 5.28 seems overly sensitive

Niko Tyni ntyni at debian.org
Fri Nov 9 19:23:57 GMT 2018


Control: clone -1 -2
Control: retitle -2 perl: needs to Break older apt-show-versions versions

On Sun, Nov 04, 2018 at 09:23:15PM +0200, Niko Tyni wrote:
> Package: perl
> Version: 5.28.0-3
> Severity: important
> Tags: upstream
> 
>   % perl -MStorable=nstore -e '$h->{$i}{a}{b}{c} = 0 while $i++<10000; nstore($h, "testfile")'
>   Max. recursion depth with nested structures exceeded at /usr/lib/x86_64-linux-gnu/perl/5.28/Storable.pm line 278, at -e line 1.
> 
> The documentation states
> 
>   Since Storable 3.05 we probe for the stack recursion limit for
>   references, arrays and hashes to a maximal depth of ~1200-35000,
>   otherwise we might fall into a stack-overflow.
> 
> but there's no recursion involved here, so it looks like the probe
> heuristic is not quite working?
> 
> This broke apt-show-versions (#912695) and is sort of a regression,
> not quite sure if we should consider it release critical or not.

As Christoph Martin pointed out in 
  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=912695#43
it doesn't seem right that the limits differ between architectures
and are determined by the build hosts.

In any case, apt-show-versions 0.22.9 worked around this by raising the
Storable limits inside the script. There's some indication in the bug
that the limits are still too low, so things may still change.

We should add a Breaks on the perl side at least temporarily to unbreak
partial upgrades where perl is upgraded but apt-show-versions isn't.
Cloning a separate bug about that.
-- 
Niko




More information about the Perl-maintainers mailing list