Benno Evers created MESOS-9960:
----------------------------------

             Summary: Agent with cgroup support may destroy containers 
belonging to unrelated agents on startup
                 Key: MESOS-9960
                 URL: https://issues.apache.org/jira/browse/MESOS-9960
             Project: Mesos
          Issue Type: Bug
    Affects Versions: master, 1.8.1, 1.9.0
            Reporter: Benno Evers


Let's say I have a mesos cluster with one master and one agent:
{noformat}
$ mesos-master --work_dir=/tmp/mesos-master
$ sudo mesos-agent --work_dir=/tmp/mesos-agent --master=127.0.1.1:5050 
--port=5052 --isolation=docker/runtime
{noformat}

where I'm running a simple sleep task:
{noformat}
$ mesos-execute --command="sleep 10000" --master=127.0.1.1:5050 --name="sleep"
I0904 18:40:25.020413 18321 scheduler.cpp:189] Version: 1.8.0
I0904 18:40:25.020892 18319 scheduler.cpp:342] Using default 'basic' HTTP 
authenticatee
I0904 18:40:25.021039 18323 scheduler.cpp:525] New master detected at 
master@127.0.1.1:5050
Subscribed with ID 7d9f5030-cadd-49df-bf1e-daa97a4baab6-0000
Submitted task 'sleep' to agent 'd59e934c-9e26-490d-9f4a-1e8b4ce06b4e-S1'
Received status update TASK_STARTING for task 'sleep'
  source: SOURCE_EXECUTOR
Received status update TASK_RUNNING for task 'sleep'
  source: SOURCE_EXECUTOR
{noformat}


Next, I start a second agent  on the same host as the first one:
{noformat}
$ sudo ./src/mesos-agent --work_dir=/tmp/yyyy --master=example.org:5050 
--isolation="linux/seccomp" --seccomp_config_dir=`pwd`/3rdparty/libseccomp-2.3.3
{noformat}

During startup, this agent detects the container belonging to the other, 
unrelated agent and will attempt to clean it up:
{noformat}
0904 18:30:44.906430 18067 task_status_update_manager.cpp:207] Recovering task 
status update manager
I0904 18:30:44.906913 18071 containerizer.cpp:797] Recovering Mesos containers
I0904 18:30:44.910077 18070 linux_launcher.cpp:286] Recovering Linux launcher
I0904 18:30:44.910347 18070 linux_launcher.cpp:343] Recovered container 
7f455ed7-6593-41e8-9b29-52ee84d7675b
I0904 18:30:44.910409 18070 linux_launcher.cpp:437] 
7f455ed7-6593-41e8-9b29-52ee84d7675b is a known orphaned container
I0904 18:30:44.910877 18065 containerizer.cpp:1123] Recovering isolators
I0904 18:30:44.911888 18064 containerizer.cpp:1162] Recovering provisioner
I0904 18:30:44.913368 18068 provisioner.cpp:498] Provisioner recovery complete
I0904 18:30:44.913630 18065 containerizer.cpp:1234] Cleaning up orphan 
container 7f455ed7-6593-41e8-9b29-52ee84d7675b
I0904 18:30:44.913656 18065 containerizer.cpp:2576] Destroying container 
7f455ed7-6593-41e8-9b29-52ee84d7675b in RUNNING state
I0904 18:30:44.913666 18065 containerizer.cpp:3278] Transitioning the state of 
container 7f455ed7-6593-41e8-9b29-52ee84d7675b from RUNNING to DESTROYING
I0904 18:30:44.914687 18064 linux_launcher.cpp:576] Asked to destroy container 
7f455ed7-6593-41e8-9b29-52ee84d7675b
I0904 18:30:44.914788 18064 linux_launcher.cpp:618] Destroying cgroup 
'/sys/fs/cgroup/freezer/mesos/7f455ed7-6593-41e8-9b29-52ee84d7675b'
{noformat}


killing the sleep task in the process:
{noformat}
Received status update TASK_FAILED for task 'sleep'
  message: 'Executor terminated'
  source: SOURCE_AGENT
  reason: REASON_EXECUTOR_TERMINATED
{noformat}

After some additional testing, it seems like the value of the `--isolation` 
flag is actually irrelevant: The same behaviour can be observed as long as 
cgroup support is enabled with `--systemd_enable_support`.



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to