Eno Thereska created KAFKA-3812:
-----------------------------------

             Summary: State store locking is incorrect
                 Key: KAFKA-3812
                 URL: https://issues.apache.org/jira/browse/KAFKA-3812
             Project: Kafka
          Issue Type: Bug
          Components: streams
    Affects Versions: 0.10.1.0
            Reporter: Eno Thereska
            Assignee: Eno Thereska
             Fix For: 0.10.1.0


In {{ProcessorStateManager}} in the {{lockStateDirectory}} method, we close a 
channel if the lock is null. However, as described in 
https://docs.oracle.com/javase/7/docs/api/java/nio/channels/FileLock.html, 
"...closing a channel releases all locks held by the Java virtual machine on 
the underlying file regardless of whether the locks were acquired via that 
channel or via another channel open on the same file. It is strongly 
recommended that, within a program, a unique channel be used to acquire all 
locks on any given file.". Thus closing this channel sometimes leads to the 
other lock in {{ProcessorStateManager}}, called {{directoryLock}} to be 
released. 

Problem is reproduced as part of the steps in KAFKA-3805, when two processes 
are using the same state directory.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to