WeBWorK Main Forum

Apache2 IO flush error

Apache2 IO flush error

by Jason Aubrey -
Number of replies: 1
Hi All,

I'm getting the apache error below when I try to view problems in the library browser. I've never seen an error like this before. It could be related to the APR::Table error others have been seeing. However, the really strange part is that we have not updated the code since March 28 and it for the most part it worked fine between then and just last week.

I say "for the most part" because we are also seeing what I think are a lot of stray locked apache processes. E.g., just now:

74814 root 1 44 0 107M 103M select 0:33 0.00% httpd
607 root 1 44 0 5920K 3472K select 0:26 0.00% sendmail
80803 www 1 20 0 131M 126M lockf 0:18 0.00% httpd
80806 www 1 4 0 130M 126M kqread 0:16 0.00% httpd
80805 www 1 20 0 129M 125M lockf 0:14 0.00% httpd
80809 www 1 20 0 130M 125M lockf 0:14 0.00% httpd
80811 www 1 20 0 128M 123M lockf 0:13 0.00% httpd
80807 www 1 20 0 129M 124M lockf 0:12 0.00% httpd
80802 www 1 20 0 128M 123M lockf 0:11 0.00% httpd
80810 www 1 20 0 118M 114M lockf 0:08 0.00% httpd

We've had to kill these and restart apache twice due to this phenomenon.

The error message below ends with "Apache2 IO flush: (53) Software caused connection abort at -e line 0". These seem connected; I vaguely hypothesize that a buffer needs flushing, but somehow one of these locked processes is preventing that.

Additional data point: we have been using the webwork webservice quite a bit, and this has ramped up lately. Could it be the cause of these locked httpd processes, which then causes the Apache2 IO flush error? I dunno. Any ideas?

(Error message below).

Thanks,
Jason

[Thu Jun 02 16:49:13 2011] [error] [client 161.130.217.143] [/webwork2/Math_1320_Spring_2011/instructor/sets/] Software caused connection abort at /usr/local/webwork/webwork2/lib/WeBWorK/ContentGenerator/Instructor/ProblemSetList.pm line 2271.\n * in WeBWorK::ContentGenerator::Instructor::ProblemSetList::printTableHTML called at line 549 of /usr/local/webwork/webwork2/lib/WeBWorK/ContentGenerator/Instructor/ProblemSetList.pm\n * in WeBWorK::ContentGenerator::Instructor::ProblemSetList::body called at line 152 of /usr/local/webwork/webwork2/lib/WeBWorK/Template.pm\n * in WeBWorK::Template::template called at line 491 of /usr/local/webwork/webwork2/lib/WeBWorK/ContentGenerator.pm\n * in WeBWorK::ContentGenerator::content called at line 195 of /usr/local/webwork/webwork2/lib/WeBWorK/ContentGenerator.pm\n * in WeBWorK::ContentGenerator::go called at line 353 of /usr/local/webwork/webwork2/lib/WeBWorK.pm
:Apache2 IO flush: (53) Software caused connection abort at -e line 0
In reply to Jason Aubrey

Re: Apache2 IO flush error

by Michael Gage -
I don't think it is from the webservice because in that case I believe you would see WebworkSOAP.pm in the call list.

The line 2271 involves referencing "setTemplate"  which is created by 
my $setTemplate = $self->{setTemplate} = $db->newGlobalSet;
and is used for printing the FIELD names in an html table.

It could be something weird in the database.  or something else.
Since you haven't changed the code the database is perhaps more 
likely.

Hope this helps.

Take care,

Mike