Apache Mod-Python - Work started: (MODPYTHON-167) If PythonDebug is On and error

This is Interesting: Free IT Magazines  
Home > Archive > Apache Mod-Python > April 2006 > Work started: (MODPYTHON-167) If PythonDebug is On and error





You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

Author Work started: (MODPYTHON-167) If PythonDebug is On and error
Graham Dumpleton (JIRA)

2006-04-24, 8:02 am

[ http://issues.apache.org/jira/brows...ON-167?page=all ]

Work on MODPYTHON-167 started by Graham Dumpleton

> 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.2.8, 3.1.4
> Reporter: Graham Dumpleton
> Assignee: Graham Dumpleton


>
> 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 configu

red 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 (HT

TP_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 req

uired.
> 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)


Sponsored Links






Free braindumps | Software forum | Database administration forum

Copyright 2003 - 2008 webservertalk.com