Menu

#95 Big-O memory hole when parsing WSDL

2.0x
closed-fixed
5
2008-07-13
2008-07-09
No

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)

Discussion

  • Martin Kutter

    Martin Kutter - 2008-07-09

    Logged In: YES
    user_id=884175
    Originator: YES

    - added weaken() to upward references in rev724

     
  • Martin Kutter

    Martin Kutter - 2008-07-13
    • status: open --> pending-fixed
     
  • Martin Kutter

    Martin Kutter - 2008-07-13

    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

     
  • Martin Kutter

    Martin Kutter - 2008-07-13

    Logged In: YES
    user_id=884175
    Originator: YES

    Fixed in 2.00.05 available from CPAN / sf.net

     
  • Martin Kutter

    Martin Kutter - 2008-07-13
    • status: pending-fixed --> closed-fixed
     

Log in to post a comment.

MongoDB Logo MongoDB