> On Oct. 12, 2016, 12:54 a.m., Vinod Kone wrote: > > don't quite follow the second para in the description. you say agent is no > > longer in transitioning while re-registering but then you want keep it in > > recovered map which results in the `transitioning()` to return true? am i > > reading it right?
The proposal rule is: reconciliation should ignore the effect of in-progress operations (since they might not succeed). So if an agent was in `recovered` but has not finished reregistration, reconciliation should treat it as `recovered` but not yet `reregistered` -- i.e., it should be `transitioning()` and reconciliation should return no results. So if the agent was recovered from the registry but has not yet finished reregistration, explicit reconciliation will be a no-op; if the agent was marked unreachable but has not yet finished reregistration, explicit reconciliation will return `TASK_UNREACHABLE`. > On Oct. 12, 2016, 12:54 a.m., Vinod Kone wrote: > > src/master/master.cpp, line 1894 > > <https://reviews.apache.org/r/52083/diff/1/?file=1505708#file1505708line1894> > > > > hmm. this means an agent could be in `recovered` map and > > `reregistering` or `markingUnreachable` maps at the same time. didn't we > > decide to not do that? are you still planning to do that cleanup? This is intentional. An agent appears in `recovered` if it has been recovered from the registrar and it has EITHER: (a) completed re-registration, or (b) completed being marked unreachable. The `reregistering` and `markingUnreachable` collections track whether there is an in-progress operation attempting to do (a) or (b), respectively. We only updated `recovered` when the in-progress operation has completed successfully. - Neil ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/52083/#review152239 ----------------------------------------------------------- On Sept. 20, 2016, 3:26 p.m., Neil Conway wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/52083/ > ----------------------------------------------------------- > > (Updated Sept. 20, 2016, 3:26 p.m.) > > > Review request for mesos and Vinod Kone. > > > Bugs: MESOS-6206 > https://issues.apache.org/jira/browse/MESOS-6206 > > > Repository: mesos > > > Description > ------- > > Previously, explicit reconciliation for an agent that was in the process > of reregistering or unregistering returned no results. This degree of > cleverness seems unwarranted: if the agent hasn't completed the > reregistration or unregistration process, it seems quite reasonable for > the master to return the previous state of the agent (this is what the > framework would observe if their reconcile request lost the race with > the reregister/unregister, anyway). > > Note that since reregistering agents are no longer considered to be "in > transition", we need to slightly adjust the rules for how we update the > `slaves.recovered` collection in the master: an agent remains in the > "recovered" collection until it has been marked reachable in the > registry (rather than removing it from "recovered" as soon as the > reregistration process beings). This is more consistent with how we > manage the other collections in the master anyway. > > > Diffs > ----- > > src/master/master.hpp 35db198748b8652eb53e17f592f6b40d1e6a3ed9 > src/master/master.cpp 66a672f6d16233e96b29e330a9e6c474546fa851 > src/tests/master_tests.cpp e6c8362da6a5669e2a2d18f6eb4e454365a84f60 > src/tests/reconciliation_tests.cpp 1412090299df388456f04ed58a1d384ce3ff550a > > Diff: https://reviews.apache.org/r/52083/diff/ > > > Testing > ------- > > `make check` on OSX, Linux. > > > Thanks, > > Neil Conway > >
