Package: zookeeper Version: 3.3.5+dfsg1-1 Severity: normal Tags: patch User: ubuntu-de...@lists.ubuntu.com 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 <kapil.thangav...@canonical.com> +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