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

Clock::advance can race with process::delay in tests.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Accepted
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None

    Description

      There are lots of tests that use the following pattern:
      1) Pause clocks
      2) Start an agent
      3) Advance clocks to trigger an event
      4) Wait for the event

      If an event is scheduled via `process::delay()` after advancing the clocks, then a test hangs in the endless wait for the event that is never triggered, because libprocess clocks are paused. For example, `DiskResource/PersistentVolumeTest.SharedPersistentVolumeRescindOnDestroy/0` test hangs at step 4, because the clocks at step 3 has been already advanced before the agent scheduled a call of Slave::authenticate() method. After a successful authentication with a master, the agent sends a UpdateSlaveMessage. But the authentication process never finishes because `Slave::authenticate()` is never called.

      A list of tests that might be affected by the issue attached to this ticket.

      Attachments

        1. failed_tests.txt
          8 kB
          Andrei Budnik

        Issue Links

          Activity

            People

              Unassigned Unassigned
              abudnik Andrei Budnik
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated: