On 3/25/25 16:05, Mike Pattrick wrote:
> 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]>
> 

Thanks!  Applied and backported down to 3.2.

Best regards, Ilya Maximets.
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to