Como obter um dump principal do apache ao segfaulting

12

Eu segui instruções de vários locais online sobre como obter um dump principal do apache quando ele está produzindo um segfault, mas ele ainda se recusa a gerar o dump.

Eu tenho:

  1. Adicionada a CoreDumpDirectorydiretiva ao httpd.confarquivo e defina-a como/tmp
  2. Executado ulimit -c unlimited
  3. Forneceu o padrão para despejos usando echo '/tmp/core-%e.%p' > /proc/sys/kernel/core_pattern
  4. Também correu echo 0 > /proc/sys/kernel/core_uses_pid

Httpd foi reiniciado, mas ainda não foram criados dumps.

Estou executando o CentOS 5.8 x64 com httpd-2.2.3-65.el5.centos.3ephp-5.3.20-13.el5.art

Qualquer ajuda seria muito apreciada!

chrismcb
fonte
O apache tem permissão para gravar no arquivo especificado na diretiva CoreDumpDirectory? Deve ser de propriedade do apache.
Valentin Bajrami
Eu defini-lo para / tmp que é gravável publicamente, mas vou tentar em outro lugar e dar-lhe a propriedade para apache
chrismcb
Obrigado - isso produziu um despejo, mas não no lugar que eu o coloquei! Eu definir o CoreDumpDirectoryque /tmp/dumpse despejado para /tmp... agora com a depuração
chrismcb
Fico feliz que você tenha entendido!
Valentin Bajrami

Respostas:

7

Minha resposta é esta:

  1. Configure a diretiva da seguinte maneira

    CoreDumpDirectory /tmp/mycoredump

  2. Crie o diretório:

    mkdir -p /tmp/mycoredump

  3. Atribuir propriedade ao diretório www-data ou httpd

    chown -R www-data:www-data /tmp/mycoredump

  4. Defina permissões para:

    chmod 777 /tmp/mycoredump

  5. Reinicie o Apache:

    service apache2 restart

Valentin Bajrami
fonte
Sim, fiz exatamente isso, mas acabou sendo despejado de /tmpqualquer maneira!
Chrismcb
6
Nunca é uma boa idéia para chmod 777nada
sendmoreinfo
1
@sendmoreinfo Mas e se o seu caso de uso estiver tornando algo totalmente modificável e executável para o mundo exterior? ;-)
avgvstvs
8
Você pode dar um tiro no próprio pé, apenas não pregue isso.
sendmoreinfo