On Sun, Dec 17, 2023 at 9:03 PM Ilya Maximets <[email protected]> wrote:
>
> Datum of UUID and _version columns is accessed directly via
> ovsdb_row_get_uuid_rw() and ovsdb_row_get_version_rw() functions
> instead of ovsdb_data_* functions.  Meaning, the data will be
> directly modified even if it is shared between rows.
>
> Fix that by unsharing the data whenever RW pointer is taken.
>
> The issue was mostly hidden because weak reference assessment
> code always called ovsdb_datum_subtract() even if not needed.
> This way all the new transaction rows were always implicitly
> unshared.
>
> Also making ovsdb_datum_subtract() call conditional, so the
> issue can be hit by existing unit tests.
>
> Fixes: 485ac63d10f8 ("ovsdb: Add lazy-copy support for ovsdb_datum objects.")
> Signed-off-by: Ilya Maximets <[email protected]>

This looks correct to me.

Acked-by: Mike Pattrick <[email protected]>

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to