From 87088d39a48f73a57e46eaf4571873aa01ce28aa Mon Sep 17 00:00:00 2001 From: Pádraig Brady Date: Mar 27 2012 11:46:01 +0000 Subject: update patch to avoid leak of _DummyThread objects This update is needed to fix a KeyError on exit under Python 2.7 --- 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