Simple, I think, interrupt your CGI process in gdb to determine what
line that hung up on.

Bill

samarjit adhikari wrote:
> Hi  All,
> 
> 
> 
> Problem Description:
> 
> ---------------------
> 
> I have written a cgi script which does 
> 
>  i) fork  and exec a command with the child process
> 
> ii) create pipe 
> 
> to read some data from the child process. The parent process waits untill it 
> reads complete data from the child.
> 
> 
> 
> observation from the packet capture:
> 
> ------------------------------------
> 
>  i) IE is sending GET request with the CGI binary name  in the URL
> 
>        i.e. GET /XXXX/<cgi-binary> say at the time T
> 
> ii) The response came from the server at the time (T+300) sec.
> 
> 
> 
> observation from the "top" command in the server side.
> 
> --------------------------------------------------------
> 
> i)  Immediately the cgi-binary goes into "zimbie" state  consuming 0.3% of 
> the CPU.
> 
> ii) The child process which is being created from the parent cgi-binary goes 
> into "sleeping" state consuming 0.5% of CPU.
> 
> ii) After 300 sec the parent cgi-binary exited and the response sent to the 
> client.
> 
> 
> 
> Which httpd server version was tried:
> 
> --------------------------------------
> 
> The same binary works perfectly in the httpd version 1.3.33.
> 
> The same binary does not work in the httpd version 2.0.48 and 2.0.59
> 
> 
> 
> I am attaching "httpd.conf " for the version 2.0.59.
> 
> 
> 
> Search result on the Web:
> 
> --------------------
> 
> A bug(id 23911) in the apache version 2.0.54 exists due to which a CGI 
> binaries goes into zombie state in some scenario. I have looked in to the 
> following URL
> 
> http://issues.apache.org/bugzilla/show_bug.cgi?id=23911.
> 
> 
> The problem can be reproduced with the sample program also.
> Sample program:
> ----------------------
> #include <stdio.h>
> #include <stdlib.h>
> int main(int argc, char *argv[])
> {
>     int             pid;                    /*child ID*/
>     int             ret_stat;
> 
>     pid=fork();
>     if(pid!=0)      /*PARENT*/
>     {
>         printf("Content-type: text/html\n\n");
>         printf("<html><head></head><body>\n");
>         printf("<h1>PARENTAL ZOMBIES 3</h1>\n");
>         printf("</body></html>\n");
>     }
>     else
>     {               /*CHILD*/
>         sleep(300);
>         exit(0);
>     }
>     return(0);
> }
> 
> I am not sure ,whether it is a configuration issue or any other. Any  pointer 
> on this issue will help me a lot.
> 
> 
> 
> With regards,
> 
> 
> 
> SaMaR
> 
> 
> 
>               
> __________________________________________________________
> Yahoo! India Answers: Share what you know. Learn something new
> http://in.answers.yahoo.com/
> 
> 
> ------------------------------------------------------------------------
> 
> ---------------------------------------------------------------------
> The official User-To-User support forum of the Apache HTTP Server Project.
> See <URL:http://httpd.apache.org/userslist.html> for more info.
> To unsubscribe, e-mail: [EMAIL PROTECTED]
>    "   from the digest: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: [EMAIL PROTECTED]
   "   from the digest: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to