Bug#690192: python-zookeeper truncates paths with more than 255 characters.

Paul Dwerryhouse paul at dwerryhouse.com.au
Thu Oct 11 00:43:04 UTC 2012


Package: python-zookeeper
Version: 3.3.5+dfsg1-2
Severity: normal

There appears to be a problem with python-zookeeper's handling of nodes with
that have a total path length that is greater than 255 characters. It can
be demonstrated with this simple test program, which creates a node with
path length of 302 characters. The return value from zookeeper.create should
be exactly the same, in this case, but instead, it is trucated at 
255 characters:

==============================================================================
#!/usr/bin/python 

import zookeeper

ZOO_OPEN_ACL_UNSAFE = {"perms":0x1f, "scheme":"world", "id" :"anyone"}
path = "/" + "x" * 300 + "X"
servers="127.0.0.1:2181"

zh = zookeeper.init(servers)
znode = zookeeper.create(zh,path, 'test', [ZOO_OPEN_ACL_UNSAFE], 0)

print path
print znode

zookeeper.delete(zh, znode)
==============================================================================

# ./ztest.py
/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX
/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Traceback (most recent call last):
  File "./ztest.py", line 20, in <module>
    zookeeper.delete(zh, lockfile)
zookeeper.NoNodeException: no node

 
Checking in the Zookeeper cli confirms that the node is created successfully,
and it's only the name returned from zookeeper.create that is truncated.

I cannot find any information on what the maximum allowed path length is,
for Zookeeper, but this doesn't really matter, because if paths longer than
256 characters aren't allowed, then it should be throwing an exception at
create time.

I have also checked that it's not just the node-name length that is the 
problem - it's definitely the total length of the path.

Thanks,

Paul


-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (900, 'testing')
Architecture: i386 (i686)

Kernel: Linux 3.2.0-3-686-pae (SMP w/1 CPU core)
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages python-zookeeper depends on:
ii  libc6             2.13-35
ii  libzookeeper-mt2  3.3.5+dfsg1-2
ii  python            2.7.3~rc2-1
ii  python2.6         2.6.8-0.2
ii  python2.7         2.7.3~rc2-2.1

python-zookeeper recommends no packages.

python-zookeeper suggests no packages.

-- debconf-show failed



More information about the pkg-java-maintainers mailing list