Possible race condition in add_tunnel_endpoint() function

Bug #1174315 reported by Roman Podoliaka
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
New
Undecided
Unassigned

Bug Description

If GRE tunnels are used for tenant networks isolation, OVS agent makes a 'tunnel_sync' RPC call (containing a local ip value) to register a new tunnel endpoint. The corresponding handler in OVS Quantum plugins calls add_tunnel_endpoint() function of ovs_db_v2 module .

If two or more agents make 'tunnel_sync' RPC calls simultaneously, two different entries with the same value of tunnel id can be created (this value is used later by OVS agent to create OVS ports).

The problem is caused by the fact that there is no unique constraint on TunnelEndpoint.id column and SQLAlchemy Session instance is used in autocommit=True mode (each query is executed in the new DB transaction).

Tags: db ovs
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.