tag 479698 - help clone 479698 -1 reassign -1 libperlio-via-dynamic-perl 0.12-1 severity -1 wishlist retitle -1 workaround for memory corruption with Perl 5.10.0 tag -1 patch forwarded -1 http://rt.cpan.org/Public/Bug/Display.html?id=36260 submitter -1 ! thanks
On Tue, May 27, 2008 at 10:16:31PM +0300, Niko Tyni wrote: > On Tue, May 06, 2008 at 09:52:26AM +0200, Bastian Blank wrote: > > Package: perl > > Version: 5.10.0-9 > > Severity: important > > > > Several tests of the svk package fails reproducible with several different > > glibc internal "free" checks like "invalid pointer" or "corrupted > > double-linked > > list". Many of the calls seems to go through swig, so maybe this problem is > > located there. > > > Maybe the following messages are connected: > > | Attempt to free unreferenced scalar: SV 0x2083d30, Perl interpreter: > > 0x602010 at > > /home/bastian/debian/perl/svk/trunk/blib/lib/SVK/Command/Commit.pm line 555. > > FWIW, these messages are triggered by libperlio-via-dynamic-perl > and show up in its test suite too. I looked into them a bit and just reported > > http://rt.perl.org/rt3/Public/Bug/Display.html?id=54934 > > but I'm quite sure that's not going to solve the real problem. The memory corruption is very much related. The attached patch to PerlIO::via::dynamic works around it and makes the whole svk test suite pass for me. I'll try to come up with a minimal test case for the segfaults and report it as another Perl bug. I just sent this upstream as [rt.cpan.org #36260]. Bastian, you may want to apply the workaround to libperlio-via-dynamic-perl for now. Cloning, but feel free to close if you prefer to wait for Perl to get fixed. -- Niko Tyni [EMAIL PROTECTED]
>From 638dc8228c79519a2c410b5fcd8c149412f2fc0b Mon Sep 17 00:00:00 2001 From: Niko Tyni <[EMAIL PROTECTED]> Date: Thu, 29 May 2008 09:27:04 +0300 Subject: [PATCH] perl 5.10.0 workaround --- dynamic.pm | 4 +--- 1 files changed, 1 insertions(+), 3 deletions(-) diff --git a/dynamic.pm b/dynamic.pm index 3f0fdc1..10f517b 100644 --- a/dynamic.pm +++ b/dynamic.pm @@ -165,10 +165,8 @@ sub DESTROY { for my $sym (keys %{$ref.'::'}) { undef ${$ref.'::'}{$sym} - if $sym; + if $sym and $sym !~ /GEN/; } - - delete $PerlIO::via::{$leaf}; } =head1 AUTHORS -- 1.5.5.1