On 1/4/24 7:56 PM, Ilya Maximets wrote:
On 7/4/23 12:41, Tao Liu wrote:
Hi, Ilya. Thanks for your comment.

On 7/4/23 4:10 AM, Ilya Maximets wrote:
On 7/2/23 11:59, Tao Liu wrote:
Commit 02f31a1262fc has fixed the row references when insertion and
deletion execute in one IDL run. However, we can still hit ovn-controller
crash in pressure test where pb->datapath == NULL. It is triggered by
reference dst deletion in same IDL run:

    idl run:
      update1:
        insert port_binding
        insert datapath_binding
      update2:
        delete datapath_binding
        delete port_binding

Fix it by reparse reference src before dst deletion.
Hi.  Thanks for the patch!

There seems to be an issue indeed.  Removed rows should have valid
references to other removed rows.

However, I'm not sure this solution solves the issue in a general case
as it depends on the order of events.  If events in the update2 will
be in opposite order, the issue will still be there.
The opposite order of update2 has been fixed in commit 02f31a1262fc,
which now moved to

first reparse_row().

In a more general case we may also have two rows reference each other
and we need to preserve both references.

We probably could:

   1. Postpone all the deletions, execute insertions and updates.

   2. Call ovsdb_idl_reparse_refs_to_inserted() to re-parse every row
      that needs re-parsing due to newly added rows.

   3. Delete the rows that need to be deleted.

   4. Call ovsdb_idl_reparse_deleted() to get rid of references to
      deleted rows from non-deleted ones.
Sounds like a good idea, that makes things more clear.

What do you think?
Dumitru, maybe you have some thoughts on this?

And we will need need a unit test for this issue.
Will try to add one.
Hi, Tao Liu.

Are you still working on a fix for this issue?  Or maybe someone
else should take a look into that?

Best regards, Ilya Maximets.


Hi, Ilya

I'm not going on a new version. It would be appreciate if you can help to continue this fix.


Best regards, Tao

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to