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

State store locking is incorrect

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 0.10.1.0
    • 0.10.1.0
    • streams
    • 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

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

              Dates

                Created:
                Updated:
                Resolved: