#2783: fcgi wrapper shouldn't report "Internal Error" on catching SystemExit
-----------------------------------------------+----------------------------
Reporter: [EMAIL PROTECTED] | Owner: jonas
Type: defect | Status: new
Priority: normal | Milestone:
Component: general | Version: 0.9.3
Severity: normal | Resolution:
Keywords: |
-----------------------------------------------+----------------------------
Old description:
> When trac is run under FastCGI 2.4.2 (with Apache 2.2.0, Python 2.4.2),
> it sometimes prints a traceback at the bottom after rendering pages (see
> below). As far as I can tell this is harmless, it's just that the
> trac.fcgi wrapper is catching all exceptions, including !SystemExit which
> gets throw by sys.exit(). Adding a "except !SystemExit: pass" in
> trac.fcgi gets rid of the tracebacks.
> Perhaps it should check for an exitcode of 0, I'm not sure.
>
> Traceback:
> Oops...
>
> Trac detected an internal error:
>
> 0
>
> Traceback (most recent call last):
> File "/usr/local/share/trac/cgi-bin/trac.fcgi", line 20, in ?
> fcgi_frontend.run()
> File "/usr/local/stow/trac-0.9.3/lib/python2.4/site-
> packages/trac/web/fcgi_frontend.py", line 28, in run
> _fcgi.Server(_handler).run()
> File "/usr/local/stow/trac-0.9.3/lib/python2.4/site-
> packages/trac/web/_fcgi.py", line 1049, in run
> sock = self._setupSocket()
> File "/usr/local/stow/trac-0.9.3/lib/python2.4/site-
> packages/trac/web/_fcgi.py", line 994, in _setupSocket
> req.run()
> File "/usr/local/stow/trac-0.9.3/lib/python2.4/site-
> packages/trac/web/_fcgi.py", line 580, in run
> self._end(appStatus, protocolStatus)
> File "/usr/local/stow/trac-0.9.3/lib/python2.4/site-
> packages/trac/web/_fcgi.py", line 606, in _end
> sys.exit(appStatus)
> SystemExit: 0
New description:
When trac is run under FastCGI 2.4.2 (with Apache 2.2.0, Python 2.4.2), it
sometimes prints a traceback at the bottom after rendering pages (see
below). As far as I can tell this is harmless, it's just that the
trac.fcgi wrapper is catching all exceptions, including !SystemExit which
gets throw by sys.exit(). Adding a "except !SystemExit: pass" in trac.fcgi
gets rid of the tracebacks.
Perhaps it should check for an exitcode of 0, I'm not sure.
Traceback:
{{{
Oops...
Trac detected an internal error:
0
Traceback (most recent call last):
File "/usr/local/share/trac/cgi-bin/trac.fcgi", line 20, in ?
fcgi_frontend.run()
File "/usr/local/stow/trac-0.9.3/lib/python2.4/site-
packages/trac/web/fcgi_frontend.py", line 28, in run
_fcgi.Server(_handler).run()
File "/usr/local/stow/trac-0.9.3/lib/python2.4/site-
packages/trac/web/_fcgi.py", line 1049, in run
sock = self._setupSocket()
File "/usr/local/stow/trac-0.9.3/lib/python2.4/site-
packages/trac/web/_fcgi.py", line 994, in _setupSocket
req.run()
File "/usr/local/stow/trac-0.9.3/lib/python2.4/site-
packages/trac/web/_fcgi.py", line 580, in run
self._end(appStatus, protocolStatus)
File "/usr/local/stow/trac-0.9.3/lib/python2.4/site-
packages/trac/web/_fcgi.py", line 606, in _end
sys.exit(appStatus)
SystemExit: 0
}}}
--
Ticket URL: <http://projects.edgewall.com/trac/ticket/2783>
The Trac Project <http://trac.edgewall.com/>
_______________________________________________
Trac-Tickets mailing list
[email protected]
http://lists.edgewall.com/mailman/listinfo/trac-tickets