On Thu, 16 Mar 2023 20:51:29 GMT, Pavel Rappo <[email protected]> wrote:
>> Viktor Klang has updated the pull request incrementally with one additional
>> commit since the last revision:
>>
>> Making the test for orTimeout+completeExceptionally only based on
>> iterations and not duration.
>
> test/jdk/java/util/concurrent/CompletableFuture/CompletableFutureOrTimeoutExceptionallyTest.java
> line 44:
>
>> 42: void testOrTimeoutWithCompleteExceptionallyDoesNotLeak() throws
>> Exception {
>> 43: var startTime = System.currentTimeMillis();
>> 44: var testRunTime = Duration.ofSeconds(10).toMillis();
>
> This "create completable futures in a loop for t seconds" seems a bit
> brittle. Would 10 or 20 seconds be enough for a typical test machine to fail
> with OOME? Could this be improved by requiring a minimum number of CF
> instances to be created? Maybe finishing when t seconds have elapsed _and_ n
> instances have been created.
>
> Separately, as with any timeouts, consider a monotonic clock.
@pavelrappo After some extra thought I have skipped the duration-need and
instead determined the threshold for OOME and added a loop counter that counts
to 4x that to make sure if it fails it fails.
-------------
PR: https://git.openjdk.org/jdk/pull/13059