When a parent Port_Binding is deleted we shouldn't clear the children's
'pb' field.  Container port bindings have their own Port_Binding SB
record so the child_lbinding->pb field should be cleared only when
their corresponding SB record is deleted.

Whithout this fix when a parent Port_Binding "remove" followed by "add"
operations are received in the same iteration in ovn-controller,
consider_container_lport() can be called with "pb == NULL" causing a
crash.

Fixes: 354bdba51abf ("ovn-controller: I-P for SB port binding and OVS interface 
in runtime_data.")
Signed-off-by: Dumitru Ceara <[email protected]>
---
 controller/binding.c | 3 +--
 tests/ovn.at         | 7 +++++++
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/controller/binding.c b/controller/binding.c
index cb60c5d..e632203 100644
--- a/controller/binding.c
+++ b/controller/binding.c
@@ -958,8 +958,7 @@ release_local_binding_children(const struct sbrec_chassis 
*chassis_rec,
             }
         }
 
-        /* Clear the local bindings' 'pb' and 'iface'. */
-        l->pb = NULL;
+        /* Clear the local bindings' 'iface'. */
         l->iface = NULL;
     }
 
diff --git a/tests/ovn.at b/tests/ovn.at
index 66b1d73..55dcea4 100644
--- a/tests/ovn.at
+++ b/tests/ovn.at
@@ -9126,6 +9126,13 @@ OVS_WAIT_UNTIL([test xup = x$(ovn-nbctl lsp-get-up vm1)])
 OVS_WAIT_UNTIL([test xup = x$(ovn-nbctl lsp-get-up foo1)])
 OVS_WAIT_UNTIL([test xup = x$(ovn-nbctl lsp-get-up bar1)])
 
+# Move VM1 to a new logical switch.
+ovn-nbctl ls-add mgmt2
+ovn-nbctl lsp-del vm1 -- lsp-add mgmt2 vm1
+OVS_WAIT_UNTIL([test xup = x$(ovn-nbctl lsp-get-up vm1)])
+OVS_WAIT_UNTIL([test xup = x$(ovn-nbctl lsp-get-up foo1)])
+OVS_WAIT_UNTIL([test xup = x$(ovn-nbctl lsp-get-up bar1)])
+
 as hv1 ovs-vsctl del-port vm1
 OVS_WAIT_UNTIL([test xdown = x$(ovn-nbctl lsp-get-up vm1)])
 OVS_WAIT_UNTIL([test xdown = x$(ovn-nbctl lsp-get-up foo1)])
-- 
1.8.3.1

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to