Re: Bug report: Memory leak with LWP::UserAgent/HTTP::Request under RH Linux 6.1/7
Gisle Aas (gisle@activestate.com)
10 Apr 2001 10:49:26 -0700
Gisle Aas <gisle@ActiveState.com> writes:
> "Curt Powell" <curt.powell@sierraridge.com> writes:
>
> > I have encountered a memory leak under RedHat Linux (versions 6.1 and 7),
> > Perl 5.005 and 5.6. It occurs with multiple calls to LWP::UserAgent and
> > HTTP::Request. Following is a short script that demonstrates the problem.
> > On RH7 it shows memory deltas of 8k every 10 or so iterations after the
> > first iteration. The amount leaked doesn't seem to be related to the size
> > of the page downloaded. Is it possible that I am not doing the call
> > sequence correctly?
>
> Seems good enough to me. I also see memory leaking here.
> I'll try to investigate.
Did you use HTML-Parser 3.20 for your test?
The memory leak went away for me when I downgraded to HTML-Parser 3.19.
Regards,
Gisle
> > #!/usr/bin/perl
> > #usage: ./memtest <url> e.g. ./memtest http://www.sierraridge.com
> >
> > sub geturl()
> > {
> > use LWP::UserAgent;
> > use HTTP::Request;
> > my $URL = shift;
> > my $UA = LWP::UserAgent->new();
> > my $Request = HTTP::Request->new(GET => $URL);
> > my $Response = $UA->request($Request);
> > print "Error retrieving $URL\n" if ($Response->is_error());
> > return $Response->as_string;
> > }
> >
> > sub memused
> > {
> > local *memused_TMP_FILE;
> > open(memused_TMP_FILE, "</proc/$$/stat");
> > my $a = <memused_TMP_FILE>;
> > close memused_TMP_FILE;
> > my @b = split(' ', $a);
> > return $b[22];
> > }
> >
> > $url = shift ARGV;
> > $lastused = &memused();
> > for ($i=0; $i<=100; ++$i)
> > {
> > $length = length(&geturl($url));
> > $used = &memused;
> > $delta = $used - $lastused;
> > print "$i: response length: $length memory used: $used memory change:
> > $delta\n";
> > $lastused = $used;
> > }