dvwright has asked for the wisdom of the Perl Monks concerning the following question:
Howdy,
I have some legacy Perl CGI scripts running under mod_perl.
SetHandler perl-script PerlResponseHandler ModPerl::Registry PerlOptions +ParseHeaders Options +ExecCGI
When a application level, Database related Software error occurs, raw SQL gets output to the browser. Basically the same message as found in the error_log. (e.g Software error: Can't execute 'SELECT,.. etc)
The access_log does show this as a HTTP 500 error, however setting ErrorDocument within httpd.conf does not catch it)
In the past I have used CGI::Carp qw(fatalsToBrowser) within a script to catch errors and display a custom message, however in this case there are enough scripts that it would be preferred if I could just define a handler or callback somewhere to capture the output and return the output of my choice. (like how Apache can set ErrorDocument)
I thought maybe I could get at through PerlLogHandler or maybe even subclassing RegistryCooker but it looks like that won't work.
Ideas? it seems like a simple thing I am overlooking.
Apache/2.2.3 mod_perl/2.0.5 CentOS release 5.5 (Final)
Thanks
UPDATE: Turns out I cant use fatalsToBrowser either, currently I'm looking into this: $SIG{__DIE__} Thanks
FINAL UPDATE with solution:
Yes, so the whole point is A. not leaking sensitive details to end users and B. 'save face' in front of customers.
So, the reason why the Apache setting ErrorDocument was not working was because there is also a reverse proxy running. To enable:
ProxyErrorOverride On
Another approach is to write your own PerlResponseHandler (see ModPerl::Registry, basically you subclass ModPerl::RegistryCooker.
my $old_status = $my_rc->{REQ}->status; my $rc = $my_rc->run; if ($rc == 500){ # 500 error occured
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Handle application errors with mod_perl
by jhourcle (Prior) on Feb 07, 2013 at 17:19 UTC | |
by Anonymous Monk on Feb 07, 2013 at 20:58 UTC | |
Re: Handle application errors with mod_perl
by sundialsvc4 (Abbot) on Feb 07, 2013 at 14:19 UTC | |
by Anonymous Monk on Feb 07, 2013 at 14:26 UTC | |
Re: Handle application errors with mod_perl
by sundialsvc4 (Abbot) on Feb 07, 2013 at 20:58 UTC | |
by SuicideJunkie (Vicar) on Feb 07, 2013 at 22:16 UTC | |
by Anonymous Monk on Feb 08, 2013 at 08:37 UTC |