Red Hat Bugzilla – Bug 102005
child httpd hangs when cgi prints more than 4096 bytes to stderr
Last modified: 2007-04-18 12:56:45 EDT
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030711
Description of problem:
A CGI (and its parent httpd) hangs while printing long strings with more than
4096 bytes to stderr.
Multiple small strings on printf have the same effect as a single long string in
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. gcc -o /var/www/cgi-bin/apbuf.cgi apbuf.c
2. wget http://localhost/cgi-bin/apbuf.cgi
Actual Results: Both the cgi and its parent httpd hanged.
# strace -p `pidof apbuf.cgi`
write(2, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 4097 <unfinished ...>
# strace -p 22412
poll( <unfinished ...>
(22412 was apbuf.cgi parent)
Even after killing wget with ctrl-c:
Nothing is appended to error_log.
Expected Results: wget should save apbug.cgi file with an "ok",
apache should append a line with 4097 A's to error_log.
Created attachment 93535 [details]
CGI source code
This is a known design issue with mod_cgi in httpd 2.0.x; I'll defer to the
upstream bug, there is no simple fix we can integrate. Thanks for the report.