| Summary: | OutOfMemoryError when generating large TPTP test reports. | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | z_Archived | Reporter: | Paul Slauenwhite <paulslau> | ||||||
| Component: | TPTP | Assignee: | Paul Slauenwhite <paulslau> | ||||||
| Status: | CLOSED FIXED | QA Contact: | |||||||
| Severity: | major | ||||||||
| Priority: | P1 | CC: | dmorris, jcayne, jerome.gout, jkubasta, jptoomey, sluiman | ||||||
| Version: | unspecified | Keywords: | plan | ||||||
| Target Milestone: | --- | Flags: | jptoomey:
review+
|
||||||
| Hardware: | All | ||||||||
| OS: | All | ||||||||
| Whiteboard: | |||||||||
| Bug Depends on: | 213294, 213697 | ||||||||
| Bug Blocks: | |||||||||
| Attachments: |
|
||||||||
|
Description
Paul Slauenwhite
Please investigate and provide a sizing. Created attachment 69684 [details]
Screen capture.
Required for 4.5. Please provide a sizing for this defect before Monday, November 12, 2007. Bulk update of the target field to reflect the change in iteration numbers. Bulk update of the target field to reflect the change in iteration numbers. Work-around (Eclipse): Start Eclipse with a larger VM heap. For example, add the following to the <Eclipse installation directory>\eclipse\eclipse.ini: -Xmx1024m Work-around (ASF/ANY): Run the report from an Eclipse instance with a larger VM heap. For example, add the following to the ANT script: <property name="tptp.automation.vmargs" value="-Xmx1024m" /> Work-around provided so retargetting to i6. The resources (e.g. execution histories) that are not used in org.eclipse.hyades.models.common.util.ExecutionUtil.findExecutionResults(List, long, long) need to be unloaded: executionResult.eResource().unload(); This defect appears to be the result of a BIRT memory leak (see 213697). After profiling our code, there is one place where we can do a better job at releasing unused memory: org.eclipse.hyades.models.common.util.ExecutionUtil.java: There are several places where we load an execution result resource for a test suite to confirm the ID and time stamp using the resource set of the test suite. In most cases, we never use/return the loaded execution result resource. However, the execution result resource is not unloaded or cannot be GCed. We should be loading execution result resources using a new resource set so when the execution result resource is not used, it can be GCed after the method returns. Attaching patch for the above fix to be integrated in I5. Joe: Can you review this patch? Created attachment 85715 [details]
Partial patch.
Looks good to me. Thanks, --Joe Profiled/tested the patch using the default 256 MB max heap size and the TPTP test bucket with no OutOfMemoryError exceptions or memory leaks. Checked in CVS (HEAD): (In reply to comment #13) > Profiled/tested the patch using the default 256 MB max heap size and the TPTP > test bucket with no OutOfMemoryError exceptions or memory leaks. > > Checked in CVS (HEAD): > Just curious, how did you confirm no memory leaks? (In reply to comment #14) > (In reply to comment #13) > > Profiled/tested the patch using the default 256 MB max heap size and the TPTP > > test bucket with no OutOfMemoryError exceptions or memory leaks. > > > > Checked in CVS (HEAD): > > > > Just curious, how did you confirm no memory leaks? > While increasing the number of execution results to be reported, I used the TPTP profiler to monitor a constant memory usage. Previously, BIRT and the utility method in our model code had positive memory usage. Verified in 4.5.0-200802100400 (using the M4 BIRT). (In reply to comment #16) > Verified in 4.5.0-200802100400 (using the M4 BIRT). > Due to BIRT 2.3.0 M5 blocking defects: https://bugs.eclipse.org/bugs/show_bug.cgi?id=218578 https://bugs.eclipse.org/bugs/show_bug.cgi?id=218018 |