> On April 13, 2018, 12:33 a.m., Greg Mann wrote: > > src/master/master.cpp > > Lines 4986-4994 (patched) > > <https://reviews.apache.org/r/66050/diff/8/?file=1994610#file1994610line4986> > > > > What will happen if these operations are sent to a 1.5 agent which has > > the RESOURCE_PROVIDER capability, but does not support the operation? > > Zhitao Li wrote: > Good catch. > > For a 1.5 agent, I think it will crash at this line: > https://github.com/apache/mesos/blob/1.5.0/src/common/protobuf_utils.cpp#L851 > because it cannot know whether this unknown operation is speculative. I guess > that triggers the agent to reregister with master without changing its > checkpointed resources. > > In fact, this is much better than attempting to apply, because agent > would do a delete followed by recreate and cause data loss on the persistent > volume (the fix is in r/66218). > > It seems like agent version was never present in `AgentInfo` so master > cannot really know this is an old agent version. Do you want to consider > adding that?
Ah, it looks like the version is included in the 'RegisterSlaveMessage' and 'ReregisterSlaveMessage', and the master places it in the 'Slave' struct: https://github.com/apache/mesos/blob/bd688e4cf9f6f35c9d75aad50b99e1fdeb8104da/src/master/master.cpp#L6586 Perhaps we should check that the version is >= 1.6.0 rather than checking for the RESOURCE_PROVIDER capability? - Greg ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/66050/#review201055 ----------------------------------------------------------- On April 16, 2018, 5:09 p.m., Zhitao Li wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/66050/ > ----------------------------------------------------------- > > (Updated April 16, 2018, 5:09 p.m.) > > > Review request for mesos, Chun-Hung Hsiao, Gaston Kleiman, and Greg Mann. > > > Bugs: MESOS-4965 > https://issues.apache.org/jira/browse/MESOS-4965 > > > Repository: mesos > > > Description > ------- > > The new offer operations are implemented as speculative operations, but > we will use validation to make them non-speculative on API level so that > we can transition later without a breaking change. > > > Diffs > ----- > > src/common/protobuf_utils.cpp 141a444534b776a2c90e2a0daf9727cd21e39080 > src/common/resources_utils.cpp 9be01c1abd48264e308960f35cc7c2ee8a367518 > src/master/master.cpp 767ad8cfe142b47ef07172bcb2a4fb49fc3e833a > src/master/validation.hpp 7c129ceb929596acbb64d37025e055661277e6bf > src/master/validation.cpp ac2e1bb8771841ec59b3bdcdeffb6c6230680d4d > > > Diff: https://reviews.apache.org/r/66050/diff/10/ > > > Testing > ------- > > > Thanks, > > Zhitao Li > >