Joseph Wu created MESOS-4385:
--------------------------------

             Summary: Offers and InverseOffers cannot be accepted in the same 
ACCEPT call
                 Key: MESOS-4385
                 URL: https://issues.apache.org/jira/browse/MESOS-4385
             Project: Mesos
          Issue Type: Bug
          Components: framework, master
    Affects Versions: 0.25.0
            Reporter: Joseph Wu
            Assignee: Joseph Wu


*Problem*
* In {{Master::accept}}, {{validation::offer::validate}} returns an error when 
an {{InverseOffer}} is included in the list of {{OfferIDs}} in an {{ACCEPT}} 
call.
* If an {{Offer}} is part of the same {{ACCEPT}}, the master sees 
{{error.isSome()}} and returns a {{TASK_LOST}} for normal offers.  
(https://github.com/apache/mesos/blob/fafbdca610d0a150b9fa9cb62d1c63cb7a6fdaf3/src/master/master.cpp#L3117)

Here's a regression test:
https://reviews.apache.org/r/42092/

*Proprosal*
The question is whether we want to allow the mixing of {{Offers}} and 
{{InverseOffers}}.

Arguments for mixing:
* The design/structure of the maintenance originally intended to overload 
{{ACCEPT}} and {{DECLINE}} to take inverse offers.
* Enforcing non-mixing may require breaking changes to {{scheduler.proto}}.

Arguments against mixing:
* Some semantics are difficult to explain.  What does it mean to supply 
{{InverseOffers}} with {{Offer::Operations}}?  What about {{DECLINE}} with 
{{Offers}} and {{InverseOffers}}, including a "reason"?
* What happens if we presumably add a third type of offer?
* Does it make sense to {{TASK_LOST}} valid normal offers if {{InverseOffers}} 
are invalid?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to