You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by gi...@apache.org on 2019/07/18 16:19:13 UTC
[mesos] 05/07: Wrapped launcher in `LauncherTracker`.
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 <ab...@mesosphere.com>
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);