You signed in with another tab or window.Reload to refresh your session.You signed out in another tab or window.Reload to refresh your session.You switched accounts on another tab or window.Reload to refresh your session.Dismiss alert
Improve stability of recovery test 035_standby_logical_decoding
This commit tweaks a couple of things in 035_standby_logical_decoding tohopefully stabilize it:- Autovacuum is now disabled, as it could hold a global xmin with atransaction.- Conflicts are generated with command sequences that removed rows (oncatalogs, shared or non-shared, or just plain relations) followed by aVACUUM. This was unstable because these did not check that the horizonmoved between the SQL commands and the VACUUM. The logic is refactoredas follows, to ensure that VACUUM removes dead rows before testing forslot invalidation on a standby (idea suggested by Andres Freund):-- Grab the current horizon.-- Launch SQL commands removing rows.-- Check that the snapshot horizon has been updated.-- Launch VACUUM on the relation whose rows have been removed by thefirst step.Note that there are still some issues because of standby snapshot WALrecords generated by the bgwriter, but this makes the test much morestable.Per reports from buildfarm members dikkop and skink, with analysis andtests from Alexander Lakhin.While on it, fix a couple of incorrect comments.Author: Bertrand DrouvotReviewed-by: Alexander Lakhin, Michael PaquierDiscussion:https://postgr.es/m/OSZPR01MB6310ED3CEDB531BCEDBC6AF2FD479@OSZPR01MB6310.jpnprd01.prod.outlook.comDiscussion:https://postgr.es/m/bf67e076-b163-9ba3-4ade-b9fc51a3a8f6@gmail.comBackpatch-through: 16