[ 
https://issues.apache.org/jira/browse/KAFKA-19091?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Uladzislau Blok updated KAFKA-19091:
------------------------------------
    Description: 
The test case is flaky in 3% pipeline recently.

 

The root case is race condition between worker thread (thread which is 
executing the test) and executor-testDelayedFuture (thread which should execute 
callback).

-Natural fix would be to use CountDownlLatch with timeout to wait until 
executor-testDelayedFuture will be done with callback, or max waiting time will 
be reached.-

To fix it we can use TestUtils#waitForCondition

 

Error example:
{noformat}
org.opentest4j.AssertionFailedError: expected: <40> but was: <-1>

at 
org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
at 
org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
at org.junit.jupiter.api.AssertEquals.failNotEqual(AssertEquals.java:197)
at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:150)
at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:145)
at org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:531)
at 
integration.kafka.server.DelayedFutureTest.testDelayedFuture(DelayedFutureTest.scala:91)at
 java.lang.reflect.Method.invoke(Method.java:580)
at java.util.ArrayList.forEach(ArrayList.java:1597)
at java.util.ArrayList.forEach(ArrayList.java:1597){noformat}

  was:
The test case is flaky in 3% pipeline recently.

 

The root case is race condition between worker thread (thread which is 
executing the test) and executor-testDelayedFuture (thread which should execute 
callback).

Natural fix would be to use CountDownlLatch with timeout to wait until 
executor-testDelayedFuture will be done with callback, or max waiting time will 
be reached.

 

Error example:
{noformat}
org.opentest4j.AssertionFailedError: expected: <40> but was: <-1>

at 
org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
at 
org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
at org.junit.jupiter.api.AssertEquals.failNotEqual(AssertEquals.java:197)
at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:150)
at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:145)
at org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:531)
at 
integration.kafka.server.DelayedFutureTest.testDelayedFuture(DelayedFutureTest.scala:91)at
 java.lang.reflect.Method.invoke(Method.java:580)
at java.util.ArrayList.forEach(ArrayList.java:1597)
at java.util.ArrayList.forEach(ArrayList.java:1597){noformat}


> Flaky test DelayedFutureTest#testDelayedFuture
> ----------------------------------------------
>
>                 Key: KAFKA-19091
>                 URL: https://issues.apache.org/jira/browse/KAFKA-19091
>             Project: Kafka
>          Issue Type: Test
>            Reporter: PoAn Yang
>            Assignee: Uladzislau Blok
>            Priority: Minor
>
> The test case is flaky in 3% pipeline recently.
>  
> The root case is race condition between worker thread (thread which is 
> executing the test) and executor-testDelayedFuture (thread which should 
> execute callback).
> -Natural fix would be to use CountDownlLatch with timeout to wait until 
> executor-testDelayedFuture will be done with callback, or max waiting time 
> will be reached.-
> To fix it we can use TestUtils#waitForCondition
>  
> Error example:
> {noformat}
> org.opentest4j.AssertionFailedError: expected: <40> but was: <-1>
> at 
> org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
> at 
> org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
> at org.junit.jupiter.api.AssertEquals.failNotEqual(AssertEquals.java:197)
> at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:150)
> at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:145)
> at org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:531)
> at 
> integration.kafka.server.DelayedFutureTest.testDelayedFuture(DelayedFutureTest.scala:91)at
>  java.lang.reflect.Method.invoke(Method.java:580)
> at java.util.ArrayList.forEach(ArrayList.java:1597)
> at java.util.ArrayList.forEach(ArrayList.java:1597){noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to