Big-O memory hole when parsing WSDL
Status: Beta
Brought to you by:
kutterma
The following loop exposes a large memory hole:
<pre>
for (1..3) {
my $parser = SOAP::WSDL::Expat::WSDLParser->new();
$count = Devel::Leak::NoteSV($table);
print "SV: $count \n";
$parser->parse_string($xml);
undef $parser;
}
</pre>
The following holes seem to exists:
- upward (circular) reference in SOAP::WSDL::Base
- some stuff in SOAP::WSDL::Expat::WSDLParser (or somewhere else)
Logged In: YES
user_id=884175
Originator: YES
- added weaken() to upward references in rev724
Logged In: YES
user_id=884175
Originator: YES
- fixed by:
- weakening circular references in SOAP::WSDL::Base
- destroying the parser object after parsing in SOAP::WSDL::Expat::Base (oops...)
There's still a little leak when SOAP::Lite's transport backend is used - this is to be fixed in SOAP::Lite, though ;-)
Fixed in rev725
Logged In: YES
user_id=884175
Originator: YES
Fixed in 2.00.05 available from CPAN / sf.net