Prefer `at` to `[]` for read-only access to container structs. This was pulled out as an independent sweep from https://reviews.apache.org/r/52056/
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/f73f55c7 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/f73f55c7 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/f73f55c7 Branch: refs/heads/master Commit: f73f55c7219f0cf3bb8a0dc0c106a32ac49b4ad5 Parents: 5bffa49 Author: Benjamin Mahler <bmah...@apache.org> Authored: Wed Sep 21 15:12:53 2016 -0700 Committer: Benjamin Mahler <bmah...@apache.org> Committed: Wed Sep 21 15:55:01 2016 -0700 ---------------------------------------------------------------------- src/slave/containerizer/docker.cpp | 42 ++++++++++---------- src/slave/containerizer/mesos/containerizer.cpp | 42 ++++++++++---------- 2 files changed, 42 insertions(+), 42 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/f73f55c7/src/slave/containerizer/docker.cpp ---------------------------------------------------------------------- diff --git a/src/slave/containerizer/docker.cpp b/src/slave/containerizer/docker.cpp index 2e02943..27a49a2 100644 --- a/src/slave/containerizer/docker.cpp +++ b/src/slave/containerizer/docker.cpp @@ -387,7 +387,7 @@ Future<Nothing> DockerContainerizerProcess::fetch( const SlaveID& slaveId) { CHECK(containers_.contains(containerId)); - Container* container = containers_[containerId]; + Container* container = containers_.at(containerId); return fetcher->fetch( containerId, @@ -406,7 +406,7 @@ Future<Nothing> DockerContainerizerProcess::pull( return Failure("Container is already destroyed"); } - Container* container = containers_[containerId]; + Container* container = containers_.at(containerId); container->state = Container::PULLING; string image = container->image(); @@ -416,7 +416,7 @@ Future<Nothing> DockerContainerizerProcess::pull( image, container->forcePullImage()); - containers_[containerId]->pull = future; + containers_.at(containerId)->pull = future; return future.then(defer(self(), [=]() { VLOG(1) << "Docker pull " << image << " completed"; @@ -558,7 +558,7 @@ Future<Nothing> DockerContainerizerProcess::mountPersistentVolumes( return Failure("Container is already destroyed"); } - Container* container = containers_[containerId]; + Container* container = containers_.at(containerId); container->state = Container::MOUNTING; if (container->task.isNone() && @@ -635,7 +635,7 @@ Try<Nothing> DockerContainerizerProcess::checkpoint( { CHECK(containers_.contains(containerId)); - Container* container = containers_[containerId]; + Container* container = containers_.at(containerId); container->executorPid = pid; @@ -1037,7 +1037,7 @@ Future<bool> DockerContainerizerProcess::launch( return Failure("Container is already destroyed"); } - Container* container = containers_[containerId]; + Container* container = containers_.at(containerId); if (taskInfo.isSome()) { // The built-in command executors explicitly support passing @@ -1086,7 +1086,7 @@ Future<bool> DockerContainerizerProcess::_launch( return Failure("Container is already destroyed"); } - Container* container = containers_[containerId]; + Container* container = containers_.at(containerId); if (HookManager::hooksAvailable()) { HookManager::slavePreLaunchDockerHook( @@ -1182,7 +1182,7 @@ Future<Docker::Container> DockerContainerizerProcess::launchExecutorContainer( return Failure("Container is already destroyed"); } - Container* container = containers_[containerId]; + Container* container = containers_.at(containerId); container->state = Container::RUNNING; return logger->prepare(container->executor, container->directory) @@ -1255,7 +1255,7 @@ Future<pid_t> DockerContainerizerProcess::launchExecutorProcess( return Failure("Container is already destroyed"); } - Container* container = containers_[containerId]; + Container* container = containers_.at(containerId); container->state = Container::RUNNING; // Prepare environment variables for the executor. @@ -1380,7 +1380,7 @@ Future<bool> DockerContainerizerProcess::reapExecutor( // after we set 'status', which we do in this function. CHECK(containers_.contains(containerId)); - Container* container = containers_[containerId]; + Container* container = containers_.at(containerId); // And finally watch for when the container gets reaped. container->status.set(process::reap(pid)); @@ -1404,7 +1404,7 @@ Future<Nothing> DockerContainerizerProcess::update( return Nothing(); } - Container* container = containers_[containerId]; + Container* container = containers_.at(containerId); if (container->state == Container::DESTROYING) { LOG(INFO) << "Ignoring updating container " << containerId @@ -1436,7 +1436,7 @@ Future<Nothing> DockerContainerizerProcess::update( return __update(containerId, _resources, container->pid.get()); } - return docker->inspect(containers_[containerId]->name()) + return docker->inspect(containers_.at(containerId)->name()) .then(defer(self(), &Self::_update, containerId, _resources, lambda::_1)); #else return Nothing(); @@ -1459,7 +1459,7 @@ Future<Nothing> DockerContainerizerProcess::_update( return Nothing(); } - containers_[containerId]->pid = container.pid.get(); + containers_.at(containerId)->pid = container.pid.get(); return __update(containerId, _resources, container.pid.get()); } @@ -1637,7 +1637,7 @@ Future<ResourceStatistics> DockerContainerizerProcess::usage( return Failure("Unknown container: " + stringify(containerId)); } - Container* container = containers_[containerId]; + Container* container = containers_.at(containerId); if (container->state == Container::DESTROYING) { return Failure("Container is being removed: " + stringify(containerId)); @@ -1650,7 +1650,7 @@ Future<ResourceStatistics> DockerContainerizerProcess::usage( return Failure("Container has been destroyed: " + stringify(containerId)); } - Container* container = containers_[containerId]; + Container* container = containers_.at(containerId); if (container->state == Container::DESTROYING) { return Failure("Container is being removed: " + stringify(containerId)); @@ -1698,7 +1698,7 @@ Future<ResourceStatistics> DockerContainerizerProcess::usage( "Container has been destroyed:" + stringify(containerId)); } - Container* container = containers_[containerId]; + Container* container = containers_.at(containerId); // Update the container's pid now. We ran inspect because we didn't have // a pid for the container. @@ -1805,7 +1805,7 @@ void DockerContainerizerProcess::destroy( return; } - Container* container = containers_[containerId]; + Container* container = containers_.at(containerId); if (container->launch.isFailed()) { VLOG(1) << "Container " << containerId << " launch failed"; @@ -1944,7 +1944,7 @@ void DockerContainerizerProcess::_destroy( { CHECK(containers_.contains(containerId)); - Container* container = containers_[containerId]; + Container* container = containers_.at(containerId); CHECK(container->state == Container::DESTROYING); @@ -1981,7 +1981,7 @@ void DockerContainerizerProcess::__destroy( { CHECK(containers_.contains(containerId)); - Container* container = containers_[containerId]; + Container* container = containers_.at(containerId); if (!kill.isReady() && !container->status.future().isReady()) { // TODO(benh): This means we've failed to do a Docker::kill, which @@ -2032,7 +2032,7 @@ void DockerContainerizerProcess::___destroy( << " container " << containerId << ": " << unmount.error(); } - Container* container = containers_[containerId]; + Container* container = containers_.at(containerId); ContainerTermination termination; @@ -2066,7 +2066,7 @@ Future<Nothing> DockerContainerizerProcess::destroyTimeout( LOG(WARNING) << "Docker stop timed out for container " << containerId; - Container* container = containers_[containerId]; + Container* container = containers_.at(containerId); // A hanging `docker stop` could be a problem with docker or even a kernel // bug. Assuming that this is a docker problem, circumventing docker and http://git-wip-us.apache.org/repos/asf/mesos/blob/f73f55c7/src/slave/containerizer/mesos/containerizer.cpp ---------------------------------------------------------------------- diff --git a/src/slave/containerizer/mesos/containerizer.cpp b/src/slave/containerizer/mesos/containerizer.cpp index 01acd70..a6f0d79 100644 --- a/src/slave/containerizer/mesos/containerizer.cpp +++ b/src/slave/containerizer/mesos/containerizer.cpp @@ -938,7 +938,7 @@ Future<Nothing> MesosContainerizerProcess::prepare( return Failure("Container destroyed during provisioning"); } - const Owned<Container>& container = containers_[containerId]; + const Owned<Container>& container = containers_.at(containerId); // Make sure containerizer is not in DESTROYING state, to avoid // a possible race that containerizer is destroying the container @@ -1004,7 +1004,7 @@ Future<Nothing> MesosContainerizerProcess::fetch( return Failure("Container destroyed during isolating"); } - const Owned<Container>& container = containers_[containerId]; + const Owned<Container>& container = containers_.at(containerId); if (container->state == DESTROYING) { return Failure("Container is being destroyed during isolating"); @@ -1047,7 +1047,7 @@ Future<bool> MesosContainerizerProcess::_launch( return Failure("Container destroyed during preparing"); } - const Owned<Container>& container = containers_[containerId]; + const Owned<Container>& container = containers_.at(containerId); if (container->state == DESTROYING) { return Failure("Container is being destroyed during preparing"); @@ -1176,11 +1176,11 @@ Future<bool> MesosContainerizerProcess::_launch( return Failure("Container destroyed during preparing"); } - if (containers_[containerId]->state == DESTROYING) { + if (containers_.at(containerId)->state == DESTROYING) { return Failure("Container is being destroyed during preparing"); } - const Owned<Container>& container = containers_[containerId]; + const Owned<Container>& container = containers_.at(containerId); // Use a pipe to block the child until it's been isolated. // The `pipes` array is captured later in a lambda. @@ -1322,13 +1322,13 @@ Future<bool> MesosContainerizerProcess::isolate( return Failure("Container destroyed during preparing"); } - if (containers_[containerId]->state == DESTROYING) { + if (containers_.at(containerId)->state == DESTROYING) { return Failure("Container is being destroyed during preparing"); } - CHECK_EQ(containers_[containerId]->state, PREPARING); + CHECK_EQ(containers_.at(containerId)->state, PREPARING); - containers_[containerId]->state = ISOLATING; + containers_.at(containerId)->state = ISOLATING; // Set up callbacks for isolator limitations. foreach (const Owned<Isolator>& isolator, isolators) { @@ -1348,7 +1348,7 @@ Future<bool> MesosContainerizerProcess::isolate( // Wait for all isolators to complete. Future<list<Nothing>> future = collect(futures); - containers_[containerId]->isolation = future; + containers_.at(containerId)->isolation = future; return future.then([]() { return true; }); } @@ -1364,11 +1364,11 @@ Future<bool> MesosContainerizerProcess::exec( return Failure("Container destroyed during fetching"); } - if (containers_[containerId]->state == DESTROYING) { + if (containers_.at(containerId)->state == DESTROYING) { return Failure("Container is being destroyed during fetching"); } - CHECK_EQ(containers_[containerId]->state, FETCHING); + CHECK_EQ(containers_.at(containerId)->state, FETCHING); // Now that we've contained the child we can signal it to continue // by writing to the pipe. @@ -1382,7 +1382,7 @@ Future<bool> MesosContainerizerProcess::exec( os::strerror(errno)); } - containers_[containerId]->state = RUNNING; + containers_.at(containerId)->state = RUNNING; return true; } @@ -1429,7 +1429,7 @@ Future<Nothing> MesosContainerizerProcess::update( return Nothing(); } - const Owned<Container>& container = containers_[containerId]; + const Owned<Container>& container = containers_.at(containerId); if (container->state == DESTROYING) { LOG(WARNING) << "Ignoring update for currently being destroyed " @@ -1517,7 +1517,7 @@ Future<ResourceStatistics> MesosContainerizerProcess::usage( .then(lambda::bind( _usage, containerId, - containers_[containerId]->resources, + containers_.at(containerId)->resources, lambda::_1)); } @@ -1567,7 +1567,7 @@ Future<ContainerStatus> MesosContainerizerProcess::status( // MESOS-4671 for more details. VLOG(2) << "Serializing status request for container " << containerId; - return containers_[containerId]->sequence.add<ContainerStatus>( + return containers_.at(containerId)->sequence.add<ContainerStatus>( [=]() -> Future<ContainerStatus> { return await(futures) .then(lambda::bind(_status, containerId, lambda::_1)); @@ -1597,7 +1597,7 @@ void MesosContainerizerProcess::destroy( return; } - const Owned<Container>& container = containers_[containerId]; + const Owned<Container>& container = containers_.at(containerId); if (container->state == DESTROYING) { VLOG(1) << "Destroy has already been initiated for " << containerId; @@ -1690,7 +1690,7 @@ void MesosContainerizerProcess::__destroy( { CHECK(containers_.contains(containerId)); - const Owned<Container>& container = containers_[containerId]; + const Owned<Container>& container = containers_.at(containerId); // Something has gone wrong and the launcher wasn't able to kill all // the processes in the container. We cannot clean up the isolators @@ -1738,7 +1738,7 @@ void MesosContainerizerProcess::____destroy( CHECK_READY(cleanups); CHECK(containers_.contains(containerId)); - const Owned<Container>& container = containers_[containerId]; + const Owned<Container>& container = containers_.at(containerId); // Check cleanup succeeded for all isolators. If not, we'll fail the // container termination and remove the container from the map. @@ -1774,7 +1774,7 @@ void MesosContainerizerProcess::_____destroy( { CHECK(containers_.contains(containerId)); - const Owned<Container>& container = containers_[containerId]; + const Owned<Container>& container = containers_.at(containerId); if (!destroy.isReady()) { container->promise.fail( @@ -1840,7 +1840,7 @@ void MesosContainerizerProcess::limited( const Future<ContainerLimitation>& future) { if (!containers_.contains(containerId) || - containers_[containerId]->state == DESTROYING) { + containers_.at(containerId)->state == DESTROYING) { return; } @@ -1849,7 +1849,7 @@ void MesosContainerizerProcess::limited( << " resource " << future.get().resources() << " and will be terminated"; - containers_[containerId]->limitations.push_back(future.get()); + containers_.at(containerId)->limitations.push_back(future.get()); } else { // TODO(idownes): A discarded future will not be an error when // isolators discard their promises after cleanup.