From 2e54607bd673789dda490bd876e30b4d3372902e Mon Sep 17 00:00:00 2001 From: lingniu Date: Wed, 1 Jul 2026 04:18:33 +0800 Subject: [PATCH] test: stabilize gb32960 durable ack boundary --- .../Gb32960ChannelHandlerAckBoundaryTest.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/modules/protocols/protocol-gb32960/src/test/java/com/lingniu/ingest/protocol/gb32960/inbound/Gb32960ChannelHandlerAckBoundaryTest.java b/modules/protocols/protocol-gb32960/src/test/java/com/lingniu/ingest/protocol/gb32960/inbound/Gb32960ChannelHandlerAckBoundaryTest.java index 4ce6e1a4..4e9cb5d9 100644 --- a/modules/protocols/protocol-gb32960/src/test/java/com/lingniu/ingest/protocol/gb32960/inbound/Gb32960ChannelHandlerAckBoundaryTest.java +++ b/modules/protocols/protocol-gb32960/src/test/java/com/lingniu/ingest/protocol/gb32960/inbound/Gb32960ChannelHandlerAckBoundaryTest.java @@ -61,10 +61,9 @@ class Gb32960ChannelHandlerAckBoundaryTest { dispatch.awaitPublishCount(1); dispatch.failDurability(); - channel.runPendingTasks(); assertThat((Object) channel.readOutbound()).isNull(); - assertThat(channel.isActive()).isFalse(); + assertThat(awaitInactive(channel)).isTrue(); channel.finishAndReleaseAll(); } } @@ -151,6 +150,18 @@ class Gb32960ChannelHandlerAckBoundaryTest { return null; } + private static boolean awaitInactive(EmbeddedChannel channel) { + long deadline = System.currentTimeMillis() + 3000; + while (System.currentTimeMillis() < deadline) { + channel.runPendingTasks(); + if (!channel.isActive()) { + return true; + } + Thread.onSpinWait(); + } + return false; + } + private static final class DispatchHarness implements AutoCloseable { private final ControlledSink sink = new ControlledSink(); private final DisruptorEventBus eventBus = new DisruptorEventBus(1024, "blocking", List.of(sink));