On Tue, Jan 3, 2023 at 8:22 AM Ilya Maximets <[email protected]> wrote:
>
> The counter for the number of atoms has to be re-set to the number from
> the new database, otherwise the value will be incorrect.  For example,
> this is causing the atom counter doubling after online conversion of
> a clustered database.
>
> Miscounting may also lead to increased memory consumption by the
> transaction history or otherwise too aggressive transaction history
> sweep.
>
> Fixes: 317b1bfd7dd3 ("ovsdb: Don't let transaction history grow larger
than the database.")
> Signed-off-by: Ilya Maximets <[email protected]>
> ---
>  ovsdb/ovsdb.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/ovsdb/ovsdb.c b/ovsdb/ovsdb.c
> index 11786f376..afec96264 100644
> --- a/ovsdb/ovsdb.c
> +++ b/ovsdb/ovsdb.c
> @@ -715,5 +715,8 @@ ovsdb_replace(struct ovsdb *dst, struct ovsdb *src)
>
>      dst->rbac_role = ovsdb_get_table(dst, "RBAC_Role");
>
> +    /* Get statistics from the new database. */
> +    dst->n_atoms = src->n_atoms;
> +
>      ovsdb_destroy(src);
>  }
> --
> 2.38.1
>

Thanks Ilya. The fix looks good to me. It would be even better to update a
related test case to verify both n_atoms and n_txn_history_atoms are
correct after DB conversion.

Acked-by: Han Zhou <[email protected]>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to