fix: replace non-deterministic Thread.sleep with Awaitility and CountDownLatch (#7391) #7392
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR addresses issue #7391 by removing arbitrary Thread.sleep() calls in the test suite to reduce flakiness and improve test reliability.
Changes:
LeaderElectorTest.java: Replaced fixed sleeps in loopCancel with Awaitility to verify counter stability deterministically.
LeaderElectorTest.java: Updated shouldStopOnReleaseWhenCanceled to use a generic KubernetesClientException constructor, bypassing local model-compilation issues while maintaining test logic.
SerialExecutorTest.java: Replaced Thread.sleep and polling loops in clearInterrupt and taskExecutedInOrderOfInsertion with CountDownLatch for precise thread synchronization.
General: Updated method signatures to handle ExecutionException and TimeoutException where necessary for deterministic CompletableFuture.get() calls.