apache が Segmentation fault で落ちる件。
自作 mod が原因かと思って、すげー悩んでしまっていた件。
[Tue Feb 10 16:42:55 2009] [notice] child pid 19967 exit signal Segmentation fault (11), possible coredump in /tmp [Tue Feb 10 16:42:55 2009] [notice] child pid 19968 exit signal Segmentation fault (11), possible coredump in /tmp [Tue Feb 10 16:42:55 2009] [notice] child pid 19969 exit signal Segmentation fault (11), possible coredump in /tmp ...
と延々出ているのだが、これが原因だった。。。
DSAS開発者の部屋:なぜ apache module を更新すると Segmentation fault するのか
要するに、「動作中は mod の .so ファイルを cp とかで上書きしたらダメ。絶対。」ということなんだけど、mod 開発中なので、デプロイを動作中に気軽にやっていたのだ。
# /usr/local/apache2/bin/apxs -i -a -c mod_q4m.c /usr/local/apr/build-1/libtool --silent --mode=compile gcc -prefer-pic -DFD_SETSIZE=65534 -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -g -O2 -pthread -I/usr/local/apache2/include -I/usr/local/apr/include/apr-1 -I/usr/local/apr-util/include/apr-1 -c -o mod_q4m.lo mod_q4m.c && touch mod_q4m.slo /usr/local/apr/build-1/libtool --silent --mode=link gcc -o mod_q4m.la -rpath /usr/local/apache2/modules -module -avoid-version mod_q4m.lo /usr/local/apache2/build/instdso.sh SH_LIBTOOL='/usr/local/apr/build-1/libtool' mod_q4m.la /usr/local/apache2/modules /usr/local/apr/build-1/libtool --mode=install cp mod_q4m.la /usr/local/apache2/modules/ cp .libs/mod_q4m.so /usr/local/apache2/modules/mod_q4m.so cp .libs/mod_q4m.lai /usr/local/apache2/modules/mod_q4m.la cp .libs/mod_q4m.a /usr/local/apache2/modules/mod_q4m.a chmod 644 /usr/local/apache2/modules/mod_q4m.a ranlib /usr/local/apache2/modules/mod_q4m.a ...
ばっちりと動作中の so に対して cp で上書きしてしまっていた。あたたた。。。