[
https://issues.apache.org/jira/browse/KAFKA-21051?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jheng-Sing Chen reassigned KAFKA-21051:
---------------------------------------
Assignee: Jheng-Sing Chen (was: Chia-Ping Tsai)
> testShareConsumerAfterCoordinatorMovement can halt the test JVM
> ---------------------------------------------------------------
>
> Key: KAFKA-21051
> URL: https://issues.apache.org/jira/browse/KAFKA-21051
> Project: Kafka
> Issue Type: Test
> Reporter: Chia-Ping Tsai
> Assignee: Jheng-Sing Chen
> Priority: Minor
>
>
> {code:java}
> if (prodState.done().get() && records.count() == 0) {
> consState.done().set(true);
> } {code}
> The consumer could end too early due to a rough condition:`records.count()`
> does not mean there is no more data. Hence, the following assertion fails.
>
>
> {code:java}
> // Make sure we consumed all records. Consumed records could be higher
> // due to re-delivery but that is expected since we are only
> guaranteeing
> // at least once semantics.
> assertTrue(prodState.count().get() <= consState.count().get()); {code}
> The failure ends the test without closing the thread which is shutting down
> the broker.
>
>
> {code:java}
> // shutdown the coordinator
> KafkaBroker broker =
> cluster.brokers().get(curShareCoordNodeId.get(0));
> cluster.shutdownBroker(curShareCoordNodeId.get(0));
> // wait for it to be completely shutdown
> broker.awaitShutdown(); {code}
> As a result, the cleanup of {{ClusterInstance}} skips the broker, but the
> broker stays alive until the next test.. However, the folder has already been
> removed, and hence the broker started by the previous test hits a log dir
> failure, which halts the JVM during the next test.
>
> {code:java}
> public void handleLogDirFailure(String dir) {
> LOG.warn("Stopping serving logs in dir {}", dir);
> synchronized (logCreationOrDeletionLock) {
> liveLogDirs.remove(new File(dir));
> directoryIds.remove(dir);
> if (liveLogDirs.isEmpty()) {
> LOG.error("Shutdown broker because all log dirs in {} have
> failed", dirsToString(logDirs));
> Exit.halt(1);
> } {code}
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)