[ 
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)

Reply via email to