-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/35585/
-----------------------------------------------------------
(Updated June 23, 2015, 1:03 a.m.)
Review request for mesos, Ian Downes, Jie Yu, and Niklas Nielsen.
Bugs: MESOS-2884
https://issues.apache.org/jira/browse/MESOS-2884
Repository: mesos
Description
-------
This would enable the MesosContainerizer to pass on a list of namespaces
to LinuxLauncher instead of having LinuxLauncher guess it from the
isolation flags.
Diffs
-----
include/mesos/slave/isolator.hpp 18edc030367e42240090f2f3dbc92aec7a4c6234
src/slave/containerizer/isolator.cpp d51ecc9347cafef90c92a6965e37f417b4929e79
src/slave/containerizer/isolators/filesystem/shared.hpp
08c6ffea0e2fada8e0b04f4ab15d8569c5416a8e
src/slave/containerizer/isolators/filesystem/shared.cpp
5049306dea7b94dfaa4f7c2d8187bbae8c360633
src/slave/containerizer/isolators/namespaces/pid.hpp
6b24e2990311d0b09b3f6f2bb4ab29ee83fddddc
src/slave/containerizer/isolators/namespaces/pid.cpp
c6b28aa70415f4d88b14f0eeff7f20c35018fbdc
src/slave/containerizer/isolators/network/port_mapping.hpp
7777ee869ce71a68f51d58159c701d3c5d1e502b
src/slave/containerizer/isolators/network/port_mapping.cpp
137cdc9b064b02e829af857cff7b9023ee7b7b16
Diff: https://reviews.apache.org/r/35585/diff/
Testing (updated)
-------
make check
When I tried to run port-mapping tests as root, I got a bunch of errors. Any
ideas on what might be going on here?
```
thinkpad:/home/kapil/mesos/netns/build-port-mapping # GLOG_logtostderr=1
GTEST_v=2 make check GTEST_FILTER="*Port*"
Making check in .
make[1]: Entering directory '/local/mesos/netns/build-port-mapping'
make[1]: Nothing to be done for 'check-am'.
make[1]: Leaving directory '/local/mesos/netns/build-port-mapping'
Making check in 3rdparty
make[1]: Entering directory '/local/mesos/netns/build-port-mapping/3rdparty'
make check-recursive
make[2]: Entering directory '/local/mesos/netns/build-port-mapping/3rdparty'
Making check in libprocess
make[3]: Entering directory
'/local/mesos/netns/build-port-mapping/3rdparty/libprocess'
Making check in 3rdparty
make[4]: Entering directory
'/local/mesos/netns/build-port-mapping/3rdparty/libprocess/3rdparty'
make check-recursive
make[5]: Entering directory
'/local/mesos/netns/build-port-mapping/3rdparty/libprocess/3rdparty'
Making check in stout
make[6]: Entering directory
'/local/mesos/netns/build-port-mapping/3rdparty/libprocess/3rdparty/stout'
Making check in .
make[7]: Entering directory
'/local/mesos/netns/build-port-mapping/3rdparty/libprocess/3rdparty/stout'
make[7]: Nothing to be done for 'check-am'.
make[7]: Leaving directory
'/local/mesos/netns/build-port-mapping/3rdparty/libprocess/3rdparty/stout'
Making check in include
make[7]: Entering directory
'/local/mesos/netns/build-port-mapping/3rdparty/libprocess/3rdparty/stout/include'
make[7]: Nothing to be done for 'check'.
make[7]: Leaving directory
'/local/mesos/netns/build-port-mapping/3rdparty/libprocess/3rdparty/stout/include'
make[6]: Leaving directory
'/local/mesos/netns/build-port-mapping/3rdparty/libprocess/3rdparty/stout'
make[6]: Entering directory
'/local/mesos/netns/build-port-mapping/3rdparty/libprocess/3rdparty'
make libgmock.la stout-tests
make[7]: Entering directory
'/local/mesos/netns/build-port-mapping/3rdparty/libprocess/3rdparty'
make[7]: 'libgmock.la' is up to date.
make[7]: 'stout-tests' is up to date.
make[7]: Leaving directory
'/local/mesos/netns/build-port-mapping/3rdparty/libprocess/3rdparty'
make check-local
make[7]: Entering directory
'/local/mesos/netns/build-port-mapping/3rdparty/libprocess/3rdparty'
./stout-tests
Note: Google Test filter = *Port*
[==========] Running 0 tests from 0 test cases.
[==========] 0 tests from 0 test cases ran. (0 ms total)
[ PASSED ] 0 tests.
make[7]: Leaving directory
'/local/mesos/netns/build-port-mapping/3rdparty/libprocess/3rdparty'
make[6]: Leaving directory
'/local/mesos/netns/build-port-mapping/3rdparty/libprocess/3rdparty'
make[5]: Leaving directory
'/local/mesos/netns/build-port-mapping/3rdparty/libprocess/3rdparty'
make[4]: Leaving directory
'/local/mesos/netns/build-port-mapping/3rdparty/libprocess/3rdparty'
Making check in .
make[4]: Entering directory
'/local/mesos/netns/build-port-mapping/3rdparty/libprocess'
make tests benchmarks
make[5]: Entering directory
'/local/mesos/netns/build-port-mapping/3rdparty/libprocess'
make[5]: 'tests' is up to date.
make[5]: 'benchmarks' is up to date.
make[5]: Leaving directory
'/local/mesos/netns/build-port-mapping/3rdparty/libprocess'
make check-local
make[5]: Entering directory
'/local/mesos/netns/build-port-mapping/3rdparty/libprocess'
./tests
Note: Google Test filter = *Port*
[==========] Running 0 tests from 0 test cases.
[==========] 0 tests from 0 test cases ran. (0 ms total)
[ PASSED ] 0 tests.
YOU HAVE 3 DISABLED TESTS
make[5]: Leaving directory
'/local/mesos/netns/build-port-mapping/3rdparty/libprocess'
make[4]: Leaving directory
'/local/mesos/netns/build-port-mapping/3rdparty/libprocess'
Making check in include
make[4]: Entering directory
'/local/mesos/netns/build-port-mapping/3rdparty/libprocess/include'
make[4]: Nothing to be done for 'check'.
make[4]: Leaving directory
'/local/mesos/netns/build-port-mapping/3rdparty/libprocess/include'
make[3]: Leaving directory
'/local/mesos/netns/build-port-mapping/3rdparty/libprocess'
make[3]: Entering directory '/local/mesos/netns/build-port-mapping/3rdparty'
make[3]: Nothing to be done for 'check-am'.
make[3]: Leaving directory '/local/mesos/netns/build-port-mapping/3rdparty'
make[2]: Leaving directory '/local/mesos/netns/build-port-mapping/3rdparty'
make[1]: Leaving directory '/local/mesos/netns/build-port-mapping/3rdparty'
Making check in src
make[1]: Entering directory '/local/mesos/netns/build-port-mapping/src'
make check-am
make[2]: Entering directory '/local/mesos/netns/build-port-mapping/src'
make low-level-scheduler-libprocess low-level-scheduler-pthread test-framework
test-executor long-lived-framework long-lived-executor no-executor-framework
docker-no-executor-framework balloon-framework balloon-executor
load-generator-framework persistent-volume-framework setns-test-helper
memory-test-helper active-user-test-helper mesos-tests \
tests/balloon_framework_test.sh tests/low_level_scheduler_libprocess_test.sh
tests/low_level_scheduler_pthread_test.sh tests/java_exception_test.sh
tests/java_framework_test.sh tests/java_log_test.sh
tests/no_executor_framework_test.sh tests/persistent_volume_framework_test.sh
tests/python_framework_test.sh tests/test_framework_test.sh
make[3]: Entering directory '/local/mesos/netns/build-port-mapping/src'
make[3]: 'low-level-scheduler-libprocess' is up to date.
make[3]: 'low-level-scheduler-pthread' is up to date.
make[3]: 'test-framework' is up to date.
make[3]: 'test-executor' is up to date.
make[3]: 'long-lived-framework' is up to date.
make[3]: 'long-lived-executor' is up to date.
make[3]: 'no-executor-framework' is up to date.
make[3]: 'docker-no-executor-framework' is up to date.
make[3]: 'balloon-framework' is up to date.
make[3]: 'balloon-executor' is up to date.
make[3]: 'load-generator-framework' is up to date.
make[3]: 'persistent-volume-framework' is up to date.
make[3]: 'setns-test-helper' is up to date.
make[3]: 'memory-test-helper' is up to date.
make[3]: 'active-user-test-helper' is up to date.
make[3]: 'mesos-tests' is up to date.
make[3]: Nothing to be done for '../../src/tests/balloon_framework_test.sh'.
make[3]: Nothing to be done for
'../../src/tests/low_level_scheduler_libprocess_test.sh'.
make[3]: Nothing to be done for
'../../src/tests/low_level_scheduler_pthread_test.sh'.
make[3]: Nothing to be done for '../../src/tests/java_exception_test.sh'.
make[3]: Nothing to be done for '../../src/tests/java_framework_test.sh'.
make[3]: Nothing to be done for '../../src/tests/java_log_test.sh'.
make[3]: Nothing to be done for '../../src/tests/no_executor_framework_test.sh'.
make[3]: Nothing to be done for
'../../src/tests/persistent_volume_framework_test.sh'.
make[3]: Nothing to be done for '../../src/tests/python_framework_test.sh'.
make[3]: Nothing to be done for '../../src/tests/test_framework_test.sh'.
make[3]: Leaving directory '/local/mesos/netns/build-port-mapping/src'
make check-local
make[3]: Entering directory '/local/mesos/netns/build-port-mapping/src'
./mesos-tests
Source directory: /local/mesos/netns
Build directory: /local/mesos/netns/build-port-mapping
-------------------------------------------------------------
We cannot run any cgroups tests that require mounting
hierarchies because you have the following hierarchies mounted:
/sys/fs/cgroup/blkio, /sys/fs/cgroup/cpu,cpuacct, /sys/fs/cgroup/cpuset,
/sys/fs/cgroup/devices, /sys/fs/cgroup/freezer, /sys/fs/cgroup/hugetlb,
/sys/fs/cgroup/memory, /sys/fs/cgroup/net_cls,net_prio,
/sys/fs/cgroup/perf_event, /sys/fs/cgroup/systemd
We'll disable the CgroupsNoHierarchyTest test fixture for now.
-------------------------------------------------------------
-------------------------------------------------------------
We cannot run any Docker tests because:
Failed to get docker version: Failed to execute 'docker version': exited with
status 1
-------------------------------------------------------------
Note: Google Test filter =
*Port*-DockerContainerizerTest.ROOT_DOCKER_Launch_Executor:DockerContainerizerTest.ROOT_DOCKER_Launch_Executor_Bridged:DockerContainerizerTest.ROOT_DOCKER_Launch:DockerContainerizerTest.ROOT_DOCKER_Kill:DockerContainerizerTest.ROOT_DOCKER_Usage:DockerContainerizerTest.ROOT_DOCKER_Update:DockerContainerizerTest.ROOT_DOCKER_Recover:DockerContainerizerTest.ROOT_DOCKER_SkipRecoverNonDocker:DockerContainerizerTest.ROOT_DOCKER_Logs:DockerContainerizerTest.ROOT_DOCKER_Default_CMD:DockerContainerizerTest.ROOT_DOCKER_Default_CMD_Override:DockerContainerizerTest.ROOT_DOCKER_Default_CMD_Args:DockerContainerizerTest.ROOT_DOCKER_SlaveRecoveryTaskContainer:DockerContainerizerTest.DISABLED_ROOT_DOCKER_SlaveRecoveryExecutorContainer:DockerContainerizerTest.ROOT_DOCKER_PortMapping:DockerContainerizerTest.ROOT_DOCKER_LaunchSandboxWithColon:DockerContainerizerTest.ROOT_DOCKER_DestroyWhileFetching:DockerContainerizerTest.ROOT_DOCKER_DestroyWhilePulling:DockerContainerizerTest.
ROOT_DOCKER_ExecutorCleanupWhenLaunchFailed:DockerContainerizerTest.ROOT_DOCKER_FetchFailure:DockerContainerizerTest.ROOT_DOCKER_DockerPullFailure:DockerContainerizerTest.ROOT_DOCKER_DockerInspectDiscard:DockerTest.ROOT_DOCKER_interface:DockerTest.ROOT_DOCKER_CheckCommandWithShell:DockerTest.ROOT_DOCKER_CheckPortResource:DockerTest.ROOT_DOCKER_CancelPull:ResourceOffersTest.ResourceOfferWithMultipleSlaves:SlaveRecoveryTest/0.MultipleSlaves:SorterTest.MultipleSlaves:CgroupsNoHierarchyTest.ROOT_CGROUPS_NOHIERARCHY_MountUnmountHierarchy:SlaveCount/Registrar_BENCHMARK_Test.performance/0:SlaveCount/Registrar_BENCHMARK_Test.performance/1:SlaveCount/Registrar_BENCHMARK_Test.performance/2:SlaveCount/Registrar_BENCHMARK_Test.performance/3
[==========] Running 16 tests from 4 test cases.
[----------] Global test environment set-up.
[----------] 1 test from MasterTest
[ RUN ] MasterTest.IgnoreEphemeralPortsResource
[ OK ] MasterTest.IgnoreEphemeralPortsResource (78 ms)
[----------] 1 test from MasterTest (78 ms total)
[----------] 1 test from RoutingTest
[ RUN ] RoutingTest.PortRange
[ OK ] RoutingTest.PortRange (0 ms)
[----------] 1 test from RoutingTest (0 ms total)
[----------] 11 tests from PortMappingIsolatorTest
[ RUN ] PortMappingIsolatorTest.ROOT_ContainerToContainerTCP
../../src/tests/port_mapping_tests.cpp:500: Failure
(isolator.get()->isolate(containerId1, pid.get())).failure(): Failed to symlink
the network namespace handle '/var/run/mesos/netns/container1' ->
'/var/run/netns/11469': File exists
[ FAILED ] PortMappingIsolatorTest.ROOT_ContainerToContainerTCP (72 ms)
[ RUN ] PortMappingIsolatorTest.ROOT_ContainerToContainerUDP
../../src/tests/port_mapping_tests.cpp:660: Failure
(isolator.get()->isolate(containerId1, pid.get())).failure(): Failed to symlink
the network namespace handle '/var/run/mesos/netns/container1' ->
'/var/run/netns/11487': File exists
[ FAILED ] PortMappingIsolatorTest.ROOT_ContainerToContainerUDP (44 ms)
[ RUN ] PortMappingIsolatorTest.ROOT_HostToContainerUDP
../../src/tests/port_mapping_tests.cpp:823: Failure
(isolator.get()->isolate(containerId, pid.get())).failure(): Failed to symlink
the network namespace handle '/var/run/mesos/netns/container1' ->
'/var/run/netns/11505': File exists
[ FAILED ] PortMappingIsolatorTest.ROOT_HostToContainerUDP (44 ms)
[ RUN ] PortMappingIsolatorTest.ROOT_HostToContainerTCP
../../src/tests/port_mapping_tests.cpp:940: Failure
(isolator.get()->isolate(containerId, pid.get())).failure(): Failed to symlink
the network namespace handle '/var/run/mesos/netns/container1' ->
'/var/run/netns/11524': File exists
[ FAILED ] PortMappingIsolatorTest.ROOT_HostToContainerTCP (50 ms)
[ RUN ] PortMappingIsolatorTest.ROOT_ContainerICMPExternal
../../src/tests/port_mapping_tests.cpp:1058: Failure
(isolator.get()->isolate(containerId, pid.get())).failure(): Failed to symlink
the network namespace handle '/var/run/mesos/netns/container1' ->
'/var/run/netns/11543': File exists
[ FAILED ] PortMappingIsolatorTest.ROOT_ContainerICMPExternal (42 ms)
[ RUN ] PortMappingIsolatorTest.ROOT_ContainerICMPInternal
../../src/tests/port_mapping_tests.cpp:1138: Failure
(isolator.get()->isolate(containerId, pid.get())).failure(): Failed to symlink
the network namespace handle '/var/run/mesos/netns/container1' ->
'/var/run/netns/11561': File exists
[ FAILED ] PortMappingIsolatorTest.ROOT_ContainerICMPInternal (57 ms)
[ RUN ] PortMappingIsolatorTest.ROOT_ContainerARPExternal
../../src/tests/port_mapping_tests.cpp:1234: Failure
(isolator.get()->isolate(containerId, pid.get())).failure(): Failed to symlink
the network namespace handle '/var/run/mesos/netns/container1' ->
'/var/run/netns/11580': File exists
[ FAILED ] PortMappingIsolatorTest.ROOT_ContainerARPExternal (51 ms)
[ RUN ] PortMappingIsolatorTest.ROOT_DNS
../../src/tests/port_mapping_tests.cpp:1328: Failure
(isolator.get()->isolate(containerId, pid.get())).failure(): Failed to symlink
the network namespace handle '/var/run/mesos/netns/container1' ->
'/var/run/netns/11599': File exists
[ FAILED ] PortMappingIsolatorTest.ROOT_DNS (55 ms)
[ RUN ] PortMappingIsolatorTest.ROOT_TooManyContainers
../../src/tests/port_mapping_tests.cpp:1412: Failure
(isolator.get()->isolate(containerId1, pid.get())).failure(): Failed to symlink
the network namespace handle '/var/run/mesos/netns/container1' ->
'/var/run/netns/11617': File exists
[ FAILED ] PortMappingIsolatorTest.ROOT_TooManyContainers (63 ms)
[ RUN ] PortMappingIsolatorTest.ROOT_SmallEgressLimit
F0623 00:57:59.798791 11428 port_mapping_tests.cpp:1469] CHECK_SOME(isolator):
Failed to read /sys/class/net/wlan0/speed: Invalid argument
*** Check failure stack trace: ***
@ 0x7fcce573c4d8 google::LogMessage::Fail()
@ 0x7fcce573c437 google::LogMessage::SendToLog()
@ 0x7fcce573be48 google::LogMessage::Flush()
@ 0x7fcce573eb7c google::LogMessageFatal::~LogMessageFatal()
@ 0x9c90c2 _CheckFatal::~_CheckFatal()
@ 0x11d32b8
mesos::internal::tests::PortMappingIsolatorTest_ROOT_SmallEgressLimit_Test::TestBody()
@ 0x120f157
testing::internal::HandleSehExceptionsInMethodIfSupported<>()
@ 0x120a344
testing::internal::HandleExceptionsInMethodIfSupported<>()
@ 0x11f27af testing::Test::Run()
@ 0x11f2ed2 testing::TestInfo::Run()
@ 0x11f345a testing::TestCase::Run()
@ 0x11f81d6 testing::internal::UnitTestImpl::RunAllTests()
@ 0x120ffee
testing::internal::HandleSehExceptionsInMethodIfSupported<>()
@ 0x120b069
testing::internal::HandleExceptionsInMethodIfSupported<>()
@ 0x11f7086 testing::UnitTest::Run()
@ 0xd0f9e2 main
@ 0x7fccdf4b98c5 __libc_start_main
@ 0x8be1d9 _start
@ (nil) (unknown)
Failed to synchronize with slave (it's probably exited)Makefile:7556: recipe
for target 'check-local' failed
make[3]: *** [check-local] Aborted (core dumped)
make[3]: Leaving directory '/local/mesos/netns/build-port-mapping/src'
Makefile:7003: recipe for target 'check-am' failed
make[2]: *** [check-am] Error 2
make[2]: Leaving directory '/local/mesos/netns/build-port-mapping/src'
Failed to synchronize with slave (it's probably exited)
Makefile:7007: recipe for target 'check' failed
make[1]: *** [check] Error 2
make[1]: Leaving directory '/local/mesos/netns/build-port-mapping/src'
Makefile:678: recipe for target 'check-recursive' failed
make: *** [check-recursive] Error 1
Failed to synchronize with slave (it's probably exited)
thinkpad:/home/kapil/mesos/netns/build-port-mapping # Failed to synchronize
with slave (it's probably exited)
Failed to synchronize with slave (it's probably exited)
Failed to synchronize with slave (it's probably exited)
Failed to synchronize with slave (it's probably exited)
Failed to synchronize with slave (it's probably exited)
Failed to synchronize with slave (it's probably exited)
thinkpad:/home/kapil/mesos/netns/build-port-mapping #
```
Thanks,
Kapil Arya