-
Enhancement
-
Resolution: Unresolved
-
P4
-
None
In ThreadsRunner.java, the following `run` method is responsible for coordinating all testing threads.
public void run() {
...
try {
start();,
join();
successful = dumpFailures() == 0;
<--- the result is recorded and all memory for stressing can be released
} catch ...
...
}
In the denoted line, we don't explicitly clean up test-running related data structures, making the test more vulnurable to OOM after the testing is effectively over.
private List<Runnable> runnables = new ArrayList<Runnable>();
private List<ManagedThread> threads = new ArrayList<ManagedThread>();
These two data structures are no longer needed after `successful = dumpFailures() == 0;`, so we can clear them.
public void run() {
...
try {
start();,
join();
successful = dumpFailures() == 0;
<--- the result is recorded and all memory for stressing can be released
} catch ...
...
}
In the denoted line, we don't explicitly clean up test-running related data structures, making the test more vulnurable to OOM after the testing is effectively over.
private List<Runnable> runnables = new ArrayList<Runnable>();
private List<ManagedThread> threads = new ArrayList<ManagedThread>();
These two data structures are no longer needed after `successful = dumpFailures() == 0;`, so we can clear them.
- links to
-
Review(master) openjdk/jdk/27606