On Fri, Nov 3, 2023 at 5:30 AM Ales Musil <[email protected]> wrote:
>
> On Mon, Oct 23, 2023 at 12:05 PM Xavier Simonart <[email protected]> wrote:
> >
> > If an ovsdb transaction fails (e.g. adding the same tunnel_key as another
> > ovn-ic to the same datapath, for a different port (race condition)),
> > there was no guarentee that ovn-ic would wake up, and that state would stay
> > until ovn-ic wake up, for instance due to some ovn-ic-sb changes.
> >
> > Signed-off-by: Xavier Simonart <[email protected]>
> > ---
> >  ic/ovn-ic.c | 17 +++++++++++++----
> >  1 file changed, 13 insertions(+), 4 deletions(-)
> >
> > diff --git a/ic/ovn-ic.c b/ic/ovn-ic.c
> > index e2023c2ba..bb91bad11 100644
> > --- a/ic/ovn-ic.c
> > +++ b/ic/ovn-ic.c
> > @@ -2216,10 +2216,19 @@ main(int argc, char *argv[])
> >                  ovn_db_run(&ctx);
> >              }
> >
> > -            ovsdb_idl_loop_commit_and_wait(&ovnnb_idl_loop);
> > -            ovsdb_idl_loop_commit_and_wait(&ovnsb_idl_loop);
> > -            ovsdb_idl_loop_commit_and_wait(&ovninb_idl_loop);
> > -            ovsdb_idl_loop_commit_and_wait(&ovnisb_idl_loop);
> > +            int rc1 = ovsdb_idl_loop_commit_and_wait(&ovnnb_idl_loop);
> > +            int rc2 = ovsdb_idl_loop_commit_and_wait(&ovnsb_idl_loop);
> > +            int rc3 = ovsdb_idl_loop_commit_and_wait(&ovninb_idl_loop);
> > +            int rc4 = ovsdb_idl_loop_commit_and_wait(&ovnisb_idl_loop);
> > +            if (!rc1 || !rc2 || !rc3 || !rc4) {
> > +                VLOG_DBG(" a transaction failed in: %s %s %s %s",
> > +                         !rc1 ? "nb" : "", !rc2 ? "sb" : "",
> > +                         !rc3 ? "ic_nb" : "", rc4 ? "ic_sb" : "");
> > +                /* A transaction failed. Wake up immediately to give
> > +                 * opportunity to send the proper transaction
> > +                 */
> > +                poll_immediate_wake();
> > +            }
> >          } else {
> >              /* ovn-ic is paused
> >               *    - we still want to handle any db updates and update the
> > --
> > 2.31.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]>

Thanks.  Applied to main.  Will backport to other branches once the CI passes.

Numan

>
> --
>
> Ales Musil
>
> Senior Software Engineer - OVN Core
>
> Red Hat EMEA
>
> [email protected]
>
> _______________________________________________
> dev mailing list
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to