[openstack-dev] [Neutron] Issue when upgrading from Juno to Kilo due to agent report_state RPC namespace patch

Assaf Muller amuller at redhat.com
Wed Mar 11 19:42:49 UTC 2015


I've filed a bug here:
https://bugs.launchpad.net/neutron/+bug/1430984

I've outlined the path I'd like to take in the bug description.

----- Original Message -----
> +1 on avoiding changes that break rolling upgrade.
> 
> Rolling upgrade has been working so far (at least from my perspective), and
> as openstack adoption spreads, it will be important for more and more users.
> 
> How do we make rolling upgrade a "supported" part of Neutron?

Finding a sane way to test it would be a start. I'm still looking...

> 
> - Jack
> 
> > -----Original Message-----
> > From: Assaf Muller [mailto:amuller at redhat.com]
> > Sent: Thursday, March 05, 2015 11:59 AM
> > To: OpenStack Development Mailing List (not for usage questions)
> > Subject: Re: [openstack-dev] [Neutron] Issue when upgrading from Juno to
> > Kilo due
> > to agent report_state RPC namespace patch
> > 
> > 
> > 
> > ----- Original Message -----
> > > To turn this stuff off, you don't need to revert.  I'd suggest just
> > > setting the namespace contants to None, and that will result in the same
> > > thing.
> > >
> > >
> > http://git.openstack.org/cgit/openstack/neutron/tree/neutron/common/constants.py#
> > n152
> > >
> > > It's definitely a non-backwards compatible change.  That was a conscious
> > > choice as the interfaces are a bit of a tangled mess, IMO.  The
> > > non-backwards compatible changes were simpler so I went that route,
> > > because as far as I could tell, rolling upgrades were not supported.  If
> > > they do work, it's due to luck.  There's multiple things including the
> > > lack of testing this scenario to lack of data versioning that make it a
> > > pretty shaky area.
> > >
> > > However, if it worked for some people, I totally get the argument
> > > against breaking it intentionally.  As mentioned before, a quick fix if
> > > needed is to just set the namespace constants to None.  If someone wants
> > > to do something to make it backwards compatible, that's even better.
> > >
> > 
> > I sent out an email to the operators list to get some feedback:
> > http://lists.openstack.org/pipermail/openstack-operators/2015-March/006429.html
> > 
> > And at least one operator reported that he performed a rolling Neutron
> > upgrade
> > from I to J successfully. So, I'm agreeing with you agreeing with me that
> > we
> > probably don't want to mess this up knowingly, even though there is no
> > testing
> > to make sure that it keeps working.
> > 
> > I'll follow up on IRC with you to figure out who's doing what.
> > 
> > > --
> > > Russell Bryant
> > >
> > > On 03/04/2015 11:50 AM, Salvatore Orlando wrote:
> > > > To put in another way I think we might say that change 154670 broke
> > > > backward compatibility on the RPC interface.
> > > > To be fair this probably happened because RPC interfaces were organised
> > > > in a way such that this kind of breakage was unavoidable.
> > > >
> > > > I think the strategy proposed by Assaf is a viable one. The point about
> > > > being able to do rolling upgrades only from version N to N+1 is a
> > > > sensible one, but it has more to do with general backward compability
> > > > rules for RPC interfaces.
> > > >
> > > > In the meanwhile this is breaking a typical upgrade scenario. If a fix
> > > > allowing agent state updates both namespaced and not is available today
> > > > or tomorrow, that's fine. Otherwise I'd revert just to be safe.
> > > >
> > > > By the way, we were supposed to have already removed all server rpc
> > > > callbacks in the appropriate package... did we forget out this one or
> > > > is
> > > > there a reason for which it's still in neutron.db?
> > > >
> > > > Salvatore
> > > >
> > > > On 4 March 2015 at 17:23, Miguel Ángel Ajo <majopela at redhat.com
> > > > <mailto:majopela at redhat.com>> wrote:
> > > >
> > > >     I agree with Assaf, this is an issue across updates, and
> > > >     we may want (if that’s technically possible) to provide
> > > >     access to those functions with/without namespace.
> > > >
> > > >     Or otherwise think about reverting for now until we find a
> > > >     migration strategy
> > > >
> > > >
> > https://review.openstack.org/#/q/status:merged+project:openstack/neutron+branch:m
> > aster+topic:bp/rpc-docs-and-namespaces,n,z
> > > >
> > > >
> > > >     Best regards,
> > > >     Miguel Ángel Ajo
> > > >
> > > >     On Wednesday, 4 de March de 2015 at 17:00, Assaf Muller wrote:
> > > >
> > > >>     Hello everyone,
> > > >>
> > > >>     I'd like to highlight an issue with:
> > > >>     https://review.openstack.org/#/c/154670/
> > > >>
> > > >>     According to my understanding, most deployments upgrade the
> > > >>     controllers first
> > > >>     and compute/network nodes later. During that time period, all
> > > >>     agents will
> > > >>     fail to report state as they're sending the report_state message
> > > >>     outside
> > > >>     of any namespace while the server is expecting that message in a
> > > >>     namespace.
> > > >>     This is a show stopper as the Neutron server will think all of its
> > > >>     agents are dead.
> > > >>
> > > >>     I think the obvious solution is to modify the Neutron server code
> > > >>     so that
> > > >>     it accepts the report_state method both in and outside of the
> > > >>     report_state
> > > >>     RPC namespace and chuck that code away in L (Assuming we support
> > > >>     rolling upgrades
> > > >>     only from version N to N+1, which while is unfortunate, is the
> > > >>     behavior I've
> > > >>     seen in multiple places in the code).
> > > >>
> > > >>     Finally, are there additional similar issues for other RPC methods
> > > >>     placed in a namespace
> > > >>     this cycle?
> > > >>
> > > >>
> > > >>     Assaf Muller, Cloud Networking Engineer
> > > >>     Red Hat
> > > >>
> 
> __________________________________________________________________________
> 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
>



More information about the OpenStack-dev mailing list