[ovs-dev] [PATCH v3] Revert "ovsdb-idl: Avoid sending redundant conditional monitoring updates"

Dumitru Ceara dceara at redhat.com
Mon Mar 30 08:50:42 UTC 2020


On 3/27/20 11:25 PM, Ilya Maximets wrote:
> On 3/26/20 6:00 PM, Ilya Maximets wrote:
>> On 3/25/20 9:15 PM, Dumitru Ceara wrote:
>>> This reverts commit 5351980b047f4dd40be7a59a1e4b910df21eca0a.
>>>
>>> If the ovsdb-server reply to "monitor_cond_since" requests has
>>> "found" == false then ovsdb_idl_db_parse_monitor_reply() calls
>>> ovsdb_idl_db_clear() which iterates through all tables and
>>> unconditionally sets table->cond_changed to false.
>>>
>>> However, if the client had already set a new condition for some of the
>>> tables, this new condition request will never be sent to ovsdb-server
>>> until the condition is reset to a different value. This is due to the
>>> check in ovsdb_idl_db_set_condition().
>>>
>>> One way to replicate the issue is described in the bugzilla reporting
>>> the bug, when ovn-controller is configured to use "ovn-monitor-all":
>>> https://bugzilla.redhat.com/show_bug.cgi?id=1808125#c6
>>>
>>> Commit 5351980b047f tried to optimize sending redundant conditional
>>> monitoring updates but the chances that this scenario happens with the
>>> latest code is quite low since commit 403a6a0cb003 ("ovsdb-idl: Fast
>>> resync from server when connection reset.") changed the behavior of
>>> ovsdb_idl_db_parse_monitor_reply() to avoid calling ovsdb_idl_db_clear()
>>> in most cases.
>>>
>>> Reported-by: Dan Williams <dcbw at redhat.com>
>>> Reported-at: https://bugzilla.redhat.com/1808125
>>> CC: Andy Zhou <azhou at ovn.org>
>>> Fixes: 5351980b047f ("ovsdb-idl: Avoid sending redundant conditional monitoring updates")
>>> Signed-off-by: Dumitru Ceara <dceara at redhat.com>
>>
>> LGTM,
>> Acked-by: Ilya Maximets <i.maximets at ovn.org>
>>
> 
> Thanks Dumitru, Han and Numan.
> I went ahead and applied this patch to master.  Backported down to 2.7.
> 
> Best regards, Ilya Maximets.
> 

Thanks!



More information about the dev mailing list