aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/cache/syscache.c
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2024-01-23 14:46:01 +0900
committerMichael Paquier <michael@paquier.xyz>2024-01-23 14:46:01 +0900
commit46d8587b504170ca14f064890bc7ccbbd7523f81 (patch)
tree053498d5060e795a015de24bec74c605c0fdca27 /src/backend/utils/cache/syscache.c
parentb262ad440edecda0b1aba81d967ab560a83acb8a (diff)
downloadpostgresql-46d8587b504170ca14f064890bc7ccbbd7523f81.tar.gz
postgresql-46d8587b504170ca14f064890bc7ccbbd7523f81.zip
Improve stability of recovery test 035_standby_logical_decoding
This commit tweaks a couple of things in 035_standby_logical_decoding to hopefully stabilize it: - Autovacuum is now disabled, as it could hold a global xmin with a transaction. - Conflicts are generated with command sequences that removed rows (on catalogs, shared or non-shared, or just plain relations) followed by a VACUUM. This was unstable because these did not check that the horizon moved between the SQL commands and the VACUUM. The logic is refactored as follows, to ensure that VACUUM removes dead rows before testing for slot 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 the first step. Note that there are still some issues because of standby snapshot WAL records generated by the bgwriter, but this makes the test much more stable. Per reports from buildfarm members dikkop and skink, with analysis and tests from Alexander Lakhin. While on it, fix a couple of incorrect comments. Author: Bertrand Drouvot Reviewed-by: Alexander Lakhin, Michael Paquier Discussion: https://postgr.es/m/OSZPR01MB6310ED3CEDB531BCEDBC6AF2FD479@OSZPR01MB6310.jpnprd01.prod.outlook.com Discussion: https://postgr.es/m/bf67e076-b163-9ba3-4ade-b9fc51a3a8f6@gmail.com Backpatch-through: 16
Diffstat (limited to 'src/backend/utils/cache/syscache.c')
0 files changed, 0 insertions, 0 deletions