You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Guillaume Rossolini <gu...@instantluxe.com> on 2016/12/30 21:13:12 UTC

[users@httpd] Segmentation faults with v2.4.23 and 2.24.25

Hi there,

I've been a long time httpd user and I have taken the habit of building
from source, for a variety of reasons we won't go into here. It has worked
for years, so that's good in my book.

However, the latest v2.4.25 release won't work on my setup and I am not
sure why, nor do I know how I should go about providing the best
information.
This is probably a bug in my setup, or it might be a bug somewhere else. I
did try dbg, but that requires observing the crash when unfortunately I
have no idea what triggers it (as evidenced by the log below, at a time
when I am confident there was no one using that webserver - this is a
backoffice server).

Here's what I usually do:

cd /usr/local/src ; rm -R httpd-2.4.23 ; tar -xjf httpd-2.4.23.tar.bz2
; cd /usr/local/src/httpd-2.4.23
./buildconf --with-apr=/usr/local/src/apr-1.5.2
--with-apr-util=/usr/local/src/apr-util-1.5.4
./configure --prefix=/usr/local/apache2 --with-program-name=apache2
--with-mpm=prefork --disable-cgi --disable-imap --with-ssl --with-pcre
--enable-mods-static="actions alias allowmethods auth-basic
auth-digest authn-core authn-file authz-core authz-host authz-user
autoindex cache deflate dir disk-cache dumpio env expires file-cache
filter headers http http2 include info logio log-config mem-cache mime
nghttp2-staticlib-deps negotiation proxy proxy-fcgi proxy-http rewrite
remoteip setenvif slotmem_shm so socache-shmcb ssl status substitute
unixd"
make && ./apache2 -V && ./apache2 -t -D DUMP_MODULES && ./apache2 -t
-D DUMP_VHOSTS
sudo service apache2 stop && sudo make install && sudo service apache2 start


NB: That's an old script. Since the latest CVE about http2, I add @icing's
patch before building from source. But that's beside the point.

However now with v2.4.25 and after adding php-5.6.29 like I usually do (yes
this is mod_php, another thing we won't go into here), I get segmentation
faults I didn't have until this version.

From /var/log/apache2/error_log:
[Fri Dec 30 06:25:03.376942 2016] [mpm_prefork:notice] [pid 20751] AH00171:
Graceful restart requested, doing restart
[Fri Dec 30 06:25:03.447347 2016] [auth_digest:notice] [pid 20751] AH01757:
generating secret for digest authentication ...
[Fri Dec 30 06:25:03.448732 2016] [lbmethod_heartbeat:notice] [pid 20751]
AH02282: No slotmem from mod_heartmonitor
[Fri Dec 30 06:25:03.458291 2016] [core:emerg] [pid 20751] (17)File exists:
AH00023: Couldn't create the watchdog-callback mutex (file
/usr/local/apache2/logs/watchdog-callback-_proxy_hcheck_.20751)
[Fri Dec 30 06:25:03.458317 2016] [:emerg] [pid 20751] AH00020:
Configuration Failed, exiting

Then when I restart the service:
[Fri Dec 30 09:19:03.211641 2016] [auth_digest:notice] [pid 4467] AH01757:
generating secret for digest authentication ...
[Fri Dec 30 09:19:03.213931 2016] [lbmethod_heartbeat:notice] [pid 4467]
AH02282: No slotmem from mod_heartmonitor
[Fri Dec 30 09:19:03.229142 2016] [core:warn] [pid 4467] AH00098: pid file
/usr/local/apache2/logs/httpd.pid overwritten -- Unclean shutdown of
previous Apache run?
[Fri Dec 30 09:19:03.233277 2016] [mpm_prefork:notice] [pid 4467] AH00163:
Apache/2.4.23 (Unix) OpenSSL/1.0.2j configured -- resuming normal operations
[Fri Dec 30 09:19:03.233304 2016] [core:notice] [pid 4467] AH00094: Command
line: '/usr/local/apache2/bin/apache2'

Now, heartbeat, heartmonitor and watchdog are 3 modules I have never
included in my build before since I don't seem to need them, and they are
not referenced in any of my config files. Though from what I understand,
they seem to be required by v2.4.25? At least, httpd-2.4.25 wouldn't build
or start without them.

The log line "lbmethod_heartbeat:notice" at startup has likely been there
for a number of versions, I honestly haven't noticed and it hasn't been
cause for crashes until now.
What I know for sure is that the "apache2 -t -D DUMP_MODULES" command
didn't show any of those three modules before. What I did notice since
v2.4.25, are the core:emerg log lines which tend to cause httpd to stop
responding to requests. A simple "service apache2 restart" usually does the
trick for a while, then the error comes back and I need to do it again.

This error didn't show up until v2.4.25 in my setup because the three
modules were not required and hence not built.
When I rebuilt and reinstalled v2.4.23 with the same modules, the errors
persisted.
When I removed the three modules from my v2.4.23 build, the errors stopped
happening.

Any help would be appreciated (or pointers to the right channel if this is
not it).

Thanks,