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)


Reply via email to