> On April 8, 2013, 5:18 p.m., Ben Mahler wrote: > > src/slave/slave.hpp, line 240 > > <https://reviews.apache.org/r/10233/diff/1/?file=277031#file277031line240> > > > > Seems odd to have a function called _terminate() that you're calling > > from: > > > > _initialize() > > shutdown() // makes sense > > cleanup(Framework) > > > > Seems counter-intuitive that _terminate() only terminates sometimes, > > and that it's being called in locations that don't seem associated with > > termination.
This is why _terminate(), which would've been called terminateIfNecessary() in Java world, is called from multiple locations. _initialize(): This is essentially end of recovery. If slave was started in cleanup mode and we didn't recover any frameworks, we want to terminate the slave. shutdown(): This I think is obvious cleanup(Framework) Every time this function is called, a framework could potentially be removed from frameworks struct. Now, if there are no frameworks and the slave is being shutdown or in cleanup mode, the slave should terminate. I agree that its not very intuitive and I am open to suggestions (regarding renaming the function(s), or the abstractions we have). - Vinod ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/10233/#review18783 ----------------------------------------------------------- On April 2, 2013, 2:04 a.m., Vinod Kone wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/10233/ > ----------------------------------------------------------- > > (Updated April 2, 2013, 2:04 a.m.) > > > Review request for mesos, Benjamin Hindman and Ben Mahler. > > > Description > ------- > > See summary. > > The main crux is two fold > > 1) Shutdown a slave after all executors have terminated > 2) Delete the "latest" symlink under /path/to/meta/slaves/ to make sure a > shutdown slave comes up as new slave when restarted. > > I had to refactor cleanup(), because turns out there are quite a few edge > cases to guard against. > > > Diffs > ----- > > src/slave/process_isolator.cpp 210ea10ad97e08c7a303249da97e70b438dfe11d > src/slave/slave.hpp 2529bf500a3265b10ad4cddde10c2d62a6cdb4a0 > src/slave/slave.cpp 325231458a6883019436e7cc5a37f85f0f5735fa > src/slave/state.cpp e5c32257978d8407535e05ed73f8a50bdc2f651d > src/tests/slave_recovery_tests.cpp 47f9b0f215af2fb9bc300e0c92535b6f91afa5cd > > Diff: https://reviews.apache.org/r/10233/diff/ > > > Testing > ------- > > make check > > sudo GLOG_v=1 ./bin/mesos-tests.sh --gtest_filter="*ShutdownSlave*" --verbose > --gtest_repeat=100 --gtest_break_on_failure > > > Thanks, > > Vinod Kone > >
