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/

Attachment: httpd.conf
Description: Binary data

---------------------------------------------------------------------
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