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/19 22:06:21 UTC
[mesos] 02/03: Added a test `ROOT_NonePrivateIPCModeWithShmSize`.
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 <zh...@gmail.com>
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 {