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

Race condition in `updateAllocation()` on DESTORY of a shared volume.

    XMLWordPrintableJSON

Details

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

    Description

      When a DESTROY (for shared volume) is processed in the master actor, we rescind pending offers to which the volume to be destroyed is already offered to. Before allocator executes the updateAllocation() API, offers with the same shared volume can be sent to frameworks since the destroyed shared volume is not removed from slaves.total till updateAllocation() completes. As a result, the following check can fail:

        CHECK_EQ(
            frameworkAllocation.flatten().createStrippedScalarQuantity(),
            updatedFrameworkAllocation.flatten().createStrippedScalarQuantity());
      

      We need to address this condition by not failing the CHECK_EQ, and also ensuring that the master's state is restored to honor the DESTROY of the shared volume.

      Attachments

        Activity

          People

            anindya.sinha Anindya Sinha
            anindya.sinha Anindya Sinha
            Yan Xu Yan Xu
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: