On 5/17/21 11:22 AM, Dumitru Ceara wrote: > In ovsdb_idl_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-idl 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 condition change at step 3 is still not replied > to, table B's monitor_cond_change request is not sent yet. > 5. ovsdb-idl receives the reply for the condition change at step 3: > - db->cond_seqno <- X + 1 > 6. ovsdb-idl sends the monitor_cond_change for table B > 7. ovsdb-idl 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 <b...@ovn.org> > Signed-off-by: Dumitru Ceara <dce...@redhat.com> > (cherry picked from commit b5bb044fbe4c1395dcde5cc7d5081ef0099bb8b3) > --- > Note: This backport applies cleanly to both 2.14 and 2.13. > ---
Thanks! Applied to branches 2.14 and 2.13. Best regards, Ilya Maximets. _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev