On Thu, Aug 14, 2025 at 7:57 AM Ales Musil <[email protected]> wrote:
> > > On Wed, Aug 13, 2025 at 5:54 PM Dumitru Ceara via dev < > [email protected]> wrote: > >> As pointed out in the bug report, ovn-controller was not scheduling an >> immediate wake when it had detected a NetLink error due to a route >> operation it tried to do. Instead it was doing that too late, in the >> en_route_exchange_status I-P node callback. That one however is called >> _before_ en_route_exchange runs. >> >> Instead schedule an immediate wake exactly when we detect the error. In >> the next iteration en_route_exchange_status will propagate the error and >> trigger en_route_exchange_status to run. >> >> Fixes: 30587c6e4794 ("controller: Add en_route_exchange_status I-P node.") >> Reported-at: >> https://mail.openvswitch.org/pipermail/ovs-dev/2025-August/425298.html >> Reported-by: Xavier Simonart <[email protected]> >> Signed-off-by: Dumitru Ceara <[email protected]> >> --- >> controller/ovn-controller.c | 1 - >> controller/route-exchange.c | 4 ++++ >> 2 files changed, 4 insertions(+), 1 deletion(-) >> >> diff --git a/controller/ovn-controller.c b/controller/ovn-controller.c >> index 945952c5c4..00d7b4cf19 100644 >> --- a/controller/ovn-controller.c >> +++ b/controller/ovn-controller.c >> @@ -5441,7 +5441,6 @@ en_route_exchange_status_run(struct engine_node >> *node OVS_UNUSED, void *data) >> >> if (res->netlink_trigger_run) { >> state = EN_UPDATED; >> - poll_immediate_wake(); >> } else { >> state = EN_UNCHANGED; >> } >> diff --git a/controller/route-exchange.c b/controller/route-exchange.c >> index 360ffa14ee..161385aa49 100644 >> --- a/controller/route-exchange.c >> +++ b/controller/route-exchange.c >> @@ -21,6 +21,7 @@ >> #include <net/if.h> >> #include <stdbool.h> >> >> +#include "openvswitch/poll-loop.h" >> #include "openvswitch/vlog.h" >> #include "openvswitch/list.h" >> >> @@ -221,6 +222,9 @@ static int route_exchange_nl_status; >> do { \ >> if (!route_exchange_nl_status) { \ >> route_exchange_nl_status = (error); \ >> + if (error) { \ >> + poll_immediate_wake(); \ >> + } \ >> } \ >> } while (0) >> >> -- >> 2.50.1 >> >> _______________________________________________ >> dev mailing list >> [email protected] >> https://mail.openvswitch.org/mailman/listinfo/ovs-dev >> >> > Looks good to me, thanks. > Acked-by: Ales Musil <[email protected]> > Thank you Dumitru, I went ahead and applied this to main and brackported to 25.03. Regards, Ales _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
