Missing IPCCommTimeout directive causes script installers to fail

Found http://www.planscalendar.com:80/release/plans_8.2.zip in cache ..

Failed to install script : flush_file_lines called on non-loaded file /etc/apache2/sites-available/example.com.conf

Call Stack Trace
File Line Function
/usr/share/webmin/web-lib-funcs.pl 3006 WebminCore::error
/usr/share/webmin/virtual-server/php-lib.pl 417 WebminCore::flush_file_lines
/usr/share/webmin/virtual-server/scripts-lib.pl 2643 virtual_server::set_fcgid_max_execution_time
/usr/share/webmin/virtual-server/script_install.cgi 136 virtual_server::disable_script_php_timeout
(eval 54) 6 (eval)
/usr/share/webmin/miniserv.pl 2306 (eval)
/usr/share/webmin/miniserv.pl 902 miniserv::handle_request
Status: 
Closed (fixed)

Comments

I suspect this is un-related to the plans script installer, and that you would have gotten the same error installing any script.

You may want to run validation on this domain, to see if there are any problems with the Apache configuration. To do this, SSH in as root and run :

virtualmin validate-domains --domain yourdomain.com --all-features

and let us know what it outputs..

All features OK -- but, you're right -- all other scripts did indeed fail on all domains. I tracked it down to an Include line in my Apache config:

Include /etc/apache2/global-fcgid.conf

The contents of that file:

MaxRequestsPerProcess 10000
IPCCommTimeout 3600
IPCConnectTimeout 3600
IdleTimeout 3600
ProcessLifeTime 3600
BusyTimeout 3600

After commenting out the Include line, the installer works. Perhaps the problem is that these directives are depricated? http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html

Where exactly did that line appear in your Apache config file? Was it inside a VirtualHost block, or at the top level?

It was inside both VirtualHost blocks (80 & 443) where the fcgid directives normally are. (It's a workaround for the bug where these directives are always set globally -- which may be resolved by now.)

Ok, I can see how that could cause this problem - Virtualmin expects to be able to modify the IPCCommTimeout on a per-domain basis, but this will break if those directives are moved to a global Include file.

The proper fix is to move the IPCCommTimeout line from /etc/apache2/global-fcgid.conf into each Virtualhost block.

Unfortunately that's not an option, but at least I know how to make the installer work now. Thanks!