summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGraham Dumpleton <Graham.Dumpleton@gmail.com>2015-10-20 20:51:12 +1100
committerGraham Dumpleton <Graham.Dumpleton@gmail.com>2015-10-20 20:51:12 +1100
commitb8aa91d65097c0609dde811cb730690368d7ab16 (patch)
treeb6904418941815b87946d5fab5de9e10bbc09926
parentb5d4a8d7a086a73dfcdc8cd16c90889fd1792cfe (diff)
downloadmod_wsgi-b8aa91d65097c0609dde811cb730690368d7ab16.tar.gz
Fix post mortem debugger for exception when yielding items or in close().
-rw-r--r--docs/release-notes/version-4.4.20.rst7
-rw-r--r--src/server/__init__.py4
2 files changed, 9 insertions, 2 deletions
diff --git a/docs/release-notes/version-4.4.20.rst b/docs/release-notes/version-4.4.20.rst
index e3da867..5f69c91 100644
--- a/docs/release-notes/version-4.4.20.rst
+++ b/docs/release-notes/version-4.4.20.rst
@@ -9,3 +9,10 @@ Version 4.4.20 of mod_wsgi can be obtained from:
For details on the availability of Windows binaries see:
https://github.com/GrahamDumpleton/mod_wsgi/tree/master/win32
+
+Bugs Fixed
+----------
+
+1. Post mortem debugger would fail if the exception was raised during
+yielding of items from a WSGI application, or inside of any ``close()``
+callable of an iterator returned from the WSGI application.
diff --git a/src/server/__init__.py b/src/server/__init__.py
index 124a692..9df57c1 100644
--- a/src/server/__init__.py
+++ b/src/server/__init__.py
@@ -1117,7 +1117,7 @@ class PostMortemDebugger(object):
for item in self.generator:
yield item
except Exception:
- self.debug_exception()
+ self.run_post_mortem()
raise
def close(self):
@@ -1125,7 +1125,7 @@ class PostMortemDebugger(object):
if hasattr(self.generator, 'close'):
return self.generator.close()
except Exception:
- self.debug_exception()
+ self.run_post_mortem()
raise
class RequestRecorder(object):