Author: phunt Date: Thu May 28 18:31:15 2009 New Revision: 779716 URL: http://svn.apache.org/viewvc?rev=779716&view=rev Log: ZOOKEEPER-419. Reference counting bug in Python bindings causes abort errors
Modified: hadoop/zookeeper/trunk/CHANGES.txt hadoop/zookeeper/trunk/src/contrib/zkpython/src/c/zookeeper.c Modified: hadoop/zookeeper/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/CHANGES.txt?rev=779716&r1=779715&r2=779716&view=diff ============================================================================== --- hadoop/zookeeper/trunk/CHANGES.txt (original) +++ hadoop/zookeeper/trunk/CHANGES.txt Thu May 28 18:31:15 2009 @@ -96,11 +96,17 @@ ZOOKEEPER-385. crctest failed on hudson patch test (mahadev via phunt) - ZOOKEEPER-192. trailing whitespace in config file can cause number format exceptions (phunt via breed) + ZOOKEEPER-192. trailing whitespace in config file can cause number format + exceptions (phunt via breed) - ZOOKEEPER-409. address all findbugs warnings in jute related classes (phunt via breed) + ZOOKEEPER-409. address all findbugs warnings in jute related classes + (phunt via breed) - ZOOKEEPER-416. bookkeeper jar includes unnnecessary files. (flavio via mahadev) + ZOOKEEPER-416. bookkeeper jar includes unnnecessary files. + (flavio via mahadev) + + ZOOKEEPER-419. Reference counting bug in Python bindings causes abort errors + (henry robinson via phunt) IMPROVEMENTS: ZOOKEEPER-308. improve the atomic broadcast performance 3x. Modified: hadoop/zookeeper/trunk/src/contrib/zkpython/src/c/zookeeper.c URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/contrib/zkpython/src/c/zookeeper.c?rev=779716&r1=779715&r2=779716&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/contrib/zkpython/src/c/zookeeper.c (original) +++ hadoop/zookeeper/trunk/src/contrib/zkpython/src/c/zookeeper.c Thu May 28 18:31:15 2009 @@ -190,7 +190,7 @@ pywatcher_t *pyw = (pywatcher_t*)data; PyObject *callback = pyw->callback; gstate = PyGILState_Ensure(); - PyObject *arglist = Py_BuildValue("(i,i,O)", pyw->zhandle,rc, build_stat(stat)); + PyObject *arglist = Py_BuildValue("(i,i,N)", pyw->zhandle,rc, build_stat(stat)); if (PyObject_CallObject((PyObject*)callback, arglist) == NULL) PyErr_Print(); free_pywatcher(pyw); @@ -655,7 +655,7 @@ return NULL; } - return Py_BuildValue("O", build_stat(stat)); + return build_stat(stat); } static PyObject *pyzoo_get(PyObject *self, PyObject *args) @@ -684,7 +684,7 @@ return NULL; } - return Py_BuildValue( "(s#,O)", buffer,buffer_len, stat_dict ); + return Py_BuildValue( "(s#,N)", buffer,buffer_len, stat_dict ); } PyObject *pyzoo_get_acl(PyObject *self, PyObject *args) @@ -703,7 +703,7 @@ } PyObject *pystat = build_stat( &stat ); PyObject *acls = build_acls( &acl ); - return Py_BuildValue( "(O,O)", pystat, acls ); + return Py_BuildValue( "(N,N)", pystat, acls ); } PyObject *pyzoo_set_acl(PyObject *self, PyObject *args)