Benjamin Mahler created MESOS-7865: -------------------------------------- Summary: Agent may process a kill task and still launch the task. Key: MESOS-7865 URL: https://issues.apache.org/jira/browse/MESOS-7865 Project: Mesos Issue Type: Bug Components: agent Reporter: Benjamin Mahler Assignee: Benjamin Mahler
Based on the investigation of MESOS-7744, the agent has a race in which "queued" tasks can still be launched after the agent has processed a kill task for them. This race was introduced when {{Slave::statusUpdate}} was made asynchronous: (1) {{Slave::__run}} completes, task is now within {{Executor::queuedTasks}} (2) {{Slave::killTask}} locates the executor based on the task ID residing in queuedTasks, calls {{Slave::statusUpdate()}} with {{TASK_KILLED}} (3) {{Slave::___run}} assumes that killed tasks have been removed from {{Executor::queuedTasks}}, but this now occurs asynchronously in {{Slave::_statusUpdate}}. So, the executor still sees the queued task and delivers it and adds the task to {{Executor::launchedTasks}}. (3) {{Slave::_statusUpdate}} runs, removes the task from {{Executor::launchedTasks}} and adds it to {{Executor::terminatedTasks}}. -- This message was sent by Atlassian JIRA (v6.4.14#64029)