You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by gr...@apache.org on 2018/02/28 01:03:39 UTC
mesos git commit: Ensured that Docker containerizer returns a failed
Future in one case.
Repository: mesos
Updated Branches:
refs/heads/master 92a508cd4 -> a4805eff5
Ensured that Docker containerizer returns a failed Future in one case.
Because the Docker library did not immediately transition the
Future returned by `inspect()` to DISCARDED, it was safe for the
Docker containerizer to discard this Future before failing the
Promise associated with the Future returned by `launch()`.
However, the introduction of an `onDiscard` callback in
`Docker::inspect()` makes this assumption invalid. This patch
addresses this by failing the Promise before discarding the
Future.
Review: https://reviews.apache.org/r/65743/
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/a4805eff
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/a4805eff
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/a4805eff
Branch: refs/heads/master
Commit: a4805eff5dbef7146f34b239b834a688954991f9
Parents: 92a508c
Author: Greg Mann <gr...@mesosphere.io>
Authored: Tue Feb 27 16:42:10 2018 -0800
Committer: Greg Mann <gr...@gmail.com>
Committed: Tue Feb 27 16:42:10 2018 -0800
----------------------------------------------------------------------
src/slave/containerizer/docker.cpp | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/a4805eff/src/slave/containerizer/docker.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/docker.cpp b/src/slave/containerizer/docker.cpp
index 5136289..1f4eeb4 100644
--- a/src/slave/containerizer/docker.cpp
+++ b/src/slave/containerizer/docker.cpp
@@ -1442,15 +1442,15 @@ Future<Docker::Container> DockerContainerizerProcess::launchExecutorContainer(
run.onAny([=]() mutable {
if (!run.isReady()) {
- inspect.discard();
promise->fail(run.isFailed() ? run.failure() : "discarded");
- } else if (run->isNone()) {
inspect.discard();
+ } else if (run->isNone()) {
promise->fail("Failed to obtain exit status of container");
+ inspect.discard();
} else {
if (!WSUCCEEDED(run->get())) {
- inspect.discard();
promise->fail("Container " + WSTRINGIFY(run->get()));
+ inspect.discard();
}
// TODO(bmahler): Handle the case where the 'run' exits