You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Ao Li (Jira)" <ji...@apache.org> on 2024/07/10 17:06:00 UTC

[jira] [Created] (KAFKA-17112) StreamThread shutdown calls completeShutdown only in CREATED state

Ao Li created KAFKA-17112:
-----------------------------

             Summary: StreamThread shutdown calls completeShutdown only in CREATED state
                 Key: KAFKA-17112
                 URL: https://issues.apache.org/jira/browse/KAFKA-17112
             Project: Kafka
          Issue Type: Bug
          Components: streams
    Affects Versions: 3.9.0
            Reporter: Ao Li


While running tests in `StreamThreadTest.java` in kafka/streams, I noticed the test left many lingering threads. Though the class runs `shutdown` after each test, the shutdown only executes `completeShutdown` if the StreamThread is in CREATED state. See [https://github.com/apache/kafka/blob/0b11971f2c94f7aadc3fab2c51d94642065a72e5/streams/src/test/java/org/apache/kafka/streams/processor/internals/StreamThreadTest.java#L231] and [https://github.com/apache/kafka/blob/0b11971f2c94f7aadc3fab2c51d94642065a72e5/streams/src/main/java/org/apache/kafka/streams/processor/internals/StreamThread.java#L1435]
 
For example, you may run test org.apache.kafka.streams.processor.internals.StreamThreadTest#shouldNotCloseTaskProducerWhenSuspending with commit 0b11971f2c94f7aadc3fab2c51d94642065a72e5. When the test calls `thread.shutdown()`, the thread is in `PARTITIONS_REVOKED` state. Thus, `completeShutdown` is not called. The test creates three lingering threads: 2 `StateUpdater` and 1 `TaskExecutor`
 
This means that calls to `thread.shutdown` has no effect in `StreamThreadTest.java`. 



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