"httpd: Configuration error: More than one MPM loaded" after upgrade to AlmaLinux 8.6

Snapped the Foreman server and tried to upgrade the OS from AlmaLinux 8.5 to 8.6 and got hit with this error from the httpd service:

[root@foreman conf.modules.d]# systemctl status httpd.service
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Fri 2022-05-13 13:12:47 UTC; 5min ago
     Docs: man:httpd.service(8)
  Process: 3826 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
 Main PID: 3826 (code=exited, status=1/FAILURE)

May 13 13:12:47 foreman.example.com httpd[3826]: [Fri May 13 13:12:47.747127 2022] [so:warn] [pid 3826] AH01574: module proxy_module is already loaded, skipping
May 13 13:12:47 foreman.example.com httpd[3826]: [Fri May 13 13:12:47.747928 2022] [so:warn] [pid 3826] AH01574: module proxy_http_module is already loaded, skipping
May 13 13:12:47 foreman.example.com httpd[3826]: [Fri May 13 13:12:47.748179 2022] [so:warn] [pid 3826] AH01574: module proxy_wstunnel_module is already loaded, skipping
May 13 13:12:47 foreman.example.com httpd[3826]: [Fri May 13 13:12:47.748200 2022] [so:warn] [pid 3826] AH01574: module ssl_module is already loaded, skipping
May 13 13:12:47 foreman.example.com httpd[3826]: [Fri May 13 13:12:47.748217 2022] [so:warn] [pid 3826] AH01574: module systemd_module is already loaded, skipping
May 13 13:12:47 foreman.example.com httpd[3826]: [Fri May 13 13:12:47.790411 2022] [so:warn] [pid 3826] AH01574: module cgi_module is already loaded, skipping
May 13 13:12:47 foreman.example.com httpd[3826]: AH00534: httpd: Configuration error: More than one MPM loaded.
May 13 13:12:47 foreman.example.com systemd[1]: httpd.service: Main process exited, code=exited, status=1/FAILURE
May 13 13:12:47 foreman.example.com systemd[1]: httpd.service: Failed with result 'exit-code'.
May 13 13:12:47 foreman.example.com systemd[1]: Failed to start The Apache HTTP Server.

Not super into httpd but suspect the configurations in /etc/httpd/conf.modules.d
Looked here and see some strange things
Some new files (assume from new 8.6):

-rw-r--r--. 1 root root   57 May 10 11:07 10-proxy_h2.conf
-rw-r--r--. 1 root root   45 May 10 11:07 10-h2.conf
-rw-r--r--. 1 root root  451 May 10 11:59 01-cgi.conf
-rw-r--r--. 1 root root   88 May 10 11:59 00-systemd.conf
-rw-r--r--. 1 root root   41 May 10 11:59 00-ssl.conf
-rw-r--r--. 1 root root 1073 May 10 11:59 00-proxy.conf
-rw-r--r--. 1 root root  787 May 10 11:59 00-optional.conf
-rw-r--r--. 1 root root  948 May 10 11:59 00-mpm.conf
-rw-r--r--. 1 root root   41 May 10 11:59 00-lua.conf
-rw-r--r--. 1 root root  139 May 10 11:59 00-dav.conf
-rw-r--r--. 1 root root 3311 May 10 11:59 00-base.conf
-rw-r--r--. 1 root root  496 May 10 12:07 README

Looked at the module proxy_module and indeed there are two lines coming from two different files:

[root@foreman conf.modules.d]# grep proxy_module *
00-proxy.conf:LoadModule proxy_module modules/mod_proxy.so
proxy.load:LoadModule proxy_module modules/mod_proxy.so

So for some reason I got some duplicate conf files starting with 00-. Anyone know what is going on here?
On Foreman 3.2, Katello 4.4.

1 Like

For me it helped to let foreman-installer reconfigure httpd again:

# foreman-maintain service stop
# foreman-installer

After that everything was working again.

1 Like

Indeed the installer cleaned up the /etc/httpd/conf.modules.d directory. All those files starting with a 10, 01 and 00 are now gone and httpd started up normally.
I was just about to move those files manually when I seen your post, thanks. :slight_smile:
Sorta odd those files got created anyway, seen no warnings from the upgrade of the httpd package during the upgrade.

It’s not odd. It’s expected. foreman-installer removes those files which are part of the rpm. This means after each update of httpd those files get created again. Missing configuration files are restored during an rpm update.

So the problem is rather, that foreman-installer should not remove those files but instead either simply erase the content and leave empty files behind or better modify existing files to its needs.

This is one of the reasons why I actually stop foreman and run foreman-installer pretty much after any update on the server which may involve some components of foreman…