-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/23912/
-----------------------------------------------------------
(Updated July 24, 2014, 6:01 p.m.)
Review request for mesos.
Changes
-------
Fixed some broken indentation.
Bugs: MESOS-947
https://issues.apache.org/jira/browse/MESOS-947
Repository: mesos-git
Description
-------
Fixes MESOS-947 "Slave should properly handle a killTask() that arrives between
runTask() and _runTask()".
Slave::killTask() did not check for task in question combination to be
"pending" (i.e. Slave::runTask had happened, but Slave::_runTask had not yet)
and then erroneously assumed that Slave::runTask() had not been executed. The
task was then marked "LOST" instead of "KILLED". But Slave::runTask had already
scheduled Slave::_runTask to follow. Now the entry for being "pending" is
removed, and the task is marked "KILLED", and _runTask gets informed about
this. It checks whether the task in question is currently "pending" and if it
is not, then it infers that the task has been killed and does not erroneously
try to complete launching it.
Diffs (updated)
-----
src/slave/slave.hpp a896bb6
src/slave/slave.cpp 1d56918
src/tests/mesos.hpp 75c66fd
src/tests/mesos.cpp 35c94fa
src/tests/slave_tests.cpp e45255a
Diff: https://reviews.apache.org/r/23912/diff/
Testing
-------
Wrote a unit test that reliably created the situation described in the ticket.
Observed that TASK_LOST and the listed log output occurred. This pointed
directly to the lines in killTask() where the problem is rooted. Ran the test
after fixing, it succeeded. Checked the log. It looks like a "clean kill" now
:-)
Thanks,
Bernd Mathiske