[openstack-dev] [neutron] Reading an updated port's fixed IPs in mech driver update_port_postcommit

Kevin Benton blak111 at gmail.com
Tue Jul 7 14:57:25 UTC 2015


It sounds like something is starting a transaction before calling
update_port on the core plugin. This will prevent the transaction from
being completely closed even though ML2 is in the post_commit phase.

In your db.get_port call, make sure you are using the same DB session from
the context that was passed into update_port_postcommit and that will make
sure you always have access to the current state even if the transaction
isn't closed.

On Tue, Jul 7, 2015 at 5:35 AM, Neil Jerram <Neil.Jerram at metaswitch.com>
wrote:

> I think there's something I'm not understanding about how Neutron's DB
> tables are related, and when one can safely read believed-to-be-committed
> information from them...
>
> My project's mechanism driver is handling a port update in which the fixed
> IPs are changing; specifically, a second fixed IP has been added to the
> port.  It does this (for a reason I can explain if needed) by calling
> db.get_port(), in the update_port_postcommit hook.
>
> But we observe that the result of db.get_port() does not include the new
> fixed IP.  Even though we're in the postcommit hook, and hence we assume
> that all the changes for that port have by now been committed.
>
> What are we misunderstanding here?  My guess is that this is something to
> do with 'fixed_ips' not being a column directly in the Ports table, but
> instead calculated from relationships between the port ID and another
> (IPAllocation) table.  We've seen a similar problem in the past with
> binding:host_id, for which the same is true, i.e. info is in the separate
> portbindings table.
>
> Or could it be that the transaction hasn't really been closed yet, when
> update_port_postcommit hook is called?
>
> (This is with Icehouse-level code, so it could be something that's been
> fixed...)
>
> Many thanks,
>         Neil
>
> __________________________________________________________________________
> 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
>



-- 
Kevin Benton
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20150707/8e478d88/attachment.html>


More information about the OpenStack-dev mailing list