Hi folks, When we released MULTI_ROLE support, Offers and Resources within them included additional information, specifically the AllocationInfo which indicated which role was being allocated to:
https://github.com/apache/mesos/blob/1.3.0/include/ mesos/v1/mesos.proto#L907-L923 https://github.com/apache/mesos/blob/1.3.0/include/ mesos/v1/mesos.proto#L1453-L1459 We included this information even for non-MULTI_ROLE schedulers, because: (1) Any schedulers with the old protos would continue to work, since they ignore the new fields their notion of matching resources to offers keeps working. (2) Any schedulers that update the protobuf, but leave their resource matching logic as is, also continue to work since they ignore the allocation info. (3) Any schedulers that update the protobuf and upgrade their matching logic, would need to update their scheduler code to reflect the changes in the matching logic. This was OK since the scheduler is updating their own code to line up with their own resource matching logic. However, this change introduced some difficulty for libraries that exposed resource matching logic and that support both schedulers that know about allocation info and schedulers that do not. Such a library would need to do something to ensure that both old and new schedulers work against it (e.g. strip the information from incoming offers if the scheduler instantiated the library without MULTI_ROLE capability). So, we're thinking of stripping the AllocationInfo for non-MULTI_ROLE schedulers to simplify this for libraries. Strictly speaking this is a *breaking change* for any non-MULTI_ROLE schedulers that have already updated their logic to depend on the AllocationInfo presence in 1.3.x or 1.4.x. The assumption so far is that this will be an OK change since non-MULTI_ROLE schedulers are probably ignoring this information. But please let me know if this is not the case! More information here: https://issues.apache.org/jira/browse/MESOS-8237 Ben