-----------------------------------------------------------
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

Reply via email to