RFR: JDK-8303742: CompletableFuture.orTimeout leaks if the future completes exceptionally

Jaikiran Pai jpai at openjdk.org
Tue Mar 21 11:05:42 UTC 2023


On Tue, 21 Mar 2023 10:42:55 GMT, Viktor Klang <duke at openjdk.org> wrote:

> Improves the stability of the memory leak test for CompletableFuture timeout cancellation by both reducing the count by 50% (which should still be above threshold to trigger given the ample margin set initially) as well as extending the default timeout of the test run.

The PR seems to be using an incorrect JBS issue id/summary. This PR should be linked with the new https://bugs.openjdk.org/browse/JDK-8304557 issue.

test/jdk/java/util/concurrent/CompletableFuture/CompletableFutureOrTimeoutExceptionallyTest.java line 28:

> 26:  * @bug 8303742
> 27:  * @summary CompletableFuture.orTimeout can leak memory if completed exceptionally
> 28:  * @run junit/othervm/timeout=1000 -Xmx128m CompletableFutureOrTimeoutExceptionallyTest

Hello Viktor, a timeout of 1000 seconds is 16 minutes. This timeout value is then multiplied by the timeout factor (which is a jtreg option) to decide the final timeout. The CI on which this was reported use a timeout factor of 4. So this would translate to a timeout of 64 minutes, which I think is extremely high (although it's just the upper bound). 

Perhaps you could increase this timeout to maybe 5 minutes (300 seconds) and run some tests on our CI to see if that is sufficient?

-------------

PR Comment: https://git.openjdk.org/jdk/pull/13116#issuecomment-1477639233
PR Review Comment: https://git.openjdk.org/jdk/pull/13116#discussion_r1143207328


More information about the core-libs-dev mailing list