[
https://issues.apache.org/jira/browse/KAFKA-19510?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18028204#comment-18028204
]
Chang-Yu Huang commented on KAFKA-19510:
----------------------------------------
Hello [~mjsax] . I think both issues are originated from
`TaskManager#tryToLockAllNonEmptyTaskDirectories`. Multiple threads may call
this method concurrently and may clear the `lockedTaskDirectories` set. As a
result, `TaskManager#releaseLockedDirectoriesForTasks` can't free anything
because the set is empty.
The PR seems dealing with other problem.
I am still figuring out why the method is called concurrently. Once I
understand it I'll push a patch asap.
> Kafka Streams does not always release lock when adding or removing threads
> multiple times
> -----------------------------------------------------------------------------------------
>
> Key: KAFKA-19510
> URL: https://issues.apache.org/jira/browse/KAFKA-19510
> Project: Kafka
> Issue Type: Bug
> Components: streams
> Affects Versions: 3.9.0
> Reporter: Lucas Brutschy
> Priority: Major
>
> Kafka Streams seems to not always release the state directory lock for all
> tasks, when threads are added / removed.
> Effectively, the old thread (same name, different object) still seems to own
> the task.
> To reproduce, checkout
> [https://github.com/lucasbru/kafka/commit/2701dd39fe7df23a123939a1c9e140c849904b5f]
> and run `AdjustStreamThreadCountTest >
> shouldAddAndRemoveThreadsMultipleTimes` ... multiple times.
>
> The test was changed to use a stateful topology.
>
> I reproduced this on 3.9, 4.0, 4.1, trunk
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)