AttributeError when updating DvrEdgeRouter objects running on network nodes
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Fix Released
|
High
|
Daniel Gonzalez Nothnagel |
Bug Description
In a configuration with L3 HA, DVR and neutron-lbaasv2, it can happen that the update of a router with a connected load balancer crashes with the following stack trace (line numbers may be a bit outdated):
Failed to process compatible router: 192c77b2-
Traceback (most recent call last):
File "/usr/lib/
self.
File "/usr/lib/
self.
File "/usr/lib/
router['id'], router.
File "/usr/lib/
if ri and current_state != TRANSLATION_
AttributeError: 'DvrEdgeRouter' object has no attribute 'ha_state'
The issue is, that in a landscape with more network nodes than 'max_l3_
To verify if it has to check the ha state of a router object, neutron runs the following check:
if router.get('ha') and not is_dvr_only_agent
In our case that check is true, because the agent runs in mode 'dvr_snat', and the router is HA. But the actual router object running on the network node is of type DvrEdgeRouter and therefore has no ha_state attribute, causing the update to fail.
Changed in neutron: | |
importance: | Undecided → High |
tags: | added: neutron-proactive-backport-potential |
tags: | removed: neutron-proactive-backport-potential |
Fix proposed to branch: master /review. openstack. org/552097
Review: https:/