Package: zookeeper
Version: 3.3.5+dfsg1-1
Severity: normal
Tags: patch
User: [email protected]
Usertags: origin-ubuntu precise ubuntu-patch
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Dear Maintainer,
In Ubuntu, the attached patch was applied to achieve the following:
* d/patches/fixes/ZOOKEEPER-1431: Fix up memory leak in zookeeper
python binding which results in significant memory growth for large
result sets (LP: #963280). Thanks to Johan Rydberg for identifying
this bug and Kapil Thangavelu for the patch.
Thanks for considering the patch.
- -- System Information:
Debian Release: wheezy/sid
APT prefers precise-updates
APT policy: (500, 'precise-updates'), (500, 'precise-security'), (500,
'precise')
Architecture: amd64 (x86_64)
Kernel: Linux 3.2.0-20-generic (SMP w/8 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
iQIcBAEBCAAGBQJPcabMAAoJEL/srsug59jDNwkP/R4W58mVksVccliIKuIB2Snt
XFRpswLRZNAwpBhiKgYcVyvCQPRGuAb3pPtadmifUTmrmVCyiSVODoILJ+4xTrz2
XSZgKaE9Oxj5aPtZDnTV/mDMX6iIDYe2gjBF3gdQyP8czIHrnaicQSEHbe+O4U+S
ay7ZJT7BBW0J2MWI0wec56FtvtAHA47Azp+1cABDc+cLBCZ1hGwDsHYn3vceOSAf
M4Zn/U2uJUlT5u3P1Sc+QId+nkvP0mWULlPXNHSr4ljjKtdqnCgMMR2XwfGmEIAh
Tw8tjYQUS/MrDj82r8RzUT7sXfLTNlYFlHVQS6aqhsH7FyC3PlHjmzzvVUKDEXow
fo/ebiSOatZGpdIAyKawi6M7W2kLAw4mVazmL0bBFhxpnlOQq718jARbGOkUhzgW
bq8wg7h/J/icMmSBHCLbdxb65wtYd9K4ITHHm4YBsx/JhuaaWnLUEJ+xnLlDQMn6
dHM+b0Rfc9ur7rWTNqBKHoHbAHWfXrtlmeKVVTtEWknR5Zgtd6an8HxTySfukhft
yuj84f5wTlCIX7+U2VjSv888t1fadnw80/29K4Q6uitm4fO+5i54cm1FARn7+kWC
egHD1AvkuWRilktbTNQup+mo89/jXBBXtn1/Di28/gMh+Zs8KksEiQQXA3tZsiLG
6Bzj6Axyrk3JYwkHXkdi
=VCKj
-----END PGP SIGNATURE-----
--- zookeeper-3.3.5+dfsg1/debian/patches/fixes/ZOOKEEPER-1431 1970-01-01 01:00:00.000000000 +0100
+++ zookeeper-3.3.5+dfsg1/debian/patches/fixes/ZOOKEEPER-1431 2012-03-23 17:45:49.000000000 +0000
@@ -0,0 +1,71 @@
+Description: Fix up memory leak for large results set in zk
+ python bindings.
+Author: Kapil Thangavelu <[email protected]>
+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/zookeeper/+bug/963280
+Bug: https://issues.apache.org/jira/browse/ZOOKEEPER-1431
+
+Index: a/src/contrib/zkpython/src/c/zookeeper.c
+===================================================================
+--- a/src/contrib/zkpython/src/c/zookeeper.c (revision 1304459)
++++ b/src/contrib/zkpython/src/c/zookeeper.c (working copy)
+@@ -436,7 +436,8 @@
+ if (PyObject_CallObject((PyObject*)callback, arglist) == NULL) {
+ PyErr_Print();
+ }
+- if (pyw->permanent == 0 && (type != ZOO_SESSION_EVENT || is_unrecoverable(zzh) == ZINVALIDSTATE)) {
++ Py_DECREF(arglist);
++ if (pyw->permanent == 0 && (type != ZOO_SESSION_EVENT || is_unrecoverable(zzh) == ZINVALIDSTATE)) {
+ free_pywatcher(pyw);
+ }
+ PyGILState_Release(gstate);
+@@ -457,6 +458,7 @@
+ PyObject *arglist = Py_BuildValue("(i,i)", pyw->zhandle, rc);
+ if (PyObject_CallObject((PyObject*)callback, arglist) == NULL)
+ PyErr_Print();
++ Py_DECREF(arglist);
+ free_pywatcher(pyw);
+ PyGILState_Release(gstate);
+ }
+@@ -474,9 +476,9 @@
+ PyObject *pystat = build_stat(stat);
+ PyObject *arglist = Py_BuildValue("(i,i,O)", pyw->zhandle,rc, pystat);
+ Py_DECREF(pystat);
+-
+ if (PyObject_CallObject((PyObject*)callback, arglist) == NULL)
+ PyErr_Print();
++ Py_DECREF(arglist);
+ free_pywatcher(pyw);
+ PyGILState_Release(gstate);
+ }
+@@ -498,6 +500,7 @@
+
+ if (PyObject_CallObject((PyObject*)callback, arglist) == NULL)
+ PyErr_Print();
++ Py_DECREF(arglist);
+ free_pywatcher(pyw);
+ PyGILState_Release(gstate);
+ }
+@@ -518,6 +521,7 @@
+ PyObject *arglist = Py_BuildValue("(i,i,O)", pyw->zhandle, rc, pystrings);
+ if (arglist == NULL || PyObject_CallObject((PyObject*)callback, arglist) == NULL)
+ PyErr_Print();
++ Py_DECREF(arglist);
+ }
+ else
+ PyErr_Print();
+@@ -540,6 +544,7 @@
+ PyObject *arglist = Py_BuildValue("(i,i,s)", pyw->zhandle,rc, value);
+ if (PyObject_CallObject((PyObject*)callback, arglist) == NULL)
+ PyErr_Print();
++ Py_DECREF(arglist);
+ free_pywatcher(pyw);
+ PyGILState_Release(gstate);
+ }
+@@ -565,6 +570,7 @@
+ if (PyObject_CallObject((PyObject*)callback, arglist) == NULL) {
+ PyErr_Print();
+ }
++ Py_DECREF(arglist);
+ free_pywatcher(pyw);
+ PyGILState_Release(gstate);
+ }
diff -Nru zookeeper-3.3.5+dfsg1/debian/patches/series zookeeper-3.3.5+dfsg1/debian/patches/series
--- zookeeper-3.3.5+dfsg1/debian/patches/series 2012-03-21 21:23:25.000000000 +0000
+++ zookeeper-3.3.5+dfsg1/debian/patches/series 2012-03-23 17:32:11.000000000 +0000
@@ -5,3 +5,4 @@
fixes/ZOOKEEPER-1033
fixes/ZOOKEEPER-1374
fixes/ZOOKEEPER-1403
+fixes/ZOOKEEPER-1431
__
This is the maintainer address of Debian's Java team
<http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-maintainers>.
Please use
[email protected] for discussions and questions.