Run ovs_list_init on list_node from desired flow. Not doing that can potentially cause crash on ovs_assert(ovs_list_is_empty(&f->list_node)) this might happen when we have conditional monitoring enabled and have some flow like below being processed by ofctrl in a single run.
flowA is removed, flowA is added, flowA is removed. This is most likely related to BZ[0]. [0] https://bugzilla.redhat.com/2125723 Suggested-By: Dumitru Ceara <[email protected]> Signed-off-by: Ales Musil <[email protected]> --- I'm not adding the BZ as Reported-At because this might not fix the issue they are facing. It seems to be very hard to reproduce, however it still is a good idea to apply this fix as in the context it's the right to do and shouldn't cause any harm. --- controller/ofctrl.c | 1 + 1 file changed, 1 insertion(+) diff --git a/controller/ofctrl.c b/controller/ofctrl.c index c77991258..fb0e0869c 100644 --- a/controller/ofctrl.c +++ b/controller/ofctrl.c @@ -1535,6 +1535,7 @@ remove_flows_from_sb_to_flow(struct ovn_desired_flow_table *flow_table, free(sfr); } ovs_list_remove(&f->list_node); + ovs_list_init(&f->list_node); if (log_msg) { ovn_flow_log(&f->flow, log_msg); } -- 2.37.3 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
