You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Lars Noodén <la...@gmx.com.INVALID> on 2025/06/09 09:36:09 UTC

[users@httpd] mod_fcgid: can't apply process slot

Hello,

I have a FastCGI script working with Apache2 on one system, but seem to 
have missed something while trying to port it over to another system. 
On the new system, the browser takes a long time before finally 
returning a "503 Service Unavailable" message.

When that happens, the log file shows the following errors (indented 
here for readability),

	. . .
	[Mon Jun 09 08:43:34.566447 2025] [fcgid:warn] [pid
	1910852:tid 1910852] [client xx.yy.zz.aa:61458]
	mod_fcgid: can't apply process slot for
	/var/www/example.org/fcgi/x_test-00.fcgi

	[Mon Jun 09 08:43:46.324188 2025] [fcgid:warn] [pid
	1910900:tid 1910900] [client xx.yy.zz.aa:52592]
	mod_fcgid: can't apply process slot for
	/var/www/example.org/fcgi/x_test-00.fcgi
	. . .

The script works fine on its own:

	$ sudo -u www-data REQUEST_METHOD="GET" \
		/var/www/example.org/fcgi/test.fcgi
	Content-Type: text/plain

	Hello, World! 0

I have the following in the Apache2 vhost for that site:

	 . . .
         ScriptAlias /search/query /var/www/example.org/fcgi/test.fcgi
         <Directory /var/www/example.org/fcgi>
                 Options +ExecCGI
                 AddHandler fcgid-script .fcgi

                 Order allow,deny
                 Allow from all
         </Directory>
	 . . .

I have looked at the following for ideas,

	https://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html

I've tried modifying /etc/apache2/mods-available/fcgid.conf to increase 
FcgidMaxProcesses and FcgidMaxProcessesPerClass to various large 
numbers, and then reloading, but to no effect.  That's probably barking 
up the wrong tree, however.

What settings have I missed?

/Lars

---

$ /usr/sbin/apache2ctl -v
Server version: Apache/2.4.62 (Debian)
Server built:   2024-10-04T15:21:08

$ /sbin/a2query -m | sort
access_compat (enabled by maintainer script)
alias (enabled by maintainer script)
auth_basic (enabled by maintainer script)
authn_core (enabled by maintainer script)
authn_file (enabled by maintainer script)
authz_core (enabled by maintainer script)
authz_host (enabled by maintainer script)
authz_user (enabled by maintainer script)
autoindex (enabled by maintainer script)
cache (enabled by site administrator)
deflate (enabled by maintainer script)
dir (enabled by maintainer script)
env (enabled by maintainer script)
evasive (enabled by maintainer script)
fcgid (enabled by maintainer script)
filter (enabled by maintainer script)
headers (enabled by site administrator)
include (enabled by site administrator)
mime (enabled by maintainer script)
mpm_prefork (enabled by maintainer script)
negotiation (enabled by maintainer script)
reqtimeout (enabled by maintainer script)
rewrite (enabled by site administrator)
setenvif (enabled by maintainer script)
socache_shmcb (enabled by site administrator)
ssl (enabled by site administrator)
status (enabled by maintainer script)

$ lsb_release -rd
No LSB modules are available.
Description:    Debian GNU/Linux 12 (bookworm)
Release:        12


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Re: [users@httpd] mod_fcgid: can't apply process slot

Posted by Lars Noodén <la...@gmx.com.INVALID>.
On 6/9/25 12:36, Lars Noodén wrote:
> Hello,
> 
> I have a FastCGI script working with Apache2 on one system, but seem to 
> have missed something while trying to port it over to another system. On 
> the new system, the browser takes a long time before finally returning a 
> "503 Service Unavailable" message.
> 
> When that happens, the log file shows the following errors (indented 
> here for readability),
> 
>      . . .
>      [Mon Jun 09 08:43:34.566447 2025] [fcgid:warn] [pid
>      1910852:tid 1910852] [client xx.yy.zz.aa:61458]
>      mod_fcgid: can't apply process slot for
>      /var/www/example.org/fcgi/x_test-00.fcgi
> 
>      [Mon Jun 09 08:43:46.324188 2025] [fcgid:warn] [pid
>      1910900:tid 1910900] [client xx.yy.zz.aa:52592]
>      mod_fcgid: can't apply process slot for
>      /var/www/example.org/fcgi/x_test-00.fcgi
>      . . .
> 
> The script works fine on its own:
> 
>      $ sudo -u www-data REQUEST_METHOD="GET" \
>          /var/www/example.org/fcgi/test.fcgi
>      Content-Type: text/plain
> 
>      Hello, World! 0
> 
> I have the following in the Apache2 vhost for that site:
> 
>       . . .
>          ScriptAlias /search/query /var/www/example.org/fcgi/test.fcgi
>          <Directory /var/www/example.org/fcgi>
>                  Options +ExecCGI
>                  AddHandler fcgid-script .fcgi
> 
>                  Order allow,deny
>                  Allow from all
>          </Directory>
>       . . .
> 
> I have looked at the following for ideas,
> 
>      https://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html
> 
> I've tried modifying /etc/apache2/mods-available/fcgid.conf to increase 
> FcgidMaxProcesses and FcgidMaxProcessesPerClass to various large 
> numbers, and then reloading, but to no effect.  That's probably barking 
> up the wrong tree, however.
> 
> What settings have I missed?
> 
> /Lars
> 
> ---
> 
> $ /usr/sbin/apache2ctl -v
> Server version: Apache/2.4.62 (Debian)
> Server built:   2024-10-04T15:21:08
> 
> $ /sbin/a2query -m | sort
> access_compat (enabled by maintainer script)
> alias (enabled by maintainer script)
> auth_basic (enabled by maintainer script)
> authn_core (enabled by maintainer script)
> authn_file (enabled by maintainer script)
> authz_core (enabled by maintainer script)
> authz_host (enabled by maintainer script)
> authz_user (enabled by maintainer script)
> autoindex (enabled by maintainer script)
> cache (enabled by site administrator)
> deflate (enabled by maintainer script)
> dir (enabled by maintainer script)
> env (enabled by maintainer script)
> evasive (enabled by maintainer script)
> fcgid (enabled by maintainer script)
> filter (enabled by maintainer script)
> headers (enabled by site administrator)
> include (enabled by site administrator)
> mime (enabled by maintainer script)
> mpm_prefork (enabled by maintainer script)
> negotiation (enabled by maintainer script)
> reqtimeout (enabled by maintainer script)
> rewrite (enabled by site administrator)
> setenvif (enabled by maintainer script)
> socache_shmcb (enabled by site administrator)
> ssl (enabled by site administrator)
> status (enabled by maintainer script)
> 
> $ lsb_release -rd
> No LSB modules are available.
> Description:    Debian GNU/Linux 12 (bookworm)
> Release:        12
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
> For additional commands, e-mail: users-help@httpd.apache.org

Thanks to those who read the first message.

After some adjustments, I started getting the following error instead 
which led to finding a work-around:

[Thu Jun 19 11:25:22.899742 2025] [fcgid:error] [pid 2824873:tid 
2824873] (13)Permission denied: mod_fcgid: couldn't bind unix domain 
socket /var/lib/apache2/fcgid/sock/2824873.59

It turns out that on this other system, Apache2 has a non-default user 
set for that (and another) vhost via the User directive.  A work-around 
seems to be to change the ownership of /var/lib/apache2/fcgid/sock/ from 
the default Apache2 user to the account specified by the User directive 
for that vhost.  This is not a permanent solution because there can be 
more vhosts each with custom User/Group directives, assuming the sockets 
directory persists across reboots.

The sockets directory seems to have been created by the package 
libapache2-mod-fcgid:

$ dpkg -S  /var/lib/apache2/fcgid/sock/
libapache2-mod-fcgid: /var/lib/apache2/fcgid/sock

Perhaps this quirk is a bug in Debian's package for Apache2's fcgi 
module in Debian because it is not reading the vhosts' User/Group 
settings.

In my case those User + Group directives have been set per-vhost in the 
individual vhosts' configuration files while /etc/apache2/envvars still 
contains the default.

$ grep -R  '^User ' /etc/apache2/sites-available/*.conf | wc -l
4

$ grep -R www-data /etc/apache2/
/etc/apache2/envvars:export APACHE_RUN_USER=www-data
/etc/apache2/envvars:export APACHE_RUN_GROUP=www-data

So the installer would have to look in more than just 
/etc/apache2/envvars and the three places which would have to be aware 
of vhost settings are in debian/libapache2-mod-fcgid.postinst, 
debian/rules, or debian/tests/perl.  I'll have to think on it.

Maybe FcgidIPCDir can be set on a per-vhost basis?

/Lars

PS.  Speaking of possible bugs, I notice that the mailing list appends 
the suffix .INVALID to my e-mail address, oddly.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org