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
