I have been getting some strange error on my system lately, so I took
the time to completely upgrade my server last night to see of I could
fix the problem with new updates. First thing this morning the errors
re-surfaced.
The error I'm getting is
:Apache2 IO flush: (103) Software caused connection abort at
/pathtosite/admin.sd line 1136,
Admin.sd is mine and is a mod_perl file. It uses some basic modules
use CGI qw/:standard/;
use CGI::Cookie;
use CGI::Compress::Gzip;
use Time::Local;
use MIME::Lite;
use CGI::Lite;
I have added use Apache::DBI; to my startup.pl file so that mod_perl
maintains the persistent connection to my database. I have a single
database on the server. My website with all it's mod_perl files create
approx. 20 connections to the MySql Server.
I currently have the following installed.
Apache/2.0.54 (Unix) mod_ssl/2.0.54 OpenSSL/0.9.7a PHP/5.0.4
mod_perl/2.0.1 Perl/v5.8.7
My website also runs under an https connection. It's mandatory to
connect to the site.
Now, about the error, at line 1136 of admin.sd is this line.
print $html;
And that's it. All the files creating the error say the problem line in
the file is a line which prints the output of the cgi.
My cgi's do a lot of mysql queries, open a template, build a page, and
output the page in a single print command. print $html;
My os is "Fedora Core release 2 (Tettnang)"
This is all the info I can think of to provide context for my errors.
If anyone has any ideas, I'll try them.
One more thing, the errors happen at a low ratio to successful
requests. So much so, I've only gotten one of my testers to produce the
error. I have never been able to do it. And the tester said nothing
appeared wrong on the screen. No internal server error, just appears as
a normal successful page request.
Everytime I see the errors come in, I call my clients and ask if
they've seen any errors. I normally get a no to that question, and twice
I've heard white pages being returned. Could have been many other things
though. I think the errors on behind the scenes.
The only reason I know about them is because if this
ErrorDocument 400 /error.osn
ErrorDocument 401 /error.osn
ErrorDocument 403 /error.osn
ErrorDocument 404 /error.osn
ErrorDocument 405 /error.osn
ErrorDocument 408 /error.osn
ErrorDocument 410 /error.osn
ErrorDocument 411 /error.osn
ErrorDocument 412 /error.osn
ErrorDocument 413 /error.osn
ErrorDocument 414 /error.osn
ErrorDocument 415 /error.osn
ErrorDocument 500 /error.osn
ErrorDocument 501 /error.osn
ErrorDocument 502 /error.osn
ErrorDocument 503 /error.osn
ErrorDocument 506 /error.osn
The osn file is a standard perl file which emails me the %ENV values.
So I can quickly take care of the error.
The problem is, the :Apache2 IO flush: error is getting reported, but
the user see's no error. error.osn should present an html page stating
the error was reported and will be taken care of. Instead the page
successfully renders and send me an error. Sending an email when no
error is presented to the user also slows that request.
Can anyone help? If not, I'm going to open a bug report to Apache.
Thanks,
Tony