Benjamin Bannier created MESOS-8536:
---------------------------------------

             Summary: Pending offer operations on resource provider resources 
not properly accounted for in allocator
                 Key: MESOS-8536
                 URL: https://issues.apache.org/jira/browse/MESOS-8536
             Project: Mesos
          Issue Type: Bug
          Components: master
    Affects Versions: 1.5.0
            Reporter: Benjamin Bannier
            Assignee: Benjamin Bannier


The master currently does not accumulate the resources used by offer operations 
on master failover. While we create a datastructure to hold this information, 
we missed updating it.
{code}
hashmap<FrameworkID, Resources> usedByOperations;

if (provider.newOperations.isSome()) {
  foreachpair (const id::UUID& uuid,
               const Operation& operation,
               provider.newOperations.get()) {
    // Update to bookkeeping of operations.
    CHECK(!slave->operations.contains(uuid))
      << "New operation " << uuid.toString() << " is already known";

    Framework* framework = nullptr;
    if (operation.has_framework_id()) {
      framework = getFramework(operation.framework_id());
    }

    addOperation(framework, slave, new Operation(operation));
  }
}

allocator->addResourceProvider(
    slaveId,
    provider.newTotal.get(),
    usedByOperations);
{code}

Here {{usedByOperations}} is not updated.

This leads to problems when the operation becomes terminal and we try to 
recover the used resources which might not be known to the framework sorter 
inside the hierarchical allocator.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to