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

Reply via email to