On Tue, Mar 25, 2025 at 5:48 AM Ilya Maximets <[email protected]> wrote: > > The weak reference test sends two transactions and then waits for an > update and sends a third transaction. First transaction adds a row > and the second one deletes it. The test relies on an IDL run between > the second and the third transactions to receive and process updates > from both previous transactions, and that is not guaranteed. This > is causing frequent test failures in CI. > > If the server is slow to send an update for the second transaction, > the IDL run will return without receiving it and the test application > has no way to know that it needs to wait for one more update. The > change sequence number doesn't have a meaning other than it changes > on updates, so we can't rely on it to wait for two updates. > > The strong reference test has somewhat similar issue, it sends two > transactions and then expects both updates to be received together. > And that is, again, not guaranteed. However, the difference here is > that the issue (crash) that it tries to reproduce requires both > updates to be received within the same IDL run, which was not a hard > requirement for the weak reference test. The weak reference test > tolerates receiving updates in two separate IDL runs, so we could have > fixed it by waiting for an update after the first transaction without > clearing the tracking and then waiting again after the second. But > such approach would not work for the strong reference test. And there > is actually no way for us to ensure that both updates will be received > within the same IDL run. Best we can do is to sleep for some time > hoping that it's enough for both updates to be queued up. So, let's > do that. Tests are very simple and fast, so sleeping for 1 second > should be enough. > > 'refs to link[12]' tests are similar to a strong reference test in > terms that they require changes to be processed within the same > IDL run. > > Fixes: 02f31a1262fc ("ovsdb-idl: Preserve references for rows deleted in same > IDL run as their insertion.") > Fixes: 91e1ff5dde39 ("ovsdb-idl: Don't reparse orphaned rows.") > Fixes: 4102674b3eca ("ovsdb-idl: Preserve change_seqno when deleting rows.") > Signed-off-by: Ilya Maximets <[email protected]>
Acked-by: Mike Pattrick <[email protected]> _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
