[ https://issues.apache.org/jira/browse/ZOOKEEPER-78?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12694793#action_12694793 ]
Chris Darroch commented on ZOOKEEPER-78: ---------------------------------------- Just took a quick peek to see what would be either rework these in a ZooKeeper::Lock Perl module to go along with Net::ZooKeeper, or to expose the C version through Net::ZooKeeper. I may well be missing something after such a brief review, but in zoo_mutex_operation() I would be inclined to add some return value checks. For example, if zoo_create() here returns a failure code, I believe it's possible for the retbuf to contain whatever random data it had before the call. In that case, getName() might "succeed" if the data contains a '/' and return a string --- possibly one that doesn't happen to be null-terminated within the retbuf buffer. {noformat} char retbuf[len+20]; snprintf(buf, len, "%s/%s", path, prefix); ret = zoo_create(zh, buf, NULL, 0, mutex->acl, ZOO_EPHEMERAL|ZOO_SEQUENCE, retbuf, (len+20)); mutex->id = getName(retbuf); {noformat} There are some calls to zoo_get_children(), etc., which I think might be usefully checked for failure return codes as well. Sorry not to provide a patch yet. > added a high level protocol/feature - for easy Leader Election or exclusive > Write Lock creation > ----------------------------------------------------------------------------------------------- > > Key: ZOOKEEPER-78 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-78 > Project: Zookeeper > Issue Type: New Feature > Components: java client > Affects Versions: 3.0.0 > Reporter: james strachan > Assignee: james strachan > Fix For: 3.2.0 > > Attachments: patch_with_including_Benjamin's_fix.patch, > using_zookeeper_facade.patch, ZOOKEEPER-78.patch, ZOOKEEPER-78.patch, > ZOOKEEPER-78.patch, ZOOKEEPER-78.patch > > > Here's a patch which adds a little WriteLock helper class for performing > leader elections or creating exclusive locks in some directory znode. Note > its an early cut; am sure we can improve it over time. The aim is to avoid > folks having to use the low level ZK stuff but provide a simpler high level > abstraction. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.