[openstack-dev] [Neutron] Race condition between DB layer and plugin back-end implementation

Isaku Yamahata isaku.yamahata at gmail.com
Mon Nov 25 22:11:55 UTC 2013

On Thu, Nov 21, 2013 at 12:34:33PM -0800,
Gary Duan <gduan at varmour.com> wrote:

> Advanced service plugins don't have two-step transition today. IMO, If
> vendor plugins/drivers don't maintain their own databases for these
> services, it might not be urgent to add these steps in the plugin.

I agree. OVS/linux bridge plugin (or mechanism driver) is in theory.
Unfortunately most of controller based plugin isn't. They update
neutron db and delegate the requests to the controller. This is common
pattern. No polling or something.
It is very fragile. For example restarting neutron-server during
processing requests easily causes inconsistency between neutron db and
controller side. Errors during delegation of requests tend to be ignored.

Do we want to address it to some extent by framework (ie ML2 plugin)?
or just leave it and declare that's the problem of plugin/mechanism driver?

> How to
> make sure database and back-end implementation in sync need more thought.
> As configuring backend device can be an a-sync process, rollback database
> tables can be cumbersome.

Isaku Yamahata <isaku.yamahata at gmail.com>

More information about the OpenStack-dev mailing list