You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mesos.apache.org by "Benjamin Mahler (JIRA)" <ji...@apache.org> on 2013/10/29 04:34:30 UTC

[jira] [Created] (MESOS-783) Master::killTask must not answer with TASK_LOST when the task is unknown.

Benjamin Mahler created MESOS-783:
-------------------------------------

             Summary: Master::killTask must not answer with TASK_LOST when the task is unknown.
                 Key: MESOS-783
                 URL: https://issues.apache.org/jira/browse/MESOS-783
             Project: Mesos
          Issue Type: Bug
    Affects Versions: 0.14.1, 0.14.0, 0.15.0, 0.14.2
            Reporter: Benjamin Mahler
            Assignee: Benjamin Mahler
            Priority: Critical
             Fix For: 0.16.0


When the Master is asked to kill a task and it knows of the framework but it cannot locate the TaskID, the Master replies with TASK_LOST.

This is normally ok, however, consider a failed over Master:
  --> Master fails over.
  --> Framework F re-registers.
  --> Slave with Task T in TASK_RUNNING has not yet re-registered.
  --> Master::killTask(F, T) cannot find T and replies with TASK_LOST.
  --> Slave re-registers with Task T in TASK_RUNNING.
  --> Now we've told the framework the task was LOST but it is left RUNNING.

The simple fix here is to simply not reply in such cases and rely on a later reconciliation request.

In the presence of a stateful master (MESOS-764), we can reliably reply with TASK_LOST if the slave is not in the Registrar, otherwise we must remain silent as the slave will be possibly re-registering with the correct state of the TASK. Ideally we can postpone the kill task message for the slave so that once it re-registers we can send it, but this is a bit complicated to implement and reconciliation can help with this.



--
This message was sent by Atlassian JIRA
(v6.1#6144)