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.