Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Duplicate
-
None
-
None
-
None
-
None
-
Failed on MacOS. OK on Linux
Description
When client sends a ClientRMProtocol#killApplication to RM, the corresponding AM is supposed to be killed. However, on Mac OS, the AM is still alive (w/o any interruption).
I figured out part of the reason after some debugging. NM starts a AM with command like "/bin/bash -c /path/to/java SampleAM". This command is executed in a process (say with PID 0001), which starts another Java process (say with PID 0002). When NM kills the AM, it send SIGTERM and then SIGKILL to the bash process (PID 0001). In Linux, the death of the bash process (PID 0001) will trigger the kill of the Java process (PID 0002). However, in Mac OS, only the bash process is killed. The Java process is in the wild since then.
Note: on Mac OS, DefaultContainerExecutor is used rather than LinuxContainerExecutor.
Attachments
Issue Links
- duplicates
-
YARN-1754 Container process is not really killed
- Resolved
- is duplicated by
-
YARN-3561 Non-AM Containers continue to run even after AM is stopped
- Resolved
- relates to
-
APEXCORE-608 Streaming Containers use stale RPC proxy after connection is closed
- Closed