From ae5ebc77e808b13fe2d805497618b9f3c0369908 Mon Sep 17 00:00:00 2001 From: Chris Vest Date: Sat, 15 Jun 2024 18:14:49 -0700 Subject: [PATCH 1/4] Fix flaky test The test must reset the counter baseline every time it ignores an iteration due to sleeping too much. --- src/test/java/blackbox/slow/PoolIT.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/java/blackbox/slow/PoolIT.java b/src/test/java/blackbox/slow/PoolIT.java index e9ceab73..c6c6d21b 100644 --- a/src/test/java/blackbox/slow/PoolIT.java +++ b/src/test/java/blackbox/slow/PoolIT.java @@ -298,6 +298,7 @@ void mustGraduallyReduceAggressivenessInRepairingFailingAllocator() throws Excep if (elapsedMillis >= 150) { // Ignore outliers with very high sleep time. i--; + prev = counter.get(); continue; } curr = counter.get(); From 17d325e2cd29b7b629f2d14c720d94440fe90c18 Mon Sep 17 00:00:00 2001 From: Chris Vest Date: Sat, 15 Jun 2024 18:20:15 -0700 Subject: [PATCH 2/4] Print some debug info --- src/test/java/blackbox/slow/PoolIT.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/java/blackbox/slow/PoolIT.java b/src/test/java/blackbox/slow/PoolIT.java index c6c6d21b..c55ed610 100644 --- a/src/test/java/blackbox/slow/PoolIT.java +++ b/src/test/java/blackbox/slow/PoolIT.java @@ -303,6 +303,7 @@ void mustGraduallyReduceAggressivenessInRepairingFailingAllocator() throws Excep } curr = counter.get(); long delta = curr - prev; + System.out.printf("i = %s, delta = %s%n", i, delta); prev = curr; if (i > 40) { assertThat(delta).isLessThanOrEqualTo(5); From b3f2909a29d991c1de8de60e4394f99ea052b1b1 Mon Sep 17 00:00:00 2001 From: Chris Vest Date: Sat, 15 Jun 2024 18:34:38 -0700 Subject: [PATCH 3/4] Print debug info with less overhead --- src/test/java/blackbox/slow/PoolIT.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/test/java/blackbox/slow/PoolIT.java b/src/test/java/blackbox/slow/PoolIT.java index c55ed610..1f45dcfd 100644 --- a/src/test/java/blackbox/slow/PoolIT.java +++ b/src/test/java/blackbox/slow/PoolIT.java @@ -290,6 +290,7 @@ void mustGraduallyReduceAggressivenessInRepairingFailingAllocator() throws Excep obj.expire(); obj.release(); assertThrows(PoolException.class, () -> pool.claim(longTimeout).release()); + StringBuilder sb = new StringBuilder(1024); long prev = 0, curr; for (int i = 0; i < 50; i++) { long start = System.nanoTime(); @@ -303,9 +304,12 @@ void mustGraduallyReduceAggressivenessInRepairingFailingAllocator() throws Excep } curr = counter.get(); long delta = curr - prev; - System.out.printf("i = %s, delta = %s%n", i, delta); + sb.append("i = ").append(i).append(", delta = ").append(delta).append('\n'); prev = curr; if (i > 40) { + if (delta > 5) { + System.out.print(sb); + } assertThat(delta).isLessThanOrEqualTo(5); } } From dcf579b64634b312c3e69da5006e8e2f34af7374 Mon Sep 17 00:00:00 2001 From: Chris Vest Date: Sat, 15 Jun 2024 20:20:00 -0700 Subject: [PATCH 4/4] Print more debug info --- src/test/java/blackbox/slow/PoolIT.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/test/java/blackbox/slow/PoolIT.java b/src/test/java/blackbox/slow/PoolIT.java index 1f45dcfd..a835c8db 100644 --- a/src/test/java/blackbox/slow/PoolIT.java +++ b/src/test/java/blackbox/slow/PoolIT.java @@ -25,6 +25,7 @@ import org.junit.jupiter.api.extension.RegisterExtension; import stormpot.Completion; import stormpot.GenericPoolable; +import stormpot.ManagedPool; import stormpot.Pool; import stormpot.PoolBuilder; import stormpot.PoolException; @@ -286,6 +287,7 @@ void mustGraduallyReduceAggressivenessInRepairingFailingAllocator() throws Excep })); builder.setAllocator(allocator); createPool(); + ManagedPool managedPool = pool.getManagedPool(); GenericPoolable obj = pool.claim(longTimeout); obj.expire(); obj.release(); @@ -304,14 +306,17 @@ void mustGraduallyReduceAggressivenessInRepairingFailingAllocator() throws Excep } curr = counter.get(); long delta = curr - prev; - sb.append("i = ").append(i).append(", delta = ").append(delta).append('\n'); + sb.append("i = ").append(i).append(", delta = ").append(delta) + .append(", alloc ratio = ") + .append(managedPool.getAllocationCount()).append('/').append(managedPool.getFailedAllocationCount()) + .append('\n'); prev = curr; if (i > 40) { if (delta > 5) { - System.out.print(sb); } assertThat(delta).isLessThanOrEqualTo(5); } } + System.out.print(sb); } }