Uploaded image for project: 'Mesos'
  1. Mesos
  2. MESOS-6811

IOSwitchboardServerTest.SendHeartbeat and IOSwitchboardServerTest.ReceiveHeartbeat broken on OS X

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 1.2.0
    • test
    • 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.

      Attachments

        Activity

          People

            bbannier Benjamin Bannier
            bbannier Benjamin Bannier
            Joseph Wu Joseph Wu
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: