[
https://issues.apache.org/jira/browse/MESOS-6245?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Anand Mazumdar updated MESOS-6245:
----------------------------------
Description: It seems that the agent code sets
{{StatusUpdate}}->{{slave_id}} but does not set the
{{TaskStatus}}->{{slave_id}} if it's not already set. On the driver, when we
receive such a status update and if it has explicit ACK enabled, it would pass
the {{TaskStatus}} to the scheduler. But, the scheduler has no way of acking
this update due to {{slave_id}} not being present. Note that, implicit
acknowledgements still work since they use the {{slave_id}} from
{{StatusUpdate}}. Hence, we never noticed this in our tests as all of them use
implicit acknowledgements on the driver. (was: It seems that the driver has an
old check relying on the `PID`. The `PID` is always `UPID()` for HTTP based
executors. If a scheduler is using explicit acknowledgements, it won't ever be
able to acknowledge the update since the driver would clean up the {{uuid}}
field!
Note that all our tests use implicit acknowledgements and we never got around
to catching this issue till Marathon started using the HTTP based executors.)
> Driver based schedulers performing explicit acknowledgements cannot
> acknowledge updates from HTTP based executors.
> ------------------------------------------------------------------------------------------------------------------
>
> Key: MESOS-6245
> URL: https://issues.apache.org/jira/browse/MESOS-6245
> Project: Mesos
> Issue Type: Bug
> Reporter: Anand Mazumdar
> Assignee: Anand Mazumdar
> Labels: mesosphere
> Fix For: 1.1.0, 1.0.2
>
>
> It seems that the agent code sets {{StatusUpdate}}->{{slave_id}} but does not
> set the {{TaskStatus}}->{{slave_id}} if it's not already set. On the driver,
> when we receive such a status update and if it has explicit ACK enabled, it
> would pass the {{TaskStatus}} to the scheduler. But, the scheduler has no way
> of acking this update due to {{slave_id}} not being present. Note that,
> implicit acknowledgements still work since they use the {{slave_id}} from
> {{StatusUpdate}}. Hence, we never noticed this in our tests as all of them
> use implicit acknowledgements on the driver.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)