Arista L3 Agent is not thread safe

Bug #1474829 reported by Mark Goddard
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
networking-arista
New
Undecided
Unassigned

Bug Description

The Arista L3 agent is not thread safe, due to its use of instance variables on the AristaL3Driver singleton object that are modified on a per-request basis.

The modification is performed in the _select_dicts method, based on the IP version of the router being configured. There is no synchronisation either in this class or externally, so far as I can see. Therefore if two requests are made to the router API concurrently, then there will be a race condition which could result in strange errors.

This bug could be fixed either by removing the request-specific variables from the AristaL3Driver instance, or adding synchronisation around all calls to the object. There is already a lock used in the AristaServicePlugin class for synchronisation, but I can't see what it is achieving. The synchronization solution would also resolve bug 1473998, at the expense of performance.

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.