[
https://issues.apache.org/jira/browse/ZOOKEEPER-888?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12922209#action_12922209
]
Henry Robinson commented on ZOOKEEPER-888:
--
The patch as it stands relies on ZOOKEEPER-853 (which it fixes) which is not in
3.3 as it is a small API change - it changes is_unrecoverable to return Python
True or False, rather than ZINVALIDSTATE.
So I'm not certain about what to do here - we try not to change APIs between
minor versions. However, this is a very minor change, and this patch fixes a
significant bug. I'm inclined to commit both 853 and this patch to 3.3 as well
as trunk, and put a note in the release notes.
Any objections?
c-client / zkpython: Double free corruption on node watcher
---
Key: ZOOKEEPER-888
URL: https://issues.apache.org/jira/browse/ZOOKEEPER-888
Project: Zookeeper
Issue Type: Bug
Components: c client, contrib-bindings
Affects Versions: 3.3.1
Reporter: Lukas
Assignee: Lukas
Priority: Critical
Fix For: 3.3.2, 3.4.0
Attachments: resume-segfault.py, ZOOKEEPER-888.patch
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
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.