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

Use composing containerizer by default in tests.

    XMLWordPrintableJSON

Details

    Description

      If we assign "docker,mesos" to the `containerizers` flag for an agent, then ComposingContainerizer will be used for many tests that do not specify containerizers flag. That's the goal of this task.

      I tried to do that by adding flags.containerizers = "docker,mesos", but it turned out that some tests are started to hang due to a paused clocks, while docker c'zer and docker library use libprocess clocks.

      After setting composing c'zer by default, some tests (e.g. AgentAPITest.AttachContainerInputValidation) started to hang due to a paused clocks and the use of clock-dependent methods, like await(), delay(), etc. by the docker library.

      It hangs in Docker::validateVersion(), which is called from Docker::create(). After I added Clock::resume() before calling version.await(DOCKER_VERSION_WAIT_TIMEOUT), tests have started to hang due to the hanging docker recovery: docker c'zer launches docker ps -a subprocess and subscribes for its termination. As a reaper process uses delay(), this leads to a hanging recovery process for the docker c'zer.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              alexr Alex R
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated: