Details
-
Bug
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
None
-
None
-
None
Description
CommandExecutor launches tasks wrapping them into sh -c. That means signals are sent to the top process—that is sh -c—and not to the task directly. Though SIGTERM is propagated by sh -c down the process tree, if the task is unresponsive to SIGTERM, sh -c terminates reporting success to the CommandExecutor, rendering the task detached from the parent process and still running. Because the CommandExecutor thinks the command terminated normally, its OS process exits normally and may not trigger containerizer's escalation which destroys cgroups.
Here is the test related to the first part: https://gist.github.com/rukletsov/68259dfb02421813f9e6.
Here is the test related to the second part: https://gist.github.com/rukletsov/3f19ecc7389fa51e65c0.
Attachments
Issue Links
- incorporates
-
MESOS-1875 os::killtree() incorrectly returns early if pid has terminated
- Resolved
- is duplicated by
-
MESOS-6933 Executor does not respect grace period
- Accepted