Uploaded image for project: 'Mesos'
  1. Mesos
  2. MESOS-1477

Deadlock when terminating ZooKeeperProcess

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 0.20.0
    • None
    • None

    Description

      (1) ZooKeeper callback in progress, calls ZooKeeperProcess::event.
      (2) ZooKeeperProcess::event calls ProcessWatcher::process.
      (3) ProcessWatcher::process calls zk->getSessionId().
      (4) This dispatches onto ZooKeeperProcess and blocks.

      If in between (1) and (4) there is a termination of the ZooKeeperProcess then (4) will block forever because the dispatch event will be dropped. This means that the zookeeper thread is blocked and zookeeper_close could block forever!

      This was introduced when the session id was added to all the dispatches inside WatcherProcess.

      Attachments

        Issue Links

          Activity

            People

              vinodkone Vinod Kone
              vinodkone Vinod Kone
              Benjamin Mahler Benjamin Mahler
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: