[Webtest] Memory and Potential Handle Leak with Build 454
Sun, 25 Jul 2004 14:40:53 +0200
I was waiting for Siegried's answer to confirm what I have seen for my tests. I guess indeed that the
showhtmlparseroutput="true" is currently the cause of OutOfMemoryError when running a lot of test.
I will first commit a quick and dirty workaround allowing to continue using showhtmlparseroutput="true" before
performing bigger changes on the architecture to allow webtests suites to better scale.
What I see as the cause of the problem is that following occurs:
- ant instantiates the steps of a testSpec
- the steps are runned, some of the steps generate html errors and/or warnings and hold these messages to make them
available for reporting
- when all steps of a testspec are finisched, the informations of the steps are used to generate a report
- next testSpec is runned (if any)
- when ant has finished, the steps are released. This is a feature of ant: as a target may be called more than 1 time in
a run, the target and all tasks it contains are only released at the very end.
Therefore ALL html errors and warnings (as well as other data, but these are the ones that may really be numerous) are
hold in memory until ant finishes.
The clean refactoring will consist to make each step generating a "result" containing the data needed for the reports.
These results will be used at the end of a testSpec to generate the reports and won't live after the end of the
execution of a testSpec.
Lisa Crispin wrote:
> Hi Marc,
> Are you saying that showhtmlparseroutput should be set to false if you have a lot of tests and don't want to run out of memory? If you do that, how do you debug if a test fails?
> -------------- Original message from Marc Guillemot : --------------
>>>WebTest mailing list
>>WebTest mailing list
> WebTest mailing list
>>2nd question: do you have the showhtmlparseroutput config option on true?
>>I think that this is the cause of the problem. It's a consequence of task
>>lifecycle and current webtest architecture.
>>PS: what about my first question? ;-)
>>>Running my regression test suite with build 454 fails with a
>>OutOfMemoryException - it seems that there is no memory released.
>>>My 19 test cases consume more 160 MB RAM and 1300 handles (to set the right
>>perspective my BEA WebLogic 8.1 server consumes 120 MB Ram and 2600 handles). I
>>increased the maximum heap size but this might not work for a really large
>>regression test suite ... :-)
>>>+) Windows XP
>>>+) Java 1.4.2_03b02
>>>+) Maven 1.0 rc1 & Ant 1.5.2
>>>Thanks in advance