Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
Mac OS 10.12
-
Mesosphere Sprint 48
-
3
Description
The tests IOSwitchboardServerTest.SendHeartbeat and IOSwitchboardServerTest.ReceiveHeartbeat are broken on OS X.
[==========] Running 2 tests from 1 test case. [----------] Global test environment set-up. [----------] 2 tests from IOSwitchboardServerTest [ RUN ] IOSwitchboardServerTest.SendHeartbeat ../../src/tests/containerizer/io_switchboard_tests.cpp:392: Failure server: Failed to build address from '/var/folders/6t/yp_xgc8d6k32rpp0bsbfqm9m0000gp/T/04ioBQ/mesos-io-switchboard-0ce96b84-fc47-4a21-b7bc-71eddd8b0f13': Path too long, must be less than 104 bytes [ FAILED ] IOSwitchboardServerTest.SendHeartbeat (5 ms) [ RUN ] IOSwitchboardServerTest.ReceiveHeartbeat ../../src/tests/containerizer/io_switchboard_tests.cpp:630: Failure server: Failed to build address from '/var/folders/6t/yp_xgc8d6k32rpp0bsbfqm9m0000gp/T/FryfgE/mesos-io-switchboard-df1d7004-7ea1-43f3-bec9-bf0c2663b260': Path too long, must be less than 104 bytes [ FAILED ] IOSwitchboardServerTest.ReceiveHeartbeat (0 ms) [----------] 2 tests from IOSwitchboardServerTest (5 ms total) [----------] Global test environment tear-down [==========] 2 tests from 1 test case ran. (29 ms total) [ PASSED ] 0 tests. [ FAILED ] 2 tests, listed below: [ FAILED ] IOSwitchboardServerTest.SendHeartbeat [ FAILED ] IOSwitchboardServerTest.ReceiveHeartbeat
The issue is caused by the way the socket paths are constructed in the tests,
string socketPath = path::join(
sandbox.get(),
"mesos-io-switchboard-" + UUID::random().toString());
The lengths of the components are
- sandbox path: 55 characters (including directory delimiters),
- mesos-io-switchboard: 20 characters,
- UUID: 36 characters
which amounts to a total of 113 non-zero characters.
Since the socket is already created in the test's sandbox and only a single socket is created in the test, it appears that it might be possible to strip e.g., the UUID from the path to make the path fit.