Por que este processo não morrerá depois do SIGTERM?

5

Eu tenho um processo que parece estar suspenso.

Quando tento reiniciar o processo, recebo um tempo limite.

service logstash_server stop
timeout: run: logstash_server: (pid 11797) 839061s, want down, got TERM

Eu tentei executar um tail -f nos logs, que infelizmente não mostram nada. Eu também tentei um kill -15 no processo, mas ele ainda está suspenso. Top não mostra isso como um processo zumbi.

Eu gostaria de descobrir "por que" esse processo está nesse estado, já que é a terceira vez que isso acontece no último mês.

Eu verifiquei os descritores de arquivos e o syslog, mas não vejo nada perceptível.

descritores de arquivo = > link
saída do syslog = > link

saída de lsof | grep logstash = > link

Eu tentei executar um strace no processo e ele mostra apenas FUTEX_WAIT

strace -p 11797
Process 11797 attached
futex(0x7f6d95d8e9d0, FUTEX_WAIT, 11811, NULL

Há mais alguma coisa que eu possa fazer antes de emitir um kill -9 ?

Atualizar

Ingresso aberto com desenvolvedores. O problema continua uma vez por semana.

link

    
por spuder 13.04.2015 / 19:12

3 respostas

4

Existem algumas ferramentas para diagnosticar coisas como esta:

  1. %código%. Lista os arquivos abertos, você pode ver se, por exemplo, um está em um compartilhamento de rede suspenso. Ou esperando em uma conexão TCP. Etc.
  2. %código%. Veja o que está acontecendo, ou se está realmente fazendo alguma coisa.
  3. Quaisquer opções de log de depuração que o daemon possui. Normalmente, você precisa ativá-los antes de travar (geralmente ao iniciá-lo).
  4. Ferramentas de depuração de software (como as descrições de thread que o rahul menciona, lsof , strace ou qualquer outra coisa que possa ser relevante). Você está em depuração de software agora, mas no final isso pode ser necessário para descobrir o porquê.

gdb e jdb é basicamente verificar novamente se não há algo quebrado em seu sistema / configuração. Além disso, você realmente precisa da ajuda de um desenvolvedor de software.

edit: De suas atualizações, provavelmente você precisa relatar um bug ou solicitar assistência do (s) autor (es). A menos que você tenha um desenvolvedor por perto, você pode ver isso.

    
por 13.04.2015 / 19:29
2

Um processo que não pode ser eliminado (mesmo com SIGKILL, até mesmo pelo root) é mais provável no estado do processo D ("sono ininterrupto"). Se esta condição persistir por nenhuma razão óbvia, então seu programa certamente desencadeou um erro em algum driver de comunicação. Não há praticamente nada que você possa fazer além de reiniciar.

    
por 18.04.2015 / 00:30
0

Isso pode ser de alguma ajuda - link

Concordou que este é provavelmente um bug e provavelmente deve ser enviado aos desenvolvedores

    
por 16.04.2015 / 03:41

Tags