SIGTERM 이후에 이 프로세스가 종료되지 않는 이유는 무엇입니까?

SIGTERM 이후에 이 프로세스가 종료되지 않는 이유는 무엇입니까?

중단된 것 같은 프로세스가 있습니다.

프로세스를 다시 시작하려고 하면 시간 초과가 발생합니다.

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

tail -f로그에서 실행을 시도했지만 불행히도 아무것도 나타나지 않습니다. kill -15해당 프로세스 도 시도했지만 여전히 중단됩니다. Top에서는 좀비 프로세스로 표시하지 않습니다.

지난 달에 이런 일이 세 번째로 발생했기 때문에 이 프로세스가 이 상태에 있는 "왜"인지 알아내려고 노력하고 있습니다.

파일 설명자와 시스템 로그를 확인했지만 주목할 만한 내용은 없었습니다.

파일 설명자 =>http://pastebin.com/90rDHhT4
시스템 로그 출력 => http://pastebin.com/xBaMaL9Z

lsof | grep logstash=> 의 출력http://pastebin.com/gsSdPyg5

프로세스에서 strace를 실행해 보았더니 FUTEX_WAIT만 표시됩니다.

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

보내기 전에 제가 할 수 있는 다른 조치가 있나요 kill -9?

고쳐 쓰다

개발자에게 송장을 보냅니다. 문제는 일주일에 한 번 정도 지속됩니다.

https://github.com/elastic/logstash/issues/2992

답변1

이러한 문제를 진단하는 도구는 다음과 같습니다.

  1. lsof. 열린 파일이 나열되며 파일이 보류 중인 네트워크 공유에 있는지 확인할 수 있습니다. 아니면 TCP 연결을 기다리세요. 등.
  2. strace. 어떤 시스템 호출이 걸려 있는지, 또는 실제로 뭔가를 하고 있는지 확인하세요.
  3. 데몬에 있는 디버그 로깅 옵션입니다. 일반적으로 충돌이 발생하기 전에(보통 시작 시) 이러한 옵션을 켜야 합니다.
  4. Rahul이 언급한 소프트웨어 디버깅 도구(Thread Dump gdb또는 jdb기타 관련 도구) . 지금 소프트웨어를 디버깅하고 있지만 결국 원인을 파악해야 할 수도 있습니다.

lsof기본적으로 strace시스템/구성에 문제가 있는지 다시 확인하세요. 그 외에도 소프트웨어 개발자의 도움이 정말로 필요합니다.

편집: 업데이트에 따라 버그를 보고하거나 작성자에게 도움을 요청해야 할 가능성이 높습니다. 주변에 개발자가 없다면 살펴봐도 됩니다.

답변2

종료할 수 없는 프로세스(SIGKILL을 사용하거나 루트에 의해서도)는 프로세스 상태 D("무중단 휴면")에 있을 가능성이 높습니다. 뚜렷한 이유 없이 이 조건이 지속되면 프로그램이 일부 I/O 드라이버의 버그를 유발할 가능성이 높습니다. 재부팅 외에는 할 수 있는 일이 거의 없습니다.

답변3

이것이 도움이 될 것입니다 -http://man7.org/linux/man-pages/man2/futex.2.html

이는 버그일 가능성이 높으며 개발자에게 전달해야 할 수도 있음에 동의합니다.

관련 정보