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 5032ea381dd2d532d781ba1d2c9fd3a600e7883a Author: Qian Zhang <[email protected]> AuthorDate: Fri Jul 19 15:06:06 2019 -0700 Added a test `ROOT_NonePrivateIPCModeWithShmSize`. Review: https://reviews.apache.org/r/71121/ --- src/tests/containerizer/isolator_tests.cpp | 49 ++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/src/tests/containerizer/isolator_tests.cpp b/src/tests/containerizer/isolator_tests.cpp index 3d79f23..0cbe0fe 100644 --- a/src/tests/containerizer/isolator_tests.cpp +++ b/src/tests/containerizer/isolator_tests.cpp @@ -1072,6 +1072,55 @@ TEST_F(NamespacesIsolatorTest, ROOT_DisallowShareAgentIPCNamespace) AWAIT_FAILED(launch); } + + +// This test verifies that we do not support specifying container's +// /dev/shm size when its IPC mode is not `PRIVATE`. +TEST_F(NamespacesIsolatorTest, ROOT_NonePrivateIPCModeWithShmSize) +{ + Try<Owned<MesosContainerizer>> containerizer = + createContainerizer("filesystem/linux,namespaces/ipc"); + + ASSERT_SOME(containerizer); + + // Launch a container with a specified /dev/shm size but without + // specifying IPC mode. + ContainerID containerId1; + containerId1.set_value(id::UUID::random().toString()); + + mesos::slave::ContainerConfig containerConfig = createContainerConfig( + None(), + createExecutorInfo("executor", "sleep 1000"), + directory); + + ContainerInfo* container = containerConfig.mutable_container_info(); + container->set_type(ContainerInfo::MESOS); + container->mutable_linux_info()->set_shm_size(128); + + process::Future<Containerizer::LaunchResult> launch = + containerizer.get()->launch( + containerId1, + containerConfig, + std::map<string, string>(), + None()); + + AWAIT_FAILED(launch); + + // Launch another container with a specified /dev/shm size and `SHARE_PARENT` + // IPC mode. + ContainerID containerId2; + containerId2.set_value(id::UUID::random().toString()); + + container->mutable_linux_info()->set_ipc_mode(LinuxInfo::SHARE_PARENT); + + launch = containerizer.get()->launch( + containerId2, + containerConfig, + std::map<string, string>(), + None()); + + AWAIT_FAILED(launch); +} #endif // __linux__ } // namespace tests {
