[
https://issues.apache.org/jira/browse/MODPYTHON-167?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Graham Dumpleton closed MODPYTHON-167.
--------------------------------------
> If PythonDebug is On and error occurs, status is 200 when it should really be
> 500.
> ----------------------------------------------------------------------------------
>
> Key: MODPYTHON-167
> URL: https://issues.apache.org/jira/browse/MODPYTHON-167
> Project: mod_python
> Issue Type: Bug
> Components: core
> Affects Versions: 3.1.4, 3.2.8
> Reporter: Graham Dumpleton
> Assigned To: Graham Dumpleton
> Fix For: 3.3
>
>
> If PythonDebug is Off and an uncaught exception occurs in Python, the details
> of that exception will be logged in the Apache error log file. At the same
> time a 500 (HTTP_INTERNAL_SERVER_ERROR) response is returned to the client
> with whatever the configured default 500 error response message is for Apache.
> If PythonDebug is On, the details are still logged to the error log, but the
> details of the exception will also be formatted and returned in the response
> to the client. In returning this response though, the HTTP status code is
> being returned as 200 (HTTP_OK) rather than the more correct 500
> (HTTP_INTERNAL_SERVER_ERROR).
> By wrongly returning 200 rather than 500, one could theoretically run up
> against problems like the response being cached, or if client was a non
> interactive application, it may think it was an entirely valid response and
> not flag in some way that it was actually an error.
> The change to fix this in the code are as details in following patch. Note
> that returning 500 will still result in the message being displayed in a web
> browser, so for its intended purpose of displaying a traceback to a client,
> it will still work as required.
> Index: lib/python/mod_python/apache.py
> ===================================================================
> --- lib/python/mod_python/apache.py (revision 396453)
> +++ lib/python/mod_python/apache.py (working copy)
> @@ -533,6 +533,7 @@
> return HTTP_INTERNAL_SERVER_ERROR
> else:
> # write to client
> + req.status = HTTP_INTERNAL_SERVER_ERROR
> req.content_type = 'text/html'
>
> s = '\n<pre>\nMod_python error: "%s %s"\n\n' % (phase,
> hname)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.