Hi Rich -

No, there's not a very easy way to verify the Python bindings version afaik
- would be a useful feature to have though.

My first suggestion is to move to the bindings shipped with 3.3.1 - we fixed
a lot of problems with the Python bindings which improved their stability a
lot. Could you try that and then let us know if you continue to see
problems?

cheers,
Henry

On 14 July 2010 13:14, Rich Schumacher <rich.s...@gmail.com> wrote:

> I'm running a Tornado webserver and using ZooKeeper to store some metadata
> and occasionally the ZooKeeper connection will error out irrevocably.  Any
> subsequent calls to ZooKeeper from this process will result in a
> SystemError.
>
> Here is the relevant portion of the Python traceback:
>  <snip>...
>  File "/usr/lib/pymodules/python2.5/zuul/storage/zoo.py", line 69, in call
>    return getattr(zookeeper, name)(self.handle, *args)
> SystemError: NULL result without error in PyObject_Call
>
> I found this in the ZooKeeper server logs:
>
> 2010-07-13 06:52:46,488 - INFO  [NIOServerCxn.Factory:
> 0.0.0.0/0.0.0.0:2181:nioservercnxn$fact...@251] - Accepted socket
> connection from /10.2.128.233:54779
> 2010-07-13 06:52:46,489 - INFO  [NIOServerCxn.Factory:
> 0.0.0.0/0.0.0.0:2181:nioserverc...@742] - Client attempting to renew
> session 0x429b865a6270003 at /10.2.128.233:54779
> 2010-07-13 06:52:46,489 - INFO  [NIOServerCxn.Factory:
> 0.0.0.0/0.0.0.0:2181:lear...@95] - Revalidating client: 299973596915630083
> 2010-07-13 06:52:46,793 - INFO
>  [QuorumPeer:/0:0:0:0:0:0:0:0:2181:nioserverc...@1424] - Invalid session
> 0x429b865a6270003 for client /10.2.128.233:54779, probably expired
> 2010-07-13 06:52:46,794 - INFO  [NIOServerCxn.Factory:
> 0.0.0.0/0.0.0.0:2181:nioserverc...@1286] - Closed socket connection for
> client /10.2.128.233:54779 which had sessionid 0x429b865a6270003
>
>
> The ZooKeeper ensemble is healthy; each node responds as expected to the
> four letter word commands and a simple restart of the Tornado processes
> "fixes" this.
>
> My question is, if this really is due to session expiration why is a
> SessionExpiredException not raised?  Another question, is there an easy way
> to determine the version of the ZooKeeper Python bindings I'm using?  I
> built the 3.3.0 bindings but I just want to be able to verify that.
>
> Thanks for the help,
>
> Rich




-- 
Henry Robinson
Software Engineer
Cloudera
415-994-6679

Reply via email to