Yu-Lin Chen created KAFKA-17661:
-----------------------------------
Summary: Fix flaky BufferPoolTest.testBlockTimeout
Key: KAFKA-17661
URL: https://issues.apache.org/jira/browse/KAFKA-17661
Project: Kafka
Issue Type: Bug
Components: clients, unit tests
Reporter: Yu-Lin Chen
Assignee: Yu-Lin Chen
Attachments:
0001-reproduce-racing-issue-by-adding-delay-to-test-thread.patch
4 flaky out of 221 trunk build in the past 28 days. (github) ([Report
Link|https://ge.apache.org/scans/tests?search.rootProjectNames=kafka&search.startTimeMax=1727681219558&search.startTimeMin=1725206400000&search.tags=github&search.timeZoneId=Asia%2FTaipei&tests.container=org.apache.kafka.clients.producer.internals.BufferPoolTest&tests.test=testBlockTimeout()])
([Sep 27 2024 at
04:54:00|https://ge.apache.org/s/nh44u7tsm2lri/tests/task/:clients:test/details/org.apache.kafka.clients.producer.internals.BufferPoolTest/testBlockTimeout()?expanded-stacktrace=WyIwIl0&top-execution=1])
{code:java}
org.opentest4j.AssertionFailedError: The buffer allocated more memory than its
maximum value 10
at org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:38)
at org.junit.jupiter.api.Assertions.fail(Assertions.java:138)
at
org.apache.kafka.clients.producer.internals.BufferPoolTest.testBlockTimeout(BufferPoolTest.java:184)
at java.lang.reflect.Method.invoke(Method.java:566)
at java.util.ArrayList.forEach(ArrayList.java:1541)
at java.util.ArrayList.forEach(ArrayList.java:1541)
{code}
Root cause:
# The test relies on 3 asynchronous threads being triggered in parallel with
the test thread [1]. However, there is no guarantee of parallelism in test
environment. The issue will happend if test thread didn't get CPU within 25 ms.
We could reproduce this issue by adding 30 ms delay to test thread. Please
check the attached patch.
# Since a 25 ms delay is obviously unreliable in the test environment, we
could consider rewriting the test or increasing the delay. (The maxBlockTimeMs
was reduced from 2000ms to 10 ms in KAFKA-9852)
[1]
[https://github.com/apache/kafka/blob/40360819bb97d6b05dfef6451888b4d908fc3bf4/clients/src/test/java/org/apache/kafka/clients/producer/internals/BufferPoolTest.java#L175-L179]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)