This is an automated email from the ASF dual-hosted git repository. gilbert pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/mesos.git
commit 59c2c75d0982385271c3ba86e3cbbf6c21fa7bae Author: Andrei Budnik <[email protected]> AuthorDate: Thu Jul 18 09:10:45 2019 -0700 Wrapped launcher in `LauncherTracker`. This patch wraps a container launcher in instance of `LauncherTracker` class. If the launcher gets stuck in some operation, `pendingFutures` will return the method name along with its arguments such as `containerId`, `pid`, etc. Review: https://reviews.apache.org/r/70891/ --- src/slave/containerizer/mesos/containerizer.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/slave/containerizer/mesos/containerizer.cpp b/src/slave/containerizer/mesos/containerizer.cpp index b4d10a7..6f76527 100644 --- a/src/slave/containerizer/mesos/containerizer.cpp +++ b/src/slave/containerizer/mesos/containerizer.cpp @@ -73,6 +73,7 @@ #include "slave/containerizer/mesos/isolator_tracker.hpp" #include "slave/containerizer/mesos/launch.hpp" #include "slave/containerizer/mesos/launcher.hpp" +#include "slave/containerizer/mesos/launcher_tracker.hpp" #include "slave/containerizer/mesos/paths.hpp" #include "slave/containerizer/mesos/utils.hpp" @@ -316,7 +317,7 @@ Try<MesosContainerizer*> MesosContainerizer::create( LOG(INFO) << "Using isolation " << stringify(isolations.get()); // Create the launcher for the MesosContainerizer. - Try<Launcher*> launcher = [&flags]() -> Try<Launcher*> { + Try<Launcher*> _launcher = [&flags]() -> Try<Launcher*> { #ifdef __linux__ if (flags.launcher == "linux") { return LinuxLauncher::create(flags); @@ -340,8 +341,14 @@ Try<MesosContainerizer*> MesosContainerizer::create( #endif // __linux__ }(); - if (launcher.isError()) { - return Error("Failed to create launcher: " + launcher.error()); + if (_launcher.isError()) { + return Error("Failed to create launcher: " + _launcher.error()); + } + + Owned<Launcher> launcher = Owned<Launcher>(_launcher.get()); + + if (futureTracker != nullptr) { + launcher = Owned<Launcher>(new LauncherTracker(launcher, futureTracker)); } Try<Owned<Provisioner>> _provisioner = @@ -597,7 +604,7 @@ Try<MesosContainerizer*> MesosContainerizer::create( local, fetcher, gc, - Owned<Launcher>(launcher.get()), + launcher, provisioner, isolators, volumeGidManager);
