Used ChildHooks in Mesos [2/2]. We now use the new ChildHooks instead of explicit options such as setsid.
Review: https://reviews.apache.org/r/45492/ Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/059f47bf Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/059f47bf Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/059f47bf Branch: refs/heads/master Commit: 059f47bfe82c2c589cefbf0bcab131697cb0d9f9 Parents: 5ce0e46 Author: Joerg Schad <jo...@mesosphere.io> Authored: Wed Sep 21 09:50:19 2016 -0700 Committer: Jie Yu <yujie....@gmail.com> Committed: Wed Sep 21 09:50:19 2016 -0700 ---------------------------------------------------------------------- src/docker/docker.cpp | 3 --- src/health-check/health_checker.cpp | 5 ----- src/launcher/posix/executor.cpp | 8 +++++--- src/linux/perf.cpp | 3 +-- src/slave/container_loggers/lib_logrotate.cpp | 2 -- src/slave/containerizer/docker.cpp | 4 ++-- src/slave/containerizer/fetcher.cpp | 1 - .../mesos/isolators/docker/volume/driver.cpp | 11 ++++------- .../containerizer/mesos/isolators/network/cni/cni.cpp | 4 ---- .../mesos/isolators/network/port_mapping.cpp | 2 -- src/slave/containerizer/mesos/isolators/posix/disk.cpp | 4 +--- src/slave/containerizer/mesos/launcher.cpp | 4 ++-- src/slave/containerizer/mesos/linux_launcher.cpp | 4 ++-- src/tests/containerizer/capabilities_tests.cpp | 2 -- src/tests/containerizer/launch_tests.cpp | 1 - src/tests/containerizer/ns_tests.cpp | 1 - src/tests/containerizer/port_mapping_tests.cpp | 1 - 17 files changed, 17 insertions(+), 43 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/059f47bf/src/docker/docker.cpp ---------------------------------------------------------------------- diff --git a/src/docker/docker.cpp b/src/docker/docker.cpp index 49a1b2f..7c38123 100755 --- a/src/docker/docker.cpp +++ b/src/docker/docker.cpp @@ -822,7 +822,6 @@ Future<Option<int>> Docker::run( Subprocess::PATH("/dev/null"), _stdout, _stderr, - NO_SETSID, nullptr, environment); @@ -1266,7 +1265,6 @@ Future<Docker::Image> Docker::pull( Subprocess::PATH("/dev/null"), Subprocess::PIPE(), Subprocess::PIPE(), - NO_SETSID, nullptr); if (s.isError()) { @@ -1393,7 +1391,6 @@ Future<Docker::Image> Docker::__pull( Subprocess::PATH("/dev/null"), Subprocess::PIPE(), Subprocess::PIPE(), - NO_SETSID, nullptr, environment); http://git-wip-us.apache.org/repos/asf/mesos/blob/059f47bf/src/health-check/health_checker.cpp ---------------------------------------------------------------------- diff --git a/src/health-check/health_checker.cpp b/src/health-check/health_checker.cpp index 8beb99c..758cbb3 100644 --- a/src/health-check/health_checker.cpp +++ b/src/health-check/health_checker.cpp @@ -55,7 +55,6 @@ using process::delay; using process::Clock; using process::Failure; using process::Future; -using process::NO_SETSID; using process::Owned; using process::Promise; using process::Subprocess; @@ -311,7 +310,6 @@ Future<Nothing> HealthCheckerProcess::_commandHealthCheck() Subprocess::PATH("/dev/null"), Subprocess::FD(STDERR_FILENO), Subprocess::FD(STDERR_FILENO), - NO_SETSID, environment, clone); } else { @@ -330,7 +328,6 @@ Future<Nothing> HealthCheckerProcess::_commandHealthCheck() Subprocess::PATH("/dev/null"), Subprocess::FD(STDERR_FILENO), Subprocess::FD(STDERR_FILENO), - NO_SETSID, nullptr, environment, clone); @@ -404,7 +401,6 @@ Future<Nothing> HealthCheckerProcess::_httpHealthCheck() Subprocess::PATH("/dev/null"), Subprocess::PIPE(), Subprocess::PIPE(), - NO_SETSID, nullptr, None(), clone); @@ -516,7 +512,6 @@ Future<Nothing> HealthCheckerProcess::_tcpHealthCheck() Subprocess::PATH("/dev/null"), Subprocess::PIPE(), Subprocess::PIPE(), - NO_SETSID, nullptr, None(), clone); http://git-wip-us.apache.org/repos/asf/mesos/blob/059f47bf/src/launcher/posix/executor.cpp ---------------------------------------------------------------------- diff --git a/src/launcher/posix/executor.cpp b/src/launcher/posix/executor.cpp index 7c40ebe..a606b13 100644 --- a/src/launcher/posix/executor.cpp +++ b/src/launcher/posix/executor.cpp @@ -37,7 +37,6 @@ namespace fs = mesos::internal::fs; #endif -using process::SETSID; using process::Subprocess; using std::cout; @@ -115,8 +114,11 @@ pid_t launchTaskPosix( Subprocess::FD(STDIN_FILENO), Subprocess::FD(STDOUT_FILENO), Subprocess::FD(STDERR_FILENO), - SETSID, - &launchFlags); + &launchFlags, + None(), + None(), + Subprocess::Hook::None(), + {Subprocess::ChildHook::SETSID()}); if (s.isError()) { ABORT("Failed to launch '" + commandString + "': " + s.error()); http://git-wip-us.apache.org/repos/asf/mesos/blob/059f47bf/src/linux/perf.cpp ---------------------------------------------------------------------- diff --git a/src/linux/perf.cpp b/src/linux/perf.cpp index 16a30ea..d5fa3ff 100644 --- a/src/linux/perf.cpp +++ b/src/linux/perf.cpp @@ -132,12 +132,11 @@ private: Subprocess::PIPE(), Subprocess::PIPE(), Subprocess::PIPE(), - NO_SETSID, nullptr, None(), None(), Subprocess::Hook::None(), - None(), + Subprocess::ChildHook::None(), MONITOR); if (_perf.isError()) { http://git-wip-us.apache.org/repos/asf/mesos/blob/059f47bf/src/slave/container_loggers/lib_logrotate.cpp ---------------------------------------------------------------------- diff --git a/src/slave/container_loggers/lib_logrotate.cpp b/src/slave/container_loggers/lib_logrotate.cpp index 1c170e5..e975ad8 100644 --- a/src/slave/container_loggers/lib_logrotate.cpp +++ b/src/slave/container_loggers/lib_logrotate.cpp @@ -189,7 +189,6 @@ public: Subprocess::FD(outfds.read, Subprocess::IO::OWNED), Subprocess::PATH("/dev/null"), Subprocess::FD(STDERR_FILENO), - NO_SETSID, &outFlags, environment, None(), @@ -236,7 +235,6 @@ public: Subprocess::FD(errfds.read, Subprocess::IO::OWNED), Subprocess::PATH("/dev/null"), Subprocess::FD(STDERR_FILENO), - NO_SETSID, &errFlags, environment, None(), http://git-wip-us.apache.org/repos/asf/mesos/blob/059f47bf/src/slave/containerizer/docker.cpp ---------------------------------------------------------------------- diff --git a/src/slave/containerizer/docker.cpp b/src/slave/containerizer/docker.cpp index a47e2ed..ac4a019 100644 --- a/src/slave/containerizer/docker.cpp +++ b/src/slave/containerizer/docker.cpp @@ -1331,12 +1331,12 @@ Future<pid_t> DockerContainerizerProcess::launchExecutorProcess( Subprocess::PIPE(), subprocessInfo.out, subprocessInfo.err, - SETSID, &launchFlags, environment, None(), parentHooks, - container->directory); + {Subprocess::ChildHook::SETSID(), + Subprocess::ChildHook::CHDIR(container->directory)}); if (s.isError()) { return Failure("Failed to fork executor: " + s.error()); http://git-wip-us.apache.org/repos/asf/mesos/blob/059f47bf/src/slave/containerizer/fetcher.cpp ---------------------------------------------------------------------- diff --git a/src/slave/containerizer/fetcher.cpp b/src/slave/containerizer/fetcher.cpp index 4d3fc52..11104d6 100644 --- a/src/slave/containerizer/fetcher.cpp +++ b/src/slave/containerizer/fetcher.cpp @@ -826,7 +826,6 @@ Future<Nothing> FetcherProcess::run( Subprocess::PIPE(), Subprocess::FD(out.get(), Subprocess::IO::OWNED), Subprocess::FD(err.get(), Subprocess::IO::OWNED), - NO_SETSID, environment); if (fetcherSubprocess.isError()) { http://git-wip-us.apache.org/repos/asf/mesos/blob/059f47bf/src/slave/containerizer/mesos/isolators/docker/volume/driver.cpp ---------------------------------------------------------------------- diff --git a/src/slave/containerizer/mesos/isolators/docker/volume/driver.cpp b/src/slave/containerizer/mesos/isolators/docker/volume/driver.cpp index 2b2c6cf..4d10913 100644 --- a/src/slave/containerizer/mesos/isolators/docker/volume/driver.cpp +++ b/src/slave/containerizer/mesos/isolators/docker/volume/driver.cpp @@ -37,7 +37,6 @@ using std::vector; using process::Failure; using process::Future; using process::MONITOR; -using process::NO_SETSID; using process::Owned; using process::Subprocess; @@ -90,12 +89,11 @@ Future<string> DriverClient::mount( Subprocess::PATH("/dev/null"), Subprocess::PIPE(), Subprocess::PIPE(), - NO_SETSID, nullptr, None(), None(), - {}, - None(), + Subprocess::Hook::None(), + Subprocess::ChildHook::None(), MONITOR); if (s.isError()) { @@ -176,12 +174,11 @@ Future<Nothing> DriverClient::unmount( Subprocess::PATH("/dev/null"), Subprocess::PIPE(), Subprocess::PIPE(), - NO_SETSID, nullptr, None(), None(), - {}, - None(), + Subprocess::Hook::None(), + Subprocess::ChildHook::None(), MONITOR); if (s.isError()) { http://git-wip-us.apache.org/repos/asf/mesos/blob/059f47bf/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp ---------------------------------------------------------------------- diff --git a/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp b/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp index 3594790..2cd8911 100644 --- a/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp +++ b/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp @@ -48,7 +48,6 @@ using std::vector; using process::Failure; using process::Future; -using process::NO_SETSID; using process::Owned; using process::PID; using process::Subprocess; @@ -876,7 +875,6 @@ Future<Nothing> NetworkCniIsolatorProcess::__isolate( Subprocess::PATH("/dev/null"), Subprocess::PATH("/dev/null"), Subprocess::PIPE(), - NO_SETSID, &setup.flags); if (s.isError()) { @@ -1038,7 +1036,6 @@ Future<Nothing> NetworkCniIsolatorProcess::attach( Subprocess::PATH(networkConfigPath), Subprocess::PIPE(), Subprocess::PATH("/dev/null"), - NO_SETSID, nullptr, environment); @@ -1336,7 +1333,6 @@ Future<Nothing> NetworkCniIsolatorProcess::detach( Subprocess::PATH(networkConfigPath), Subprocess::PIPE(), Subprocess::PATH("/dev/null"), - NO_SETSID, nullptr, environment); http://git-wip-us.apache.org/repos/asf/mesos/blob/059f47bf/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp ---------------------------------------------------------------------- diff --git a/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp b/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp index 55a06cf..01355a1 100644 --- a/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp +++ b/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp @@ -3081,7 +3081,6 @@ Future<Nothing> PortMappingIsolatorProcess::update( Subprocess::PATH("/dev/null"), Subprocess::FD(STDOUT_FILENO), Subprocess::FD(STDERR_FILENO), - NO_SETSID, &update.flags); if (s.isError()) { @@ -3208,7 +3207,6 @@ Future<ResourceStatistics> PortMappingIsolatorProcess::usage( Subprocess::PATH("/dev/null"), Subprocess::PIPE(), Subprocess::FD(STDERR_FILENO), - NO_SETSID, &statistics.flags); if (s.isError()) { http://git-wip-us.apache.org/repos/asf/mesos/blob/059f47bf/src/slave/containerizer/mesos/isolators/posix/disk.cpp ---------------------------------------------------------------------- diff --git a/src/slave/containerizer/mesos/isolators/posix/disk.cpp b/src/slave/containerizer/mesos/isolators/posix/disk.cpp index 3f49b9f..5c5f7a3 100644 --- a/src/slave/containerizer/mesos/isolators/posix/disk.cpp +++ b/src/slave/containerizer/mesos/isolators/posix/disk.cpp @@ -59,7 +59,6 @@ using std::vector; using process::Failure; using process::Future; using process::MONITOR; -using process::NO_SETSID; using process::Owned; using process::PID; using process::Process; @@ -547,12 +546,11 @@ private: Subprocess::PATH("/dev/null"), Subprocess::PIPE(), Subprocess::PIPE(), - NO_SETSID, nullptr, None(), None(), Subprocess::Hook::None(), - None(), + Subprocess::ChildHook::None(), MONITOR); if (s.isError()) { http://git-wip-us.apache.org/repos/asf/mesos/blob/059f47bf/src/slave/containerizer/mesos/launcher.cpp ---------------------------------------------------------------------- diff --git a/src/slave/containerizer/mesos/launcher.cpp b/src/slave/containerizer/mesos/launcher.cpp index 73a0e5f..7e4df3f 100644 --- a/src/slave/containerizer/mesos/launcher.cpp +++ b/src/slave/containerizer/mesos/launcher.cpp @@ -139,11 +139,11 @@ Try<pid_t> PosixLauncher::fork( in, out, err, - SETSID, flags, environment, None(), - parentHooks); + parentHooks, + {Subprocess::ChildHook::SETSID()}); if (child.isError()) { return Error("Failed to fork a child process: " + child.error()); http://git-wip-us.apache.org/repos/asf/mesos/blob/059f47bf/src/slave/containerizer/mesos/linux_launcher.cpp ---------------------------------------------------------------------- diff --git a/src/slave/containerizer/mesos/linux_launcher.cpp b/src/slave/containerizer/mesos/linux_launcher.cpp index 1c49f56..d3d09f2 100644 --- a/src/slave/containerizer/mesos/linux_launcher.cpp +++ b/src/slave/containerizer/mesos/linux_launcher.cpp @@ -304,11 +304,11 @@ Try<pid_t> LinuxLauncher::fork( in, out, err, - SETSID, flags, environment, lambda::bind(&os::clone, lambda::_1, cloneFlags), - parentHooks); + parentHooks, + {Subprocess::ChildHook::SETSID()}); if (child.isError()) { return Error("Failed to clone child process: " + child.error()); http://git-wip-us.apache.org/repos/asf/mesos/blob/059f47bf/src/tests/containerizer/capabilities_tests.cpp ---------------------------------------------------------------------- diff --git a/src/tests/containerizer/capabilities_tests.cpp b/src/tests/containerizer/capabilities_tests.cpp index 215b1c1..6fe5d54 100644 --- a/src/tests/containerizer/capabilities_tests.cpp +++ b/src/tests/containerizer/capabilities_tests.cpp @@ -38,7 +38,6 @@ using std::string; using std::vector; using process::Future; -using process::NO_SETSID; using process::Subprocess; using mesos::internal::capabilities::Capabilities; @@ -76,7 +75,6 @@ public: Subprocess::FD(STDIN_FILENO), Subprocess::FD(STDOUT_FILENO), Subprocess::FD(STDERR_FILENO), - NO_SETSID, &helper.flags); } }; http://git-wip-us.apache.org/repos/asf/mesos/blob/059f47bf/src/tests/containerizer/launch_tests.cpp ---------------------------------------------------------------------- diff --git a/src/tests/containerizer/launch_tests.cpp b/src/tests/containerizer/launch_tests.cpp index 76d71b3..81790a1 100644 --- a/src/tests/containerizer/launch_tests.cpp +++ b/src/tests/containerizer/launch_tests.cpp @@ -78,7 +78,6 @@ public: Subprocess::PATH("/dev/null"), Subprocess::FD(STDOUT_FILENO), Subprocess::FD(STDERR_FILENO), - NO_SETSID, &launchFlags, None(), lambda::bind(&os::clone, lambda::_1, CLONE_NEWNS | SIGCHLD)); http://git-wip-us.apache.org/repos/asf/mesos/blob/059f47bf/src/tests/containerizer/ns_tests.cpp ---------------------------------------------------------------------- diff --git a/src/tests/containerizer/ns_tests.cpp b/src/tests/containerizer/ns_tests.cpp index e52ebbe..6aa5ade 100644 --- a/src/tests/containerizer/ns_tests.cpp +++ b/src/tests/containerizer/ns_tests.cpp @@ -87,7 +87,6 @@ TEST(NsTest, ROOT_setns) Subprocess::FD(STDIN_FILENO), Subprocess::FD(STDOUT_FILENO), Subprocess::FD(STDERR_FILENO), - NO_SETSID, nullptr, None(), lambda::bind(&os::clone, lambda::_1, flags | SIGCHLD)); http://git-wip-us.apache.org/repos/asf/mesos/blob/059f47bf/src/tests/containerizer/port_mapping_tests.cpp ---------------------------------------------------------------------- diff --git a/src/tests/containerizer/port_mapping_tests.cpp b/src/tests/containerizer/port_mapping_tests.cpp index 7fac6ca..ab8db58 100644 --- a/src/tests/containerizer/port_mapping_tests.cpp +++ b/src/tests/containerizer/port_mapping_tests.cpp @@ -378,7 +378,6 @@ protected: Subprocess::PATH("/dev/null"), Subprocess::PIPE(), Subprocess::FD(STDERR_FILENO), - NO_SETSID, &statistics.flags); CHECK_SOME(s);