Abrt pode ajudar a coletar informações sobre problemas de processo

0

Nós temos um sistema (Red Hat Enterprise Linux Server versão 6.6) onde ocasionalmente vemos processos Java suspensos (transformações xalan ou fop).

Esses processos apenas ficam lá e nunca são concluídos

Em / var / log / messages eu encontro entradas como essa

abrt[33580]: Saved core dump of pid 48556 (/usr/bin/jdk1.6.0_06/bin/java) to /var/spool/abrt/ccpp-2017-06-01-08:52:40-48556 (341344256 bytes)
abrtd: Directory 'ccpp-2017-06-01-08:52:40-48556' creation detected
abrtd: Executable '/usr/bin/jdk1.6.0_06/bin/java' doesn't belong to any package and ProcessUnpackaged is set to 'no'
abrtd: 'post-create' on '/var/spool/abrt/ccpp-2017-06-01-08:52:40-48556' exited with 1
abrtd: Deleting problem directory '/var/spool/abrt/ccpp-2017-06-01-08:52:40-48556'
  • Pode ser usado para coletar informações extras sobre os problemas?
  • É útil alterar o ProcessUnpackaged para sim?
por carl verbiest 07.06.2017 / 10:29

1 resposta

1

Se o processo for aborted ou tiver coredump , ele não estará mais na memória. Portanto, se você acha que um processo está suspenso, obtenha o pid do processo e execute o seguinte:

strace -fp <pid> -o strace.out - pode ser útil para apontar a chamada do sistema na qual o processo pode estar travado (consulte o arquivo de saída strace.out).

pstree -aAp <pid> - mostra a atual linha de execução do programa.

/usr/bin/gdb -q -p <pid> -- to see the current state of the process.

Se você tiver o coredump disponível, poderá usar gdb para analisá-lo.

/usr/bin/gdb <java_binary_path> <coredump_path>

E no gdb console use:

(gdb) bt

(gdb) thread apply all bt

    
por 07.06.2017 / 11:18

Tags