From b8aa91d65097c0609dde811cb730690368d7ab16 Mon Sep 17 00:00:00 2001 From: Graham Dumpleton Date: Tue, 20 Oct 2015 20:51:12 +1100 Subject: Fix post mortem debugger for exception when yielding items or in close(). --- docs/release-notes/version-4.4.20.rst | 7 +++++++ src/server/__init__.py | 4 ++-- 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): -- cgit v1.2.1