> On Apr 16, 2018, at 2:04 PM, Chun-Hung Hsiao <chhs...@apache.org> wrote: > > Hi all, > > As some might have already known, we are currently working on patches to > implement the new GROW_VOLUME and SHRINK_VOLUME operations [1]. > > One problem surfaces is that, since the new operations are not supported in > Mesos 1.5, they will lead to an agent crash during the operation application > cycle if a Mesos 1.6 master send these operations to a Mesos 1.5 agent [2]. > > We are now consider two possibilities to address this compatibility problem: > > 1) The Mesos 1.6 master should check the agent's Mesos version in > `Master::accept` [3]. Moving forward, if we add new operations in future > Mesos > releases, we would have code like the following:
Using a capability follows the existing practice. I'm also sympathetic to the argument that this is an experimental feature and will cause 1.5 agents will crash. > 2) Treat this issue as an agent crash bug. The Mesos master would forward > the operation to the agent, regardless of the agent's Mesos version. In the > agent, > we deploy and backport the following logic in `Slave::applyOperation` [4]: > > ``` > if (message.operation_info().type() == OPERATION_UNKNOWN) { > ... // Drop the operation and trigger a re-registration or send an > // `UpdateSlaveMessage` to force the master to update the total > resource of > // the slave. > } > ``` You should never drop operations. This should respond with some sort of "UNKNOWN/UNSUPPORTED" status. J