Hello,

I believe this commit introduced a regression, not directly in OVN itself but in
the OVN ML2 driver in OpenStack. Since OpenStack is a reference CMS for OVN, I
believe it could be essential to mention this regression here. At least
OpenStack releases from Ussuri to Yoga are affected. Copying the content of the
external_ids column from both Logical_Switch_Port and Logical_Router_Port tables
starts an endless loop of revision_number bumping. Change in one table fires an
update in another and vice versa. I show an example of the Neutron log
file here,
and I also attach the same log but uncut in [1] since it is too big
for a letter. I will also
report this issue to the Neutron team.

...
2022-05-13 09:30:56.318 25 ... Successfully bumped revision number for
resource 8af189bd-c5bf-48a9-b072-3fb6c69ae592 (type: router_ports) to
4815
2022-05-13 09:30:56.366 25 ... Running txn n=1 command(idx=0):
CheckRevisionNumberCommand(...)
2022-05-13 09:30:56.367 25 ... Running txn n=1 command(idx=1):
SetLSwitchPortCommand(...)
2022-05-13 09:30:56.367 25 ... Running txn n=1 command(idx=2):
PgDelPortCommand(...)
2022-05-13 09:30:56.467 25 ... Successfully bumped revision number for
resource 8af189bd-c5bf-48a9-b072-3fb6c69ae592 (type: ports) to 4815
2022-05-13 09:30:56.880 25 ... Running txn n=1 command(idx=0):
CheckRevisionNumberCommand(...)
2022-05-13 09:30:56.881 25 ... Running txn n=1 command(idx=1):
UpdateLRouterPortCommand(...)
2022-05-13 09:30:56.881 25 ... Running txn n=1 command(idx=2):
SetLRouterPortInLSwitchPortCommand(...)
2022-05-13 09:30:56.984 25 ... Successfully bumped revision number for
resource 8af189bd-c5bf-48a9-b072-3fb6c69ae592 (type: router_ports) to
4816
2022-05-13 09:30:57.057 25 ... Running txn n=1 command(idx=0):
CheckRevisionNumberCommand(...)
2022-05-13 09:30:57.057 25 ... Running txn n=1 command(idx=1):
SetLSwitchPortCommand(...)
2022-05-13 09:30:57.058 25 ... Running txn n=1 command(idx=2):
PgDelPortCommand(...)
2022-05-13 09:30:57.159 25 ... Successfully bumped revision number for
resource 8af189bd-c5bf-48a9-b072-3fb6c69ae592 (type: ports) to 4816
2022-05-13 09:30:57.523 25 ... Running txn n=1 command(idx=0):
CheckRevisionNumberCommand(...)
2022-05-13 09:30:57.523 25 ... Running txn n=1 command(idx=1):
UpdateLRouterPortCommand(...)
2022-05-13 09:30:57.524 25 ... Running txn n=1 command(idx=2):
SetLRouterPortInLSwitchPortCommand(...)
2022-05-13 09:30:57.627 25 ... Successfully bumped revision number for
resource 8af189bd-c5bf-48a9-b072-3fb6c69ae592 (type: router_ports) to
4817
2022-05-13 09:30:57.674 25 ... Running txn n=1 command(idx=0):
CheckRevisionNumberCommand(...)
2022-05-13 09:30:57.674 25 ... Running txn n=1 command(idx=1):
SetLSwitchPortCommand(...)
2022-05-13 09:30:57.675 25 ... Running txn n=1 command(idx=2):
PgDelPortCommand(...)
2022-05-13 09:30:57.765 25 ... Successfully bumped revision number for
resource 8af189bd-c5bf-48a9-b072-3fb6c69ae592 (type: ports) to 4817
...

[1] https://pastebin.com/raw/NLP1b6Qm

On Wed, Feb 23, 2022 at 6:44 PM Selvaraj Palaniyappan
<selvara...@nutanix.com> wrote:
>
>
>
> On 23-Feb-2022, at 10:37 PM, Han Zhou <hz...@ovn.org<mailto:hz...@ovn.org>> 
> wrote:
>
>
>
> On Wed, Feb 23, 2022 at 1:30 AM Selvaraj Palaniyappan 
> <selvara...@nutanix.com<mailto:selvara...@nutanix.com>> wrote:
> >
> > This patch makes ovn-northd copy all string-string pairs in
> > external_ids column of the Logical_Router_Port table in
> > Northbound database to the equivalent column of the Port_Binding
> > table in Southbound database.
> >
> > Signed-off-by: Selvaraj Palaniyappan 
> > <selvara...@nutanix.com<mailto:selvara...@nutanix.com>>
> > ---
> >  northd/northd.c     |  1 +
> >  ovn-nb.xml          |  6 ++++++
> >  ovn-sb.xml          |  3 ++-
> >  tests/ovn-northd.at 
> > [ovn-northd.at]<https://urldefense.proofpoint.com/v2/url?u=http-3A__ovn-2Dnorthd.at&d=DwMFaQ&c=s883GpUCOChKOHiocYtGcg&r=s-LBGxFeMigvGGdbcJ8ZlFHWTAGRMXX30AvpXtJVEZs&m=UP7QVwCesJotsEqsy5wwlR3PqkC8Uhs_Yxhh7qs6dTyGjViW_oQ3Tvptsvsx9M9i&s=REAnkiwTw6MyIPjvn_UXAuuUIbFb0enLS70gccvVUDU&e=>
> >  | 12 ++++++++++++
> >  4 files changed, 21 insertions(+), 1 deletion(-)
> >
> > diff --git a/northd/northd.c b/northd/northd.c
> > index fc7a64f99..090922ae2 100644
> > --- a/northd/northd.c
> > +++ b/northd/northd.c
> > @@ -3240,6 +3240,7 @@ ovn_port_update_sbrec(struct northd_input *input_data,
> >          ds_destroy(&s);
> >
> >          struct smap ids = SMAP_INITIALIZER(&ids);
> > +        smap_clone(&ids, &op->nbrp->external_ids);
> >          sbrec_port_binding_set_external_ids(op->sb, &ids);
> >
> >          sbrec_port_binding_set_nat_addresses(op->sb, NULL, 0);
> > diff --git a/ovn-nb.xml b/ovn-nb.xml
> > index 6a6972856..293d25b32 100644
> > --- a/ovn-nb.xml
> > +++ b/ovn-nb.xml
> > @@ -2895,6 +2895,12 @@
> >      <group title="Common Columns">
> >        <column name="external_ids">
> >          See <em>External IDs</em> at the beginning of this document.
> > +        <p>
> > +          The <code>ovn-northd</code> program copies all these pairs into 
> > the
> > +          <ref column="external_ids"/> column of the
> > +          <ref table="Port_Binding"/> table in <ref db="OVN_Southbound"/>
> > +          database.
> > +        </p>
> >        </column>
> >      </group>
> >    </table>
> > diff --git a/ovn-sb.xml b/ovn-sb.xml
> > index 9ddacdf09..f7c41ccdc 100644
> > --- a/ovn-sb.xml
> > +++ b/ovn-sb.xml
> > @@ -3354,7 +3354,8 @@ tcp.flags = RST;
> >          <p>
> >            The <code>ovn-northd</code> program populates this column with
> >            all entries into the <ref column="external_ids"/> column of the
> > -          <ref table="Logical_Switch_Port"/> table of the
> > +          <ref table="Logical_Switch_Port"/> and
> > +          <ref table="Logical_Router_Port"/> tables of the
> >            <ref db="OVN_Northbound"/> database.
> >          </p>
> >        </column>
> > diff --git a/tests/ovn-northd.at 
> > [ovn-northd.at]<https://urldefense.proofpoint.com/v2/url?u=http-3A__ovn-2Dnorthd.at&d=DwMFaQ&c=s883GpUCOChKOHiocYtGcg&r=s-LBGxFeMigvGGdbcJ8ZlFHWTAGRMXX30AvpXtJVEZs&m=UP7QVwCesJotsEqsy5wwlR3PqkC8Uhs_Yxhh7qs6dTyGjViW_oQ3Tvptsvsx9M9i&s=REAnkiwTw6MyIPjvn_UXAuuUIbFb0enLS70gccvVUDU&e=>
> >  b/tests/ovn-northd.at 
> > [ovn-northd.at]<https://urldefense.proofpoint.com/v2/url?u=http-3A__ovn-2Dnorthd.at&d=DwMFaQ&c=s883GpUCOChKOHiocYtGcg&r=s-LBGxFeMigvGGdbcJ8ZlFHWTAGRMXX30AvpXtJVEZs&m=UP7QVwCesJotsEqsy5wwlR3PqkC8Uhs_Yxhh7qs6dTyGjViW_oQ3Tvptsvsx9M9i&s=REAnkiwTw6MyIPjvn_UXAuuUIbFb0enLS70gccvVUDU&e=>
> > index 84e52e701..5f7f5cb08 100644
> > --- a/tests/ovn-northd.at 
> > [ovn-northd.at]<https://urldefense.proofpoint.com/v2/url?u=http-3A__ovn-2Dnorthd.at&d=DwMFaQ&c=s883GpUCOChKOHiocYtGcg&r=s-LBGxFeMigvGGdbcJ8ZlFHWTAGRMXX30AvpXtJVEZs&m=UP7QVwCesJotsEqsy5wwlR3PqkC8Uhs_Yxhh7qs6dTyGjViW_oQ3Tvptsvsx9M9i&s=REAnkiwTw6MyIPjvn_UXAuuUIbFb0enLS70gccvVUDU&e=>
> > +++ b/tests/ovn-northd.at 
> > [ovn-northd.at]<https://urldefense.proofpoint.com/v2/url?u=http-3A__ovn-2Dnorthd.at&d=DwMFaQ&c=s883GpUCOChKOHiocYtGcg&r=s-LBGxFeMigvGGdbcJ8ZlFHWTAGRMXX30AvpXtJVEZs&m=UP7QVwCesJotsEqsy5wwlR3PqkC8Uhs_Yxhh7qs6dTyGjViW_oQ3Tvptsvsx9M9i&s=REAnkiwTw6MyIPjvn_UXAuuUIbFb0enLS70gccvVUDU&e=>
> > @@ -144,6 +144,18 @@ AT_CHECK([test x`ovn-nbctl lsp-get-up S1-R1` = xup])
> >  AT_CLEANUP
> >  ])
> >
> > +OVN_FOR_EACH_NORTHD([
> > +AT_SETUP([check LRP external id propagation to SBDB])
> > +ovn_start
> > +
> > +ovn-nbctl lr-add ro
> > +ovn-nbctl lrp-add ro lrp0 00:00:00:00:00:01 192.168.1.1/24 
> > [192.168.1.1]<https://urldefense.proofpoint.com/v2/url?u=http-3A__192.168.1.1_24&d=DwMFaQ&c=s883GpUCOChKOHiocYtGcg&r=s-LBGxFeMigvGGdbcJ8ZlFHWTAGRMXX30AvpXtJVEZs&m=UP7QVwCesJotsEqsy5wwlR3PqkC8Uhs_Yxhh7qs6dTyGjViW_oQ3Tvptsvsx9M9i&s=PUcZoLp7BsEjR4yGhEiTf6m-y5s2sVTkr0zXejxbJYw&e=>
> > +ovn-nbctl --wait=sb set logical_router_port lrp0 external_ids=test=123
> > +check_column "test=123" sb:Port_Binding external_ids logical_port=lrp0
> > +
> > +AT_CLEANUP
> > +])
> > +
> >  OVN_FOR_EACH_NORTHD([
> >  AT_SETUP([check IPv6 RA config propagation to SBDB])
> >  ovn_start
> > --
> > 2.22.3
> >
> > _______________________________________________
> > dev mailing list
> > d...@openvswitch.org<mailto:d...@openvswitch.org>
> > https://mail.openvswitch.org/mailman/listinfo/ovs-dev 
> > [mail.openvswitch.org]<https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.openvswitch.org_mailman_listinfo_ovs-2Ddev&d=DwMFaQ&c=s883GpUCOChKOHiocYtGcg&r=s-LBGxFeMigvGGdbcJ8ZlFHWTAGRMXX30AvpXtJVEZs&m=UP7QVwCesJotsEqsy5wwlR3PqkC8Uhs_Yxhh7qs6dTyGjViW_oQ3Tvptsvsx9M9i&s=ZHYlzG49NgbcOKN7ERq53X6xjxT8oNSIifxDID9lipc&e=>
>
> Thanks I applied to the main branch.
>
> Thanks Han for merging the commit to the main branch.
>
> Kind Regards,
> Selva
>
> Han
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to