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)