[
https://issues.apache.org/jira/browse/MESOS-6059?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
haosdent updated MESOS-6059:
----------------------------
Description:
1. {{MesosContainerizer::prepare}} prepare the isolators sequentially. Suppose
we failed in other isolators preparation and have not performed
{{CgroupsIsolator::prepare}}. {{MesosContainerizer::destroy}} would be
performed on those unsuccessful containers in Mesos Agent. And then those
containers are unknown in {{CgroupsIsolator::destroy}}.
2. Suppose we start Mesos Agent with {{\-\-isolation=cgroups/cpu,cgroups/mem}}
and start some containers. And restart Mesos Agent with a new isolation flag
{{\-\-isolation=cgroups/cpu,cgroups/mem,cgroups/perf_event}}. Mesos Agent would
recover those exists containers, only {{cpu}}, {{cpuacct}}, {{memory}}
subsystems could recovered successfully. But when Mesos Agent perform
{{CgroupsIsolator::destroy}} on those exist containers, it would try to clean
up all known subsystems {{cpu}}, {{cpuacct}}, {{memory}}, {{perf_event}}. This
is what the test case
{{MesosContainerizerSlaveRecoveryTest.CGROUPS_ROOT_PERF_RollForward}} do
exactly. So we need to ignore clean up unknown container in {{Subsystem}} level
as well.
was:
1. {{MesosContainerizer::prepare}} prepare the isolators sequentially. Suppose
we failed in other isolators preparation and have not performed
{{CgroupsIsolator::prepare}}. {{MesosContainerizer::destroy}} would be
performed on those unsuccessful containers in Mesos Agent. And then those
containers are unknown in {{CgroupsIsolator::destroy}}.
2. Suppose we start Mesos Agent with {{--isolation=cgroups/cpu,cgroups/mem}}
and start some containers. And restart Mesos Agent with a new isolation flag
{{--isolation=cgroups/cpu,cgroups/mem,cgroups/perf_event}}. Mesos Agent would
recover those exists containers, only {{cpu}}, {{cpuacct}}, {{memory}}
subsystems could recovered successfully. But when Mesos Agent perform
{{CgroupsIsolator::destroy}} on those exist containers, it would try to clean
up all known subsystems {{cpu}}, {{cpuacct}}, {{memory}}, {{perf_event}}. This
is what the test case
{{MesosContainerizerSlaveRecoveryTest.CGROUPS_ROOT_PERF_RollForward}} do
exactly. So we need to ignore clean up unknown container in {{Subsystem}} level
as well.
> Allow clean up unknown container during the clean up phase of the container
> ---------------------------------------------------------------------------
>
> Key: MESOS-6059
> URL: https://issues.apache.org/jira/browse/MESOS-6059
> Project: Mesos
> Issue Type: Bug
> Reporter: haosdent
> Assignee: haosdent
>
> 1. {{MesosContainerizer::prepare}} prepare the isolators sequentially.
> Suppose we failed in other isolators preparation and have not performed
> {{CgroupsIsolator::prepare}}. {{MesosContainerizer::destroy}} would be
> performed on those unsuccessful containers in Mesos Agent. And then those
> containers are unknown in {{CgroupsIsolator::destroy}}.
> 2. Suppose we start Mesos Agent with
> {{\-\-isolation=cgroups/cpu,cgroups/mem}} and start some containers. And
> restart Mesos Agent with a new isolation flag
> {{\-\-isolation=cgroups/cpu,cgroups/mem,cgroups/perf_event}}. Mesos Agent
> would recover those exists containers, only {{cpu}}, {{cpuacct}}, {{memory}}
> subsystems could recovered successfully. But when Mesos Agent perform
> {{CgroupsIsolator::destroy}} on those exist containers, it would try to clean
> up all known subsystems {{cpu}}, {{cpuacct}}, {{memory}}, {{perf_event}}.
> This is what the test case
> {{MesosContainerizerSlaveRecoveryTest.CGROUPS_ROOT_PERF_RollForward}} do
> exactly. So we need to ignore clean up unknown container in {{Subsystem}}
> level as well.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)