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
__
This is the maintainer address of Debian's Java team
<http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-maintainers>. 
Please use
debian-j...@lists.debian.org for discussions and questions.

Reply via email to