A functional floating ip stops working sometimes if another floating ip is created and deleted.
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Invalid
|
Undecided
|
Rajeev Grover |
Bug Description
A test failure was noticed for test_cross_
A floating ip ‘a’ was instantiated on router A .
The floating IP was functional
A floating IP ‘b’ was instantiated on router B after about 30 seconds
Floating IP on router B was functional
Floating IP on router B was deleted
Floating IP on A was not reachable anymore
Root cause appears to be:
Analyzing from the logs it appears Agent gateway port was being created at instantiation of both the floating IPs and deleted on deletion of Floating IP ‘b’.
[2] , [3] , [4]
Expected behavior was to have Agent Gateway port created only once and not deleted on deletion of Floating IP ‘b’.
Creation and deletion of Agent Gateway port is guarded by the is_first and is_last checks on the subscribers set.
The subscribers set is a member of the FipNamespace Class
FipNamespace objects are stored as weakreferences
It appears the weakreference to the FipNamespace object created at the time of instantiation of floating IP ‘a’ was lost/garbage collected before instantiation of floating IP ‘b’ and therefore a new object of class Fipnamespace was instantiated which came along with a new subscribers set member. This in turn led to passing of the is_first and is_last checks for router B thus leading to failures.
Changed in neutron: | |
assignee: | nobody → Rajeev Grover (rajeev-grover) |
tags: | added: l3-dvr-backlog |
Fix proposed to branch: master /review. openstack. org/159230
Review: https:/