[openstack-dev] [nova][manila] "latest" microversion considered dangerous

Matt Riedemann mriedem at linux.vnet.ibm.com
Fri Aug 28 03:04:36 UTC 2015



On 8/27/2015 2:38 PM, Ben Swartzlander wrote:
> Manila recently implemented microversions, copying the implementation
> from Nova. I really like the feature! However I noticed that it's legal
> for clients to transmit "latest" instead of a real version number.
>
> THIS IS A TERRIBLE IDEA!
>
> I recommend removing support for "latest" and forcing clients to request
> a specific version (or accept the default).
>
> Allowing clients to request the "latest" microversion guarantees
> undefined (and likely broken) behavior* in every situation where a
> client talks to a server that is newer than it.
>
> Every client can only understand past and present API implementation,
> not future implementations. Transmitting "latest" implies an assumption
> that the future is not so different from the present. This assumption
> about future behavior is precisely what we don't want clients to make,
> because it prevents forward progress. One of the main reasons
> microversions is a valuable feature is because it allows forward
> progress by letting us make major changes without breaking old clients.
>
> If clients are allowed to assume that nothing will change too much in
> the future (which is what asking for "latest" implies) then the server
> will be right back in the situation it was trying to get out of -- it
> can never change any API in a way that might break old clients.
>
> I can think of no situation where transmitting "latest" is better than
> transmitting the highest version that existed at the time the client was
> written.
>
> -Ben Swartzlander
>
> * Undefined/broken behavior unless the server restricts itself to never
> making any backward-compatiblity-breaking change of any kind.
>
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>

Makes sense to me.

I see we note that you can do this in the nova devref but there isn't 
any warning about using it:

http://docs.openstack.org/developer/nova/api_microversion_dev.html?highlight=latest#

-- 

Thanks,

Matt Riedemann




More information about the OpenStack-dev mailing list