[python-eventlet] update patch to avoid leak of _DummyThread objects
Pádraig Brady
pbrady at fedoraproject.org
Tue Mar 27 12:05:55 UTC 2012
commit 87088d39a48f73a57e46eaf4571873aa01ce28aa
Author: Pádraig Brady <P at draigBrady.com>
Date: Tue Mar 27 12:46:01 2012 +0100
update patch to avoid leak of _DummyThread objects
This update is needed to fix a KeyError on exit under Python 2.7
dummythread_leak.patch | 24 ++++++++++++++++--------
python-eventlet.spec | 12 ++++++++----
2 files changed, 24 insertions(+), 12 deletions(-)
---
diff --git a/dummythread_leak.patch b/dummythread_leak.patch
index fa9fe86..85d2355 100644
--- a/dummythread_leak.patch
+++ b/dummythread_leak.patch
@@ -1,6 +1,6 @@
diff -Naur eventlet-0.9.16.orig/eventlet/green/threading.py eventlet-0.9.16/eventlet/green/threading.py
---- eventlet-0.9.16.orig/eventlet/green/threading.py 2010-06-07 19:15:37.000000000 +0000
-+++ eventlet-0.9.16/eventlet/green/threading.py 2012-03-05 20:08:51.932476383 +0000
+--- eventlet-0.9.16.orig/eventlet/green/threading.py 2012-03-27 11:39:17.557782270 +0000
++++ eventlet-0.9.16/eventlet/green/threading.py 2012-03-27 11:39:42.604113535 +0000
@@ -1,9 +1,16 @@
+"""Implements the standard threading module, using greenthreads."""
from eventlet import patcher
@@ -11,7 +11,7 @@ diff -Naur eventlet-0.9.16.orig/eventlet/green/threading.py eventlet-0.9.16/even
__patched__ = ['_start_new_thread', '_allocate_lock', '_get_ident', '_sleep',
- 'local', 'stack_size', 'Lock']
+ 'local', 'stack_size', 'Lock', 'currentThread',
-+ 'current_thread', '_after_fork']
++ 'current_thread', '_after_fork', '_shutdown']
+
+__orig_threading = patcher.original('threading')
+__threadlocal = __orig_threading.local()
@@ -124,8 +124,8 @@ diff -Naur eventlet-0.9.16.orig/eventlet/green/threading.py eventlet-0.9.16/even
+
+currentThread = current_thread
diff -Naur eventlet-0.9.16.orig/eventlet/patcher.py eventlet-0.9.16/eventlet/patcher.py
---- eventlet-0.9.16.orig/eventlet/patcher.py 2011-04-11 06:56:59.000000000 +0000
-+++ eventlet-0.9.16/eventlet/patcher.py 2012-03-05 20:08:45.749398303 +0000
+--- eventlet-0.9.16.orig/eventlet/patcher.py 2012-03-27 11:39:17.558782283 +0000
++++ eventlet-0.9.16/eventlet/patcher.py 2012-03-27 11:39:35.148014914 +0000
@@ -223,7 +223,6 @@
on.setdefault(modname, default_on)
@@ -171,9 +171,9 @@ diff -Naur eventlet-0.9.16.orig/eventlet/patcher.py eventlet-0.9.16/eventlet/pat
"""Returns True if the given module is monkeypatched currently, False if
not. *module* can be either the module itself or its name.
diff -Naur eventlet-0.9.16.orig/tests/patcher_test.py eventlet-0.9.16/tests/patcher_test.py
---- eventlet-0.9.16.orig/tests/patcher_test.py 2011-02-16 00:59:54.000000000 +0000
-+++ eventlet-0.9.16/tests/patcher_test.py 2012-03-05 20:08:51.933476395 +0000
-@@ -293,5 +293,175 @@
+--- eventlet-0.9.16.orig/tests/patcher_test.py 2012-03-27 11:39:17.560782309 +0000
++++ eventlet-0.9.16/tests/patcher_test.py 2012-03-27 11:39:42.604113535 +0000
+@@ -293,5 +293,183 @@
self.assertEqual(output, "done\n", output)
@@ -267,6 +267,14 @@ diff -Naur eventlet-0.9.16.orig/tests/patcher_test.py eventlet-0.9.16/tests/patc
+ self.assert_(lines[0].startswith('<_GreenThread'), lines[0])
+ self.assertEqual(lines[1], "1", lines[1])
+
++ def test_keyerror(self):
++ new_mod = """import eventlet
++eventlet.monkey_patch()
++"""
++ self.write_to_tempfile("newmod", new_mod)
++ output, lines = self.launch_subprocess('newmod')
++ self.assertEqual(len(lines), 1, "\n".join(lines))
++
+
+class GreenThreadWrapper(ProcessBase):
+ prologue = """import eventlet
diff --git a/python-eventlet.spec b/python-eventlet.spec
index f5b9291..4edaf08 100644
--- a/python-eventlet.spec
+++ b/python-eventlet.spec
@@ -4,7 +4,7 @@
Name: python-eventlet
Version: 0.9.16
-Release: 5%{?dist}
+Release: 6%{?dist}
Summary: Highly concurrent networking library
Group: Development/Libraries
License: MIT
@@ -14,9 +14,10 @@ Source0: http://pypi.python.org/packages/source/e/eventlet/eventlet-%{ver
# From https://bitbucket.org/which_linden/eventlet/issue/89/add-a-timeout-argument-to-subprocesspopen
# Required on RHEL >= 6.1 where python 2.6 has the backported timeout support
Patch1: subprocess_timeout.patch
-# From https://bitbucket.org/jerdfelt/eventlet/changeset/2a02c700f51a/raw/
-# https://bitbucket.org/jerdfelt/eventlet/changeset/55b6de9bd947/raw/
-# https://bitbucket.org/jerdfelt/eventlet/changeset/6603e234fc56/raw/
+# From https://bitbucket.org/which_linden/eventlet/changeset/2a02c700f51a/raw/
+# https://bitbucket.org/which_linden/eventlet/changeset/55b6de9bd947/raw/
+# https://bitbucket.org/which_linden/eventlet/changeset/6603e234fc56/raw/
+# https://bitbucket.org/which_linden/eventlet/changeset/f3fd4562f347/raw/
# To plug _DummyThread leak described at https://bugs.launchpad.net/nova/+bug/903199
Patch2: dummythread_leak.patch
@@ -86,6 +87,9 @@ rm -rf %{buildroot}
%endif
%changelog
+* Tue Mar 27 2012 Pádraig Brady <P at draigBrady.com - 0.9.16-6
+- Update patch to avoid leak of _DummyThread objects
+
* Mon Mar 5 2012 Pádraig Brady <P at draigBrady.com - 0.9.16-5
- Fix patch to avoid leak of _DummyThread objects
More information about the scm-commits
mailing list