On 11/30/20 5:52 AM, Han Zhou wrote:
> 
> 
> On Tue, Nov 24, 2020 at 4:16 AM Dumitru Ceara <[email protected]
> <mailto:[email protected]>> wrote:
>>
>> Pure IDL orphan rows, i.e., for which no "insert" operation was seen,
>> which are part of tables with change tracking enabled should also be
>> freed when the table track_list is flushed.
> 
> Hi Dumitru, does this change suggest that there are situations that a
> deleted row is tracked but there is no tracked_old_datum? Could you give
> an example of how it could happen? If a client didn't see a row
> "inserted" then how could the server send a notification about the
> "deletion"? If a row is never seen by a client IDL then I think it
> shouldn't be included in the update notification.
> 

Hi Han,

Ilya recently added a test case that exercises this exact scenario:

https://github.com/openvswitch/ovs/blob/fa57e9e45257f32b80c135c18ae821ac3c43a738/tests/ovsdb-idl.at#L1178

The "simple6" record in the test has weak references to "simple" records
"weak_row0", "weak_row1", "weak_row2".  But the monitor condition for
table "simple" is "s==row1_s".

That means that the IDL will create "pure" orphan records for
"weak_row0" and "weak_row1".

When the "simple6" record is deleted, the two orphan rows above should
also be deleted.  For that they're added to the track_list.

Without the fix, they'll just be removed from the list without ever
being freed.

Regards,
Dumitru

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

Reply via email to