Bug 57745 - httpd exits 1 with no stderr when proxy_balancer_module is enabled
Summary: httpd exits 1 with no stderr when proxy_balancer_module is enabled
Status: RESOLVED WORKSFORME
Alias: None
Product: Apache httpd-2
Classification: Unclassified
Component: mod_proxy_balancer (show other bugs)
Version: 2.4.33
Hardware: Macintosh All
: P2 normal (vote)
Target Milestone: ---
Assignee: Apache HTTPD Bugs Mailing List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-03-23 20:05 UTC by john gale
Modified: 2020-06-27 12:04 UTC (History)
2 users (show)



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description john gale 2015-03-23 20:05:00 UTC
httpd exits 1 quickly after launch with no stderr when proxy_balancer_module (and proxy_module) is enabled.  This makes it extremely difficult to determine what the problem is.

In general, I'm trying to enable proxies and use proxy_balancer_module.  However, even though mod_proxy loads fine, whenever I uncomment loading mod_proxy_balancer.so, httpd exits with 1 and no stderr.

Built from source:

apr-1.5.1
apr-util-1.5.4 --with-ldap

httpd-2.4.12:
./configure --prefix=/usr/local/apache2 --enable-mods-shared=all --enable-ldap --enable-auth-ldap --enable-authnz-ldap --enable-ssl --with-ldap --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config

Mostly using the default .conf, the extra module loading is in a different .conf under sites, reproduced below.


ServerRoot "/usr/local/apache2"

Listen 80

LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule reqtimeout_module modules/mod_reqtimeout.so
LoadModule filter_module modules/mod_filter.so
LoadModule mime_module modules/mod_mime.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule env_module modules/mod_env.so
LoadModule headers_module modules/mod_headers.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule version_module modules/mod_version.so
LoadModule unixd_module modules/mod_unixd.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule dir_module modules/mod_dir.so
LoadModule alias_module modules/mod_alias.so

<IfModule unixd_module>
User daemon
Group daemon
</IfModule>

ServerAdmin you@example.com

<Directory />
    AllowOverride none
    Require all denied
</Directory>

DocumentRoot "/usr/local/apache2/htdocs"
<Directory "/usr/local/apache2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

<Files ".ht*">
    Require all denied
</Files>

ErrorLog "logs/error_log"

LogLevel warn

<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common

    <IfModule logio_module>
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>

    CustomLog "logs/access_log" common
</IfModule>

<IfModule alias_module>
    ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"
</IfModule>

<IfModule cgid_module>
</IfModule>

<Directory "/usr/local/apache2/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>

<IfModule mime_module>
    TypesConfig conf/mime.types

    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
</IfModule>

<IfModule proxy_html_module>
Include conf/extra/proxy-html.conf
</IfModule>

<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>

Include /usr/local/apache2/conf/sites/*.conf



### in sites/*.conf:

Listen 443

LoadModule cgid_module modules/mod_cgid.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule ldap_module modules/mod_ldap.so

LoadModule ssl_module modules/mod_ssl.so
LoadModule authn_socache_module modules/mod_authn_socache.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

#LoadModule proxy_html_module modules/mod_proxy_html.so
LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
#LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
#LoadModule proxy_fdpass_module modules/mod_proxy_fdpass.so
#LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_express_module modules/mod_proxy_express.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so


#LoadModule xml2enc_module modules/mod_xml2enc.so


SSLSessionCache        "shmcb:/usr/local/apache2/logs/ssl_scache(512000)"
SSLSessionCacheTimeout  300
Comment 1 Eric Covener 2015-03-23 20:16:40 UTC
maybe the slotmem requirement?
Comment 2 john gale 2015-03-23 20:24:56 UTC
Are you talking about https://bz.apache.org/bugzilla/show_bug.cgi?id=52841

Also, I should have included the debug output:

% sudo /usr/local/apache2/bin/httpd -e debug -X
[Mon Mar 23 12:58:19.743679 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module authn_file_module from /usr/local/apache2/modules/mod_authn_file.so
[Mon Mar 23 12:58:19.744064 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module authn_core_module from /usr/local/apache2/modules/mod_authn_core.so
[Mon Mar 23 12:58:19.744195 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module authz_host_module from /usr/local/apache2/modules/mod_authz_host.so
[Mon Mar 23 12:58:19.744347 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module authz_groupfile_module from /usr/local/apache2/modules/mod_authz_groupfile.so
[Mon Mar 23 12:58:19.744522 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module authz_user_module from /usr/local/apache2/modules/mod_authz_user.so
[Mon Mar 23 12:58:19.744696 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module authz_core_module from /usr/local/apache2/modules/mod_authz_core.so
[Mon Mar 23 12:58:19.744883 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module access_compat_module from /usr/local/apache2/modules/mod_access_compat.so
[Mon Mar 23 12:58:19.745028 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module auth_basic_module from /usr/local/apache2/modules/mod_auth_basic.so
[Mon Mar 23 12:58:19.745202 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module reqtimeout_module from /usr/local/apache2/modules/mod_reqtimeout.so
[Mon Mar 23 12:58:19.745361 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module filter_module from /usr/local/apache2/modules/mod_filter.so
[Mon Mar 23 12:58:19.745530 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module mime_module from /usr/local/apache2/modules/mod_mime.so
[Mon Mar 23 12:58:19.745756 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module log_config_module from /usr/local/apache2/modules/mod_log_config.so
[Mon Mar 23 12:58:19.745903 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module env_module from /usr/local/apache2/modules/mod_env.so
[Mon Mar 23 12:58:19.746089 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module headers_module from /usr/local/apache2/modules/mod_headers.so
[Mon Mar 23 12:58:19.746308 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module setenvif_module from /usr/local/apache2/modules/mod_setenvif.so
[Mon Mar 23 12:58:19.746954 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module version_module from /usr/local/apache2/modules/mod_version.so
[Mon Mar 23 12:58:19.747113 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module unixd_module from /usr/local/apache2/modules/mod_unixd.so
[Mon Mar 23 12:58:19.747306 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module status_module from /usr/local/apache2/modules/mod_status.so
[Mon Mar 23 12:58:19.747522 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module autoindex_module from /usr/local/apache2/modules/mod_autoindex.so
[Mon Mar 23 12:58:19.747770 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module dir_module from /usr/local/apache2/modules/mod_dir.so
[Mon Mar 23 12:58:19.748027 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module alias_module from /usr/local/apache2/modules/mod_alias.so
[Mon Mar 23 12:58:19.749006 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module cgid_module from /usr/local/apache2/modules/mod_cgid.so
[Mon Mar 23 12:58:19.751149 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module authnz_ldap_module from /usr/local/apache2/modules/mod_authnz_ldap.so
[Mon Mar 23 12:58:19.751484 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module ldap_module from /usr/local/apache2/modules/mod_ldap.so
[Mon Mar 23 12:58:19.751981 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module ssl_module from /usr/local/apache2/modules/mod_ssl.so
[Mon Mar 23 12:58:19.752272 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module authn_socache_module from /usr/local/apache2/modules/mod_authn_socache.so
[Mon Mar 23 12:58:19.752421 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module socache_shmcb_module from /usr/local/apache2/modules/mod_socache_shmcb.so
[Mon Mar 23 12:58:19.752845 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module proxy_module from /usr/local/apache2/modules/mod_proxy.so
[Mon Mar 23 12:58:19.753462 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module proxy_http_module from /usr/local/apache2/modules/mod_proxy_http.so
[Mon Mar 23 12:58:19.754041 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module proxy_balancer_module from /usr/local/apache2/modules/mod_proxy_balancer.so
[Mon Mar 23 12:58:19.754179 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module lbmethod_byrequests_module from /usr/local/apache2/modules/mod_lbmethod_byrequests.so
[Mon Mar 23 12:58:19.754305 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module lbmethod_bytraffic_module from /usr/local/apache2/modules/mod_lbmethod_bytraffic.so
[Mon Mar 23 12:58:19.754423 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module lbmethod_bybusyness_module from /usr/local/apache2/modules/mod_lbmethod_bybusyness.so
[Mon Mar 23 12:58:19.754578 2015] [so:debug] [pid 94898:tid 140735259001616] mod_so.c(266): AH01575: loaded module lbmethod_heartbeat_module from /usr/local/apache2/modules/mod_lbmethod_heartbeat.so
% echo $?
1
Comment 3 john gale 2015-03-23 20:29:16 UTC
Yes, adding in these two modules allows httpd to stay alive:

LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
LoadModule slotmem_plain_module modules/mod_slotmem_plain.so

It would be great if a debug / error message could be added to this codepath.  I did not even see the message "Failed to lookup provider 'shm' for 'slotmem': is mod_slotmem_shm loaded??" in the debug log.
Comment 4 Eric Covener 2015-03-24 19:07:59 UTC
I'm not sue why you don't see it. Are you sure you're looking at the main/base error log? I see you didn't attach _any_ erorlog messages.
Comment 5 john gale 2015-03-24 20:34:04 UTC
That's because there are no error log messages when I launch httpd.  When launching automatically through launchd (on Mac OS X) I modified the plist to spit stdout and stderr to a log.  Without including the slotmem modules, loading / starting the launchd plist does not output anything to the stdout or stderr log;  system log shows something like "httpd exited with 1. Relaunching in 10s..."

When running through command line 'sudo httpd -e debug -X', I get some debug module output as pasted above, but no errors as far as I can see.  The individual sites' access and error logs are not populated at all, I'm assuming because httpd never loads fully before exiting.
Comment 6 Eric Covener 2015-03-24 20:39:55 UTC
>  The individual sites' access and error logs are not populated at all

Right, they shouldn't. But the globally defined errorlog should (and does) on other platforms.
Comment 7 Eric Covener 2020-06-27 12:04:54 UTC
[Sat Jun 27 08:04:08.614432 2020] [proxy_balancer:emerg] [pid 402:tid 4437056960] AH01177: Failed to lookup provider 'shm' for 'slotmem': is mod_slotmem_shm loaded??