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.