This is an automated email from the ASF dual-hosted git repository.

apupier pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 0a80149db2342a340cf3319307098885a0660cb7
Author: AurĂ©lien Pupier <[email protected]>
AuthorDate: Wed Mar 11 14:02:04 2026 +0100

    Avoid potential infinite loop in KafkaTransactionIT test
    
    it avoids being stuck with this:
    ```
    Name: main
    State: RUNNABLE
    Total blocked: 3,067  Total waited: 327
    
    Stack trace:
    [email protected]/sun.nio.ch.EPoll.wait(Native Method)
    
[email protected]/sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:121)
    
[email protected]/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:130)
       - locked sun.nio.ch.Util$2@252e9b93
       - locked sun.nio.ch.EPollSelectorImpl@437d752a
    [email protected]/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:142)
    app//org.apache.kafka.common.network.Selector.select(Selector.java:880)
    app//org.apache.kafka.common.network.Selector.poll(Selector.java:470)
    app//org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:645)
    
app//org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:282)
    
app//org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:253)
    
app//org.apache.kafka.clients.consumer.internals.ClassicKafkaConsumer.pollForFetches(ClassicKafkaConsumer.java:714)
    
app//org.apache.kafka.clients.consumer.internals.ClassicKafkaConsumer.poll(ClassicKafkaConsumer.java:645)
    
app//org.apache.kafka.clients.consumer.internals.ClassicKafkaConsumer.poll(ClassicKafkaConsumer.java:624)
    
app//org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:899)
    
app//org.apache.camel.component.kafka.integration.KafkaTransactionIT.createKafkaMessageConsumer(KafkaTransactionIT.java:199)
    ```
    
    currently happening when using strimzi container image. The test is
    still failing but at least not blocking the whole test suite.
    
    Signed-off-by: AurĂ©lien Pupier <[email protected]>
---
 .../camel/component/kafka/integration/KafkaTransactionIT.java     | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git 
a/components/camel-kafka/src/test/java/org/apache/camel/component/kafka/integration/KafkaTransactionIT.java
 
b/components/camel-kafka/src/test/java/org/apache/camel/component/kafka/integration/KafkaTransactionIT.java
index 01128c35678a..9eb885290059 100644
--- 
a/components/camel-kafka/src/test/java/org/apache/camel/component/kafka/integration/KafkaTransactionIT.java
+++ 
b/components/camel-kafka/src/test/java/org/apache/camel/component/kafka/integration/KafkaTransactionIT.java
@@ -190,12 +190,14 @@ public class KafkaTransactionIT extends 
BaseKafkaTestSupport {
     }
 
     private void createKafkaMessageConsumer(
-            KafkaConsumer<String, String> consumerConn, String topic, 
CountDownLatch messagesLatch) {
+            KafkaConsumer<String, String> consumerConn, String topic, 
CountDownLatch messagesLatch)
+            throws InterruptedException {
 
         consumerConn.subscribe(Arrays.asList(topic));
         boolean run = true;
+        int numberOfAttempts = 0;
 
-        while (run) {
+        while (run && numberOfAttempts < 100) {
             ConsumerRecords<String, String> records = 
consumerConn.poll(Duration.ofMillis(100));
             for (int i = 0; i < records.count(); i++) {
                 messagesLatch.countDown();
@@ -203,6 +205,8 @@ public class KafkaTransactionIT extends 
BaseKafkaTestSupport {
                     run = false;
                 }
             }
+            numberOfAttempts++;
+            Thread.sleep(100);
         }
     }
 

Reply via email to