This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 5938f5d79c49 chore: camel-lumberjack - fix flaky
LumberjackMultiThreadIT (#25789)
5938f5d79c49 is described below
commit 5938f5d79c4939a16075ae4fde25c22ae12f758d
Author: Claus Ibsen <[email protected]>
AuthorDate: Thu Aug 27 13:57:22 2026 +0200
chore: camel-lumberjack - fix flaky LumberjackMultiThreadIT (#25789)
LumberjackMultiThreadIT.shouldListenToMessages only waited 5 seconds on a
CountDownLatch for all client threads to finish, but
LumberjackUtil.sendMessages() waits up to 30 seconds internally for ACKs.
Under load a thread could legitimately take longer than 5s, causing the
latch wait to time out intermittently in CI.
Widen the latch wait to 35s so it comfortably exceeds the internal 30s
ACK-wait ceiling, and reduce client-side thread oversubscription by using
NioEventLoopGroup(1) per client thread, since each client only manages a
single channel.
Co-authored-by: Claude Sonnet 5 <[email protected]>
Signed-off-by: Claus Ibsen <[email protected]>
Closes #25789
---
.../apache/camel/component/lumberjack/LumberjackMultiThreadIT.java | 6 +++++-
.../java/org/apache/camel/component/lumberjack/LumberjackUtil.java | 4 +++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git
a/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackMultiThreadIT.java
b/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackMultiThreadIT.java
index 97dd9c34d6b8..ae8d51fdd188 100644
---
a/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackMultiThreadIT.java
+++
b/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackMultiThreadIT.java
@@ -80,7 +80,11 @@ public class LumberjackMultiThreadIT extends
CamelTestSupport {
mock.expectedMessageCount(25 * CONCURRENCY_LEVEL);
mock.allMessages().body().isInstanceOf(Map.class);
- final boolean await = latch.await(5, TimeUnit.SECONDS);
+ // LumberjackUtil.sendMessages() waits up to 30 seconds internally for
ACKs before a thread
+ // counts down the latch (that 30s bound was itself raised from
Awaitility's 10s default in
+ // 5df5b4719ac1 to fix flakiness on loaded CI runners). This wait must
exceed 30s with margin,
+ // or a thread that legitimately takes close to the internal max would
trip this latch first.
+ final boolean await = latch.await(35, TimeUnit.SECONDS);
assertTrue(await, "All threads should have sent their messages by
now");
// Then we should have the messages we're expecting
diff --git
a/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackUtil.java
b/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackUtil.java
index 06008beff30c..92314c7b6543 100644
---
a/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackUtil.java
+++
b/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackUtil.java
@@ -54,7 +54,9 @@ final class LumberjackUtil {
static List<Integer> sendMessages(
int port, SSLContextParameters sslContextParameters, List<Integer>
windows, boolean waitForResult)
throws InterruptedException {
- NioEventLoopGroup eventLoopGroup = new NioEventLoopGroup();
+ // A single thread is enough for one client connection; avoids
oversubscribing CPU when
+ // multiple client threads each spin up their own group (default is 2x
available processors).
+ NioEventLoopGroup eventLoopGroup = new NioEventLoopGroup(1);
try {
// This list will hold the acknowledgment response sequence numbers
List<Integer> responses = new ArrayList<>();