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)