New submission from Kier Davis <m...@kierdavis.com>:
## Context ## * Python is executing a script on behalf of a web server (e.g. Apache httpd) following the CGI protocol. * cgitb is enabled and configured to use the 'text' format. * An unhandled exception occurs before any CGI response headers have been emitted. ## Expected behaviour ## A valid response is returned from the CGI script to the web server and ultimately to the client. ## Observed behaviour ## The response is rejected by the web server because it does not begin with a valid CGI header block. [cgi:error] [pid xxxxx] [client xxx.xxx.xxx.xxx:xxxxx] malformed header from script 'web.py': Bad header: <p>A problem occurred in a Pyt Any traceback info included (if display=1) gets discarded and the web server returns its own Internal Server Error response instead. ## Comments ## A valid response is observed if format='html'. This bug only concerns format='text'. The behaviour is the same regardless of whether display=0 or display=1. I imagine this is because cgitb.reset (which emits the headers) is only called when format='html'. We could resolve this by always calling cgitb.reset regardless of the format, or by introducing separate text-format and HTML-format versions of cgitb.reset. I'm happy to prepare a patch if you agree on the approach. ---------- components: Library (Lib) files: repro_cgitb_not_emitting_headers_in_text_mode.py messages: 405198 nosy: kierdavis priority: normal severity: normal status: open title: cgitb does not emit CGI headers when format='text' type: behavior versions: Python 3.10, Python 3.11, Python 3.6, Python 3.7, Python 3.8, Python 3.9 Added file: https://bugs.python.org/file50409/repro_cgitb_not_emitting_headers_in_text_mode.py _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue45650> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com