Uploaded image for project: 'ZooKeeper'
  1. ZooKeeper
  2. ZOOKEEPER-888

c-client / zkpython: Double free corruption on node watcher

    XMLWordPrintableJSON

Details

    • Reviewed

    Description

      the c-client / zkpython wrapper invokes already freed watcher callback

      steps to reproduce:
      0. start a zookeper server on your machine
      1. run the attached python script
      2. suspend the zookeeper server process (e.g. using `pkill -STOP -f org.apache.zookeeper.server.quorum.QuorumPeerMain` )
      3. wait until the connection and the node observer fired with a session event
      4. resume the zookeeper server process (e.g. using `pkill -CONT -f org.apache.zookeeper.server.quorum.QuorumPeerMain` )

      -> the client tries to dispatch the node observer function again, but it was already freed -> double free corruption

      Attachments

        1. resume-segfault.py
          0.9 kB
          Lukas
        2. ZOOKEEPER-888.patch
          5 kB
          Austin Bennett
        3. ZOOKEEPER-888-3.3.patch
          4 kB
          Austin Bennett

        Issue Links

          Activity

            People

              mr_luk Lukas
              mr_luk Lukas
              Votes:
              1 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: