mesos-reviews mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jay Buffington">
Subject Re: Review Request 33249: Send statusUpdate to scheduler on containerizer launch failure
Date Thu, 07 May 2015 16:17:41 GMT

This is an automatically generated e-mail. To reply, visit:

(Updated May 7, 2015, 9:17 a.m.)

Review request for mesos, Benjamin Hindman, Jie Yu, and Timothy Chen.

Bugs: MESOS-2020 and MESOS-2656

Repository: mesos

Description (updated)

Send statusUpdate to scheduler on containerizer launch failure

This review is actually for three commits.  The three commits are separated out
on github here:

Commit #1:
docker-no-executor-framework example should send ContainerInfo

docker-no-executor-framework stopped working when the protobuf message
changed during development.  Apparently noone noticed because we don't
run it as part of our test suite.  I used it to develop a fix for
proper error reporting, so I fixed it.

Commit #2:
serialize wait and destroy in containerizer

Containerizers keep track of all the containers they have created.  When
a container is destroy()'ed the containerizer removes the container from
its internal hashmap.  This means that wait() must be called before the
container is destroyed.

When the docker containerizer fails because of a "docker pull" or
"docker run" failure, we end up with a race condition where wait() does
not properly return the Termination, so we ended up with a default
failure message of "Abnormal Executor Termination" which isn't very

This commit solves this issue by not destroying the container until
after wait is called in the failure case.

Fixes MESOS-2656

Commit #3:
send scheduler containerizer launch failure errors

If a method in the launch sequence returns a failure the error message
wasn't making it back to the scheduler.

Fixes MESOS-2020

Diffs (updated)

  src/examples/docker_no_executor_framework.cpp d5385d9295d30a6039bab9938f3270006582d3da 
  src/slave/containerizer/containerizer.hpp 56c088abb036aa26c323c3142fd27ea29ed51d4f 
  src/slave/containerizer/docker.hpp b25ec55bf3cd30d6e8a804d09d90c632a7d12e3f 
  src/slave/containerizer/docker.cpp f9fc89ad7e3c853c3f9f6dcf9aa68e54dc1888c6 
  src/slave/containerizer/mesos/containerizer.hpp 5e5f13ed8a71ff9510b40b6032d00fd16d312622

  src/slave/containerizer/mesos/containerizer.cpp f2587280dc0e1d566d2b856a80358c7b3896c603

  src/slave/slave.cpp c78ee3c9e7fc38ad364e83f4abe267e86bfbbc13 


Testing (updated)

I used examples/docker_no_executor_framework.cpp and make check


Jay Buffington

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message