[
https://issues.apache.org/jira/browse/MESOS-6785?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Neil Conway updated MESOS-6785:
-------------------------------
Description:
The master crashes with a CHECK failure in the following scenario:
# Framework launches task X on agent A1. The framework may or may not be
partition-aware; let's assume it is not partition-aware.
# A1 becomes partitioned from the master.
# Framework launches task X on agent A2.
# Master fails over.
# Agents A1 and A2 both re-register with the master. Because the master has
failed over, the task on A1 is _not_ terminated ("non-strict registry
semantics").
This results in two running tasks with the same ID, which causes a master
{{CHECK}} failure among other badness:
{noformat}
master.hpp:2299] Check failed: !tasks.contains(task->task_id()) Duplicate task
b88153a2-571a-41e7-9e9b-c297fef4f3cd of framework
eaef1879-8cc9-412f-928d-86c9925a7abb-0000
{noformat}
was:
Duplicate task IDs might occur in two situations with partition-aware
frameworks:
# The agent is partitioned and task X on that agent is marked unreachable. The
framework that proceeds to attempt to launch a new task with id X; the task
launch should fail.
# Same as above except that the master fails over before the task launch
occurs. Because the master doesn't know that there is already a task id X on
the partitioned agent, it cannot reasonably fail the task launch. Hence, when
the agent re-registers, we probably need to kill the task with id X on the
re-registering agent. This is unfortunate, but I'm not sure I see a feasible
alternative.
> CHECK failure on duplicate task IDs
> -----------------------------------
>
> Key: MESOS-6785
> URL: https://issues.apache.org/jira/browse/MESOS-6785
> Project: Mesos
> Issue Type: Bug
> Components: master
> Reporter: Neil Conway
> Assignee: Neil Conway
> Labels: mesosphere
>
> The master crashes with a CHECK failure in the following scenario:
> # Framework launches task X on agent A1. The framework may or may not be
> partition-aware; let's assume it is not partition-aware.
> # A1 becomes partitioned from the master.
> # Framework launches task X on agent A2.
> # Master fails over.
> # Agents A1 and A2 both re-register with the master. Because the master has
> failed over, the task on A1 is _not_ terminated ("non-strict registry
> semantics").
> This results in two running tasks with the same ID, which causes a master
> {{CHECK}} failure among other badness:
> {noformat}
> master.hpp:2299] Check failed: !tasks.contains(task->task_id()) Duplicate
> task b88153a2-571a-41e7-9e9b-c297fef4f3cd of framework
> eaef1879-8cc9-412f-928d-86c9925a7abb-0000
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)