> 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
> 
>

Reply via email to