I missed the fact that mesos-go is an executor driver implementation and it doesn't have any bearing with the project maintained C++ executor driver library.
Looking at the go driver code, looks like the driver does a `stop()` when it gets a shutdown message from the agent. This will likely cause the driver and the executor to exit immediately. This is different <https://github.com/apache/mesos/blob/master/src/exec/exec.cpp#L428> from how the C++ driver responds to the shutdown message. Also, since you are using a 3rd party library, I would recommend asking questions about it on the project's mailing list or opening up Issues in GitHub. Thanks, Vinod On Fri, Jul 21, 2017 at 4:37 PM, Zhu Jiamin <jiamin.zhu...@gmail.com> wrote: > I enabled glog of mesos driver. Log below for scenario — sequence as > follows: > > 1) shutdown slave > 2) monitor agent status in mesos until it shows as “LOST” > 3) start slave back up > 4) Logs below from executor driver code: https://github.com/mesos/ > mesos-go/blob/master/api/v0/executor/executor.go#L484-L501 < > https://github.com/mesos/mesos-go/blob/master/api/v0/ > executor/executor.go#L484-L501> > > I0721 22:20:20.007127 27249 executor.go:377] Executor driver reconnect > I0721 22:20:20.007156 27249 executor.go:387] Received reconnect request > from slave &SlaveID{Value:*7716ab68-bf95-4fd6-9d07-aa3fd4a65349-S9,XXX_ > unrecognized:[],} > I0721 22:20:20.008659 27249 executor.go:340] Executor driver reregistered > I0721 22:20:20.008674 27249 executor.go:351] Re-registered on slave > &SlaveID{Value:*7716ab68-bf95-4fd6-9d07-aa3fd4a65349-S9,XXX_ > unrecognized:[],} > I0721 22:20:20.008704 27249 main.go:52] Re-registered Executor on slave > I0721 22:20:22.988835 27249 executor.go:509] Executor driver received > shutdown > I0721 22:20:22.988854 27249 executor.go:516] Executor driver is asked to > shutdown > I0721 22:20:22.988878 27249 executor.go:602] Stopping the executor driver > I0721 22:20:22.988885 27249 messenger.go:295] stopping messenger > executor(1)@127.0.0.1:52644.. > I0721 22:20:22.988896 27249 http_transporter.go:447] stopping HTTP > transport > > > > I also put a sleep in Shutdown callback: https://github.com/mesos/ > mesos-go/blob/master/api/v0/examples/executor/main.go#L110 < > https://github.com/mesos/mesos-go/blob/master/api/v0/ > examples/executor/main.go#L110> > > However, I expected Shutdown callback getting invoked but don’t see in > logs.. it seems likely that executor got terminated abruptly. May be abort > or stop is invoked prior to shutdown?. > > Would you verify behavior from your end for this scenario.. > > > > Thanks, > Jiamin > > > > > > > > > > On Jul 18, 2017, at 5:42 PM, Zhu Jiamin <jiamin.zhu...@gmail.com> wrote: > > > > mesos-go executor driver calls driver.stop() after invoking shutdown of > executor > > > > // this is from mesos-go executor driver > > driver.withExecutor(func(e Executor) { e.Shutdown(driver) }) > > driver.stop() > > > > So executor should print log firstly then exit since driver stop happen > after invoking shutdown. > > > > Will try to enable GLOG and come back to you. > > > > Many thanks, > > Jiamin > > > > > > > > > > > >> On Jul 18, 2017, at 5:24 PM, Vinod Kone <vinodk...@apache.org <mailto: > vinodk...@apache.org>> wrote: > >> > >> On Tue, Jul 18, 2017 at 2:11 PM, Zhu Jiamin <jiamin.zhu...@gmail.com > <mailto:jiamin.zhu...@gmail.com>> wrote: > >> > >>> 2017/07/18 20:49:19 Stop driver > >>> > >> > >> Am I reading this correctly that mesos-go executor calls `stop()` on the > >> driver? Do you know if it calls it when it gets a `shutdown()`? If yes, > >> that would explain the behavior. > >> > >> Looking at the driver code, looks like when it gets a shutdown message > from > >> the agent the shutdown grace period should be respected. The only way a > >> driver would terminate early is if an executor called `stop()` or > `abort()` > >> in the interim. > >> > >> Is there any way you could set `GLOG_v=1` in the environment of your > >> executor so that driver logs get output? That would make debugging this > >> much easier. > > > >