develooper Front page | perl.perl5.porters | Postings from May 2009

[perl #66110] Perl debugger runs out of memory, hangs or segfaults on XML::Parser::Lite

Thread Next
From:
Bram via RT
Date:
May 30, 2009 00:51
Subject:
[perl #66110] Perl debugger runs out of memory, hangs or segfaults on XML::Parser::Lite
Message ID:
rt-3.6.HEAD-13988-1243636191-1903.66110-15-0@perl.org
On Thu May 28 08:14:52 2009, nicholas wrote:
> Avar mailed p5p in
> 51dd1af80807190107h30b8626ct6d4d0a825abe4b3b@mail.gmail.com
> http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-
> 07/msg00382.html
> 
> perl 5.10 and blead will do various combinations of running of of
> memory, hanging or segfaulting when running on a program using
> XML::Parser::Lite, attached is a stripped down version of X::P::L
> which demonstrates the problem:
> 
> 
> Dave notes:
> 
> possibly a 5.10.0 regression



Change 1: Leaking memory when run interactive in the debugger.
When the PERLDB_OPTS is set to NonStop=1 then it does not seem to leak


----Program----
#!/usr/bin/perl -l



$ENV{PERL_SIGNALS} = "unsafe";

my $parent = $$;

my $pid = fork();

if ($pid) {
        exec("$^X -d /tmp/rt-66110.pl");
}
else {
        sleep 3;
        system("kill -9 $parent");
        exit 0;
}


----Output of .../pXYMq0N/perl-5.9.1@23371/bin/perl----

----EOF ($?='0')----
----Output of .../pFt3hxR/perl-5.9.1@23372/bin/perl----

----EOF ($?='9')----
Need a perl between 23371 and 23372

http://public.activestate.com/cgi-bin/perlbrowse/p/23372
Change 23372 by rgs@valis on 2004/10/15 14:09:54

	Implement a new -dt command-line flag, to enable threads under 
the
	debugger (bug #31666).
	
	Subject: RE: [PATCH] debugger handles threads [perl #31666]
	From: <richard.foley@ubs.com>
	Date: Wed, 13 Oct 2004 13:01:18 +0200
	Message-ID: 
<B374141B0A424D4F9CF143CC51B3ADD903FB9E12@NZURC900PEX1.ubsgs.ubsgroup.net>
	
	Subject: Re: [PATCH] debugger handles threads [perl #31666]
	From: Yitzchak Scott-Thoennes <sthoenna@efn.org>
	Date: Wed, 13 Oct 2004 02:49:58 -0700
	Message-ID: <20041013094957.GA17184@efn.org>



$ perl-p-5.9.1\@23371/perl -d /tmp/rt-66110.pl

Loading DB routines from perl5db.pl version 1.27
Editor support available.

Enter h or `h h' for help, or `man perldebug' for more help.

main::(/tmp/rt-66110.pl:71):    setHandlers();
  DB<1> r
Debugged program terminated.  Use q to quit or R to restart,
  use O inhibit_exit to avoid stopping after program termination,
  h q, h R or h O to get additional info.
  DB<1> q


$ perl-p-5.9.1\@23372/perl -d /tmp/rt-66110.pl

Loading DB routines from perl5db.pl version 1.28
Editor support available.

Enter h or `h h' for help, or `man perldebug' for more help.

main::(/tmp/rt-66110.pl:71):    setHandlers();
  DB<1> r


=> Keeps running (100% CPU) and starts leaking memory

(Small note: /tmp/rt-66110.pl does not contain a shebang line)



Change 2: Segmentation fault (but not always)

(Small note: /tmp/rt-66110.pl contains the shebang #!/usr/bin/perl -d)


$ PERLDB_OPTS="NonStop=1" perl-p-5.9.2@26537/perl /tmp/rt-66110.pl # 
returns immediatly
$ perl-p-5.9.2@26537/perl /tmp/rt-66110.pl # loops forever

$ PERLDB_OPTS="NonStop=1" perl-p-5.9.2@26539/perl /tmp/rt-66110.pl
Segmentation fault
$ perl-p-5.9.2@26539/perl /tmp/rt-66110.pl
Segmentation fault

http://public.activestate.com/cgi-bin/perlbrowse/p/26538
Change 26538 by nicholas@entropy on 2005/12/30 14:57:00

	In the shared string table, if we add new entries to the head 
of the
	linked list chain, then we don't need as much bookkeeping in 
the loop.


Not sure if this last change is really the cause of the segmentation 
fault or just a side effect.. the segfault seems very sensitive to 
changes in the script so it probably isn't...



Best regards,

Bram


Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About