[ http://issues.apache.org/jira/browse/MODPYTHON-167?page=all ]
     
Graham Dumpleton resolved MODPYTHON-167:
----------------------------------------

    Fix Version: 3.3
     Resolution: Fixed

> If PythonDebug is On and error occurs, status is 200 when it should really be 
> 500.
> ----------------------------------------------------------------------------------
>
>          Key: MODPYTHON-167
>          URL: http://issues.apache.org/jira/browse/MODPYTHON-167
>      Project: mod_python
>         Type: Bug

>   Components: core
>     Versions: 3.1.4, 3.2.8
>     Reporter: Graham Dumpleton
>     Assignee: 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.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to