On 5/14/21 2:34 PM, Ilya Maximets wrote:
> On 5/7/21 9:28 PM, Dumitru Ceara wrote:
>> In ovsdb_cs_db_set_condition(), take into account all pending condition
>> changes for all tables when computing the db->cond_seqno at which the
>> monitor is expected to be updated.
>>
>> In the following scenario, with two tables, A and B, the old code
>> performed the following steps:
>> 1. Initial db->cond_seqno = X.
>> 2. Client changes condition for table A:
>>    - A->new_cond gets set
>>    - expected cond seqno returned to the client: X + 1
>> 3. ovsdb-cs sends the monitor_cond_change for table A
>>    - A->req_cond <- A->new_cond
>> 4. Client changes condition for table B:
>>    - B->new_cond gets set
>>    - expected cond seqno returned to the client: X + 1
>>    - however, because the conditon change at step 3 is still not replied
>>      to, table B's monitor_cond_change request is not sent yet.
>> 5. ovsdb-cs receives the reply for the condition change at step 3:
>>    - db->cond_seqno <- X + 1
>> 6. ovsdb-cs sends the monitor_cond_change for table B
>> 7. ovsdb-cs receives the reply for the condition change at step 6:
>>   - db->cond_seqno <- X + 2
>>
>> The client was incorrectly informed that it will have all relevant
>> updates for table B at seqno X + 1 while actually that happens later, at
>> seqno X + 2.
>>
>> Fixes: 46437c5232bd ("ovsdb-idl: Enhance conditional monitoring API")
>> Acked-by: Ben Pfaff <[email protected]>
>> Signed-off-by: Dumitru Ceara <[email protected]>
>> ---
>> V2:
>> - Addressed Ben's comments:
>>   - move hmap walk inside the 'if' branch.
>>   - don't use !! for bool.
>> - Added Ben's ack.
>> ---
>>  lib/ovsdb-cs.c | 23 +++++++++++++++++++++--
>>  1 file changed, 21 insertions(+), 2 deletions(-)
> 
> Thanks!  Applied to master and branch-2.15.
> 
> Could you, please, prepare backports for 2.14 and 2.13?
> 
> Best regards, Ilya Maximets.
> 

I sent a backport for 2.14 that should apply cleanly to branch 2.13 too:
https://patchwork.ozlabs.org/project/openvswitch/list/?series=244128

Thanks!

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

Reply via email to