xxx_is_deleted() is an interface that is expected to be used for OVSDB tracked changes only, but handle_updated_port() function handles both tracked and untracked rows. It may happen to behave as expected in this case but it is risky if the OVSDB IDL implementation changes.
Fixes: 3103487e087b ("Split out code to handle port binding db updates") Signed-off-by: Han Zhou <hz...@ovn.org> --- controller/binding.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/controller/binding.c b/controller/binding.c index 9f5393a92..efb747d52 100644 --- a/controller/binding.c +++ b/controller/binding.c @@ -2580,11 +2580,6 @@ handle_updated_port(struct binding_ctx_in *b_ctx_in, const struct sbrec_port_binding *pb, struct hmap *qos_map_ptr) { - /* Handle create and update changes only. */ - if (sbrec_port_binding_is_deleted(pb)) { - return true; - } - update_active_pb_ras_pd(pb, b_ctx_out->local_active_ports_ipv6_pd, "ipv6_prefix_delegation"); @@ -2825,6 +2820,11 @@ delete_done: SBREC_PORT_BINDING_TABLE_FOR_EACH_TRACKED (pb, b_ctx_in->port_binding_table) { + /* Loop to handle create and update changes only. */ + if (sbrec_port_binding_is_deleted(pb)) { + continue; + } + handled = handle_updated_port(b_ctx_in, b_ctx_out, pb, qos_map_ptr); if (!handled) { break; -- 2.30.2 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev