Uploaded image for project: 'Kafka'
  1. Kafka
  2. KAFKA-3812

State store locking is incorrect

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 0.10.1.0
    • Fix Version/s: 0.10.1.0
    • Component/s: streams
    • Labels:
      None

      Description

      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.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                damianguy Damian Guy
                Reporter:
                enothereska Eno Thereska
              • Votes:
                1 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: