Hi.

It seems to me that graceful restart doesn't work in mod_fcgid at all.

My configuration:
<IfModule mod_fcgid.c>
    FcgidProcessTableFile /tmp/fcgidshm_aux7
    FcgidIPCDir /tmp/.fcgidsock_aux7
    FcgidMinProcessesPerClass 0
    FcgidIdleTimeout 300
    FcgidIdleScanInterval 1
    FcgidProcessLifeTime 150
    FcgidErrorScanInterval 150
    FcgidFixPathinfo 1
</IfModule>
...
<VirtualHost *>
    <IfModule fcgid_module>
        FcgidWrapper /full/path/to/wrapper .php
        FcgidIOTimeout 150
    </IfModule>
</VirtualHost>

I made a simple script to check my guess:
$ cat sleep.php
<?php sleep (60); echo OK; ?>

Checking without Apache restart:
$ time wget http://test-aux7/sleep.php
--2010-01-12 16:53:08--  http://test-l12-aux7/sleep.php
Resolving test-aux7... 111.222.11.22
Connecting to test-aux7|111.222.11.22|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: `sleep.php'

    [ <=>                                                                       
 ] 2           --.-K/s   in 0s

2010-01-12 16:54:08 (258 KB/s) - `sleep.php' saved

real    1m0.466s
user    0m0.000s
sys     0m0.004s

$ cat sleep.php
OK
Here is everything ok.

Now with graceful restart:
time wget http://test-aux7:80/sleep.php
--2010-01-12 16:57:15--  http://test-aux7:80/sleep.php
Resolving test-aux7... 111.222.11.22
Connecting to test-aux7|111.222.11.22|:80... connected.
HTTP request sent, awaiting response... No data received.
Retrying.

--2010-01-12 16:57:22--  (try: 2)  http://test-aux7:80/sleep.php
Connecting to test-aux7|111.222.11.22|:80... connected.
HTTP request sent, awaiting response...

Here what goes in error_log:
[Tue Jan 12 16:55:27 2010] [emerg] [client 10.0.2.11] (22)Invalid argument: 
mod_fcgid: can't lock process table in pid 4172

-- 
BRGDS. Alexey Vlasov.

Reply via email to