You are viewing a plain text version of this content. The canonical link for it is here.
Posted to apache-bugdb@apache.org by Noel Barber <nb...@amteva.com> on 1997/03/28 20:10:01 UTC
mod_cgi/283: Re-Load of a CGI generated form causes server to hang
>Number: 283
>Category: mod_cgi
>Synopsis: Re-Load of a CGI generated form causes server to hang
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: apache (Apache HTTP Project)
>State: open
>Class: sw-bug
>Submitter-Id: apache
>Arrival-Date: Fri Mar 28 11:10:00 1997
>Originator: nbarber@amteva.com
>Organization:
apache
>Release: 1.1.3
>Environment:
SCO Unix 2.1
Apache 1.1.3
Gnu compiler
Netscape 3.o browser
>Description:
We are running a Tcl CGI that will generate a simple table based report.
The report is always generated successfully when the CGI is called from the submitting forrm. However, when the re-load/refresh button is hit multiple times it will cause the server to hang. The browser seems to behave normally, prompting for a re-post of the form data used by the CGI. However the server hangs with the following error in the erro_log file :
[Fri Feb 21 16:15:12 1997] accept: Protocol error
[Fri Feb 21 16:15:12 1997] - socket error: accept failed
When I do a truss -p on the different server http processes running, they are all sleeping. The output from the truss is:
truss -p 8876
fcntl(5, F_SETLKW, 0x08064390) (sleeping...)
The root process seems to be hung in a loop. The same truss command on the root process returns the following continually until the process is killed:
Received signal #14, SIGALRM, in wait() [caught]
wait() Err#4 EINTR
setcontext(0x0806836C)
lseek(6, 0, 0) = 0
read(6, "06 p\0\001\0\0\0AC "\0\0".., 1200) = 1200
getcontext(0x0806836C)
signal(SIGALRM, 0x0804B860) = SIG_DFL
alarm(1)
The browser will eventually time-out the request, but we have to kill and re-start the server so that we can once again contact the site.
>How-To-Repeat:
I would suggest writing a simple tcl CGI that generates a form from post data, and hitting the re-load command multiple times until it hangs. If you fail to reproduce it I may be able to send you some scripts that will.
>Fix:
Not a clue
>Audit-Trail:
>Unformatted: