Am 04.11.18 um 20:43 schrieb Niko Tyni:
> On Sun, Nov 04, 2018 at 06:09:36PM +0100, Salvatore Bonaccorso wrote:
>  
>> This is likely due to the perl upstream change around/with
>> https://perl5.git.perl.org/perl.git/commitdiff/c0e3b4b51cabf15ed8fc5f564dfeea31c25f5239
>> .
>>
>> It can be workarounded by either setting higher limits for
>> recursion_limit/recursion_limit_hash or disable it with -1
>>
>> $Storable::recursion_limit=-1;
>> $Storable::recursion_limit_hash=-1;
>>
>> but I'm not sure this will be the right solution.
> 
> Thanks. I've filed #912900 about this on the Perl side. Christoph:
> please use these workarounds at least for now. Apologies for the trouble.
> 
> Also, please let us know at p...@packages.debian.org when a workaround
> is in Debian. We can then add dependency metadata on the perl side to
> make sure apt-show-versions gets always upgraded before perl.

I had a look into the Storable/Limit.pm files in the different Debian
architectures:

> /tmp/usr/lib/aarch64-linux-gnu/perl/5.28.0/Storable/Limit.pm:$Storable::recursion_limit_hash
>  = 7236
> /tmp/usr/lib/arm-linux-gnueabi/perl/5.28.0/Storable/Limit.pm:$Storable::recursion_limit_hash
>  = 13458
> /tmp/usr/lib/arm-linux-gnueabihf/perl/5.28.0/Storable/Limit.pm:$Storable::recursion_limit_hash
>  = 12991
> /tmp/usr/lib/i386-gnu/perl/5.28.0/Storable/Limit.pm:$Storable::recursion_limit_hash
>  = 10466
> /tmp/usr/lib/i386-kfreebsd-gnu/perl/5.28.0/Storable/Limit.pm:$Storable::recursion_limit_hash
>  = 10464
> /tmp/usr/lib/i386-linux-gnu/perl/5.28.0/Storable/Limit.pm:$Storable::recursion_limit_hash
>  = 10462
> /tmp/usr/lib/mips-linux-gnu/perl/5.28.0/Storable/Limit.pm:$Storable::recursion_limit_hash
>  = 8756
> /tmp/usr/lib/mips64el-linux-gnuabi64/perl/5.28.0/Storable/Limit.pm:$Storable::recursion_limit_hash
>  = 6718
> /tmp/usr/lib/mipsel-linux-gnu/perl/5.28.0/Storable/Limit.pm:$Storable::recursion_limit_hash
>  = 8750
> /tmp/usr/lib/powerpc64le-linux-gnu/perl/5.28.0/Storable/Limit.pm:$Storable::recursion_limit_hash
>  = 5061
> /tmp/usr/lib/s390x-linux-gnu/perl/5.28.0/Storable/Limit.pm:$Storable::recursion_limit_hash
>  = 4039
> /tmp/usr/lib/x86_64-kfreebsd-gnu/perl/5.28.0/Storable/Limit.pm:$Storable::recursion_limit_hash
>  = 8557
> /tmp/usr/lib/x86_64-linux-gnu/perl/5.28.0/Storable/Limit.pm:$Storable::recursion_limit_hash
>  = 8552

The limits were calculated on build time. So they are different on each
architecture. I don't think this is the correct approach.

For apt-show-version I experimented with different values of and
succeded with the following:

$Storable::recursion_limit_hash = 65536;

> Longer term, I'm not sure Storable is the best tool for this (a cache
> of apt list contents.) AFAICS you're reading the whole data structure
> in memory even when you need just one entry? You might want to look at
> the various Cache / CHI modules, or even just plain GDBM_File.

apt-show-versions needs more optimizations and enhancements. Patches are
welcome.

Christoph

-- 
============================================================================
Christoph Martin, Leiter Unix-Systeme
Zentrum für Datenverarbeitung, Uni-Mainz, Germany
 Anselm Franz von Bentzel-Weg 12, 55128 Mainz
 Telefon: +49(6131)3926337
 Instant-Messaging: Jabber/XMPP: mar...@jabber.uni-mainz.de


Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to