Author: andrewgodwin
Date: 2011-01-14 17:19:50 -0600 (Fri, 14 Jan 2011)
New Revision: 15206

Modified:
   django/branches/releases/1.2.X/django/core/handlers/wsgi.py
Log:
[1.2.X] Fixed #11193 -- WSGI handler not properly handling lock on error in 
load_middleware. Thanks to Phillip Sitbon.

Backport of [15205] from trunk

Modified: django/branches/releases/1.2.X/django/core/handlers/wsgi.py
===================================================================
--- django/branches/releases/1.2.X/django/core/handlers/wsgi.py 2011-01-14 
23:18:21 UTC (rev 15205)
+++ django/branches/releases/1.2.X/django/core/handlers/wsgi.py 2011-01-14 
23:19:50 UTC (rev 15206)
@@ -225,10 +225,16 @@
         # settings weren't available.
         if self._request_middleware is None:
             self.initLock.acquire()
-            # Check that middleware is still uninitialised.
-            if self._request_middleware is None:
-                self.load_middleware()
-            self.initLock.release()
+            try:
+                # Check that middleware is still uninitialised.
+                if self._request_middleware is None:
+                    self.load_middleware()
+            except:
+                # Unload whatever middleware we got
+                self._request_middleware = None
+                raise
+            finally:
+                self.initLock.release()
 
         set_script_prefix(base.get_script_name(environ))
         signals.request_started.send(sender=self.__class__)

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to django-updates@googlegroups.com.
To unsubscribe from this group, send email to 
django-updates+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en.

Reply via email to