Apache HTTPD - Falha de segmentação ao carregar o módulo mod_jk

1

Acabei de configurar o mod_jk com a instalação do Apache httpd 2.0.52, mas agora, quando tento iniciar o Apache, ele tem uma falha de segmentação. Eu verifiquei que estou usando o mod_jk compilado para 2.0.x .. construído contra a mesma versão que eu tenho, na verdade. Eu também verifiquei que o caminho que estou dando para o LoadModule está correto, e as permissões e a propriedade do arquivo são as mesmas do resto dos módulos. Quando eu removo o comando "LoadModule" para mod_jk do meu httpd.conf, não há falha de segmentação.

Nada aparece nos logs de erro do Apache. Eu tentei reiniciar o servidor com este módulo usando service httpd restart e httpd .

Estas são as últimas linhas retornadas de strace httpd -X :

gettimeofday({1292100295, 434487}, NULL) = 0
socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = -1 EAFNOSUPPORT (Address family not supported by protocol)
socket(PF_NETLINK, SOCK_RAW, 0)         = 3
bind(3, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
getsockname(3, {sa_family=AF_NETLINK, pid=22378, groups=00000000}, [12]) = 0
time(NULL)                              = 1292100295
sendto(3, "
gettimeofday({1292100295, 434487}, NULL) = 0
socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = -1 EAFNOSUPPORT (Address family not supported by protocol)
socket(PF_NETLINK, SOCK_RAW, 0)         = 3
bind(3, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
getsockname(3, {sa_family=AF_NETLINK, pid=22378, groups=00000000}, [12]) = 0
time(NULL)                              = 1292100295
sendto(3, "%pre%%pre%%pre%%pre%72M%pre%%pre%%pre%%pre%%pre%537", 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20
recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"<%pre%%pre%%pre%%pre%%pre%72MjW%pre%%pre%06%pre%%pre%%pre%"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 664
recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"%pre%%pre%%pre%%pre%%pre%72MjW%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 20
close(3)                                = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 3
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Process 22378 detached
%pre%%pre%%pre%72M%pre%%pre%%pre%%pre%%pre%537", 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20 recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"<%pre%%pre%%pre%%pre%%pre%72MjW%pre%%pre%06%pre%%pre%%pre%"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 664 recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"%pre%%pre%%pre%%pre%%pre%72MjW%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 20 close(3) = 0 socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 3 --- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++ Process 22378 detached

Alguém já teve um problema semelhante usando o Apache 2.0.52 com mod_jk? Eu poderia tentar baixar e construir a fonte para o servidor Apache e mod_jk se não houver uma correção para isso.

    
por Jon Gauthier 11.12.2010 / 22:11

1 resposta

2

Este é um mod_jk pré-compilado que você encontrou? Se assim for, então é simples o suficiente para pegar o último código para o mod_jk e compilá-lo, eu suspeito que este é o lugar onde o seu problema é - eu compilei o mod_jk contra o Apache (Red Hat) fornecido pelo vendedor várias vezes sem segfaults. / p>

Verifique se o httpd-devel está instalado (Red Hat / CentOS)

Descompacte o JDK real em algum caminho, como /usr/local/jdk1.6.0_18 /

Pegue a fonte "tomcat-connectors" do tomcat.apache.org e compile:

cd tomcat-connectors-1.2.28-src/native
./configure --with-apxs=/usr/sbin/apxs --with-java=/usr/local/jdk1.6.0_18 --enable-prefork
make
cp apache-2.0/mod_jk.so /etc/httpd/modules/

Seus módulos agora devem funcionar como esperado.

    
por 12.12.2010 / 17:57