Fix data checksum processing for temp relations and dropped databases When building the list of temporary relations to wait for, the code previously included temporary relations without storage, such as temporary views, even though they are irrelevant to checksum processing. As a result, enabling data checksums could wait for a long-lived session that owned only a temporary view.
This commit fixes the issue by filtering temporary relations with storage only, matching the existing behavior for non-temporary relations. Also, when enabling data checksums online, the launcher assigns the first worker to process shared catalogs and prevents later workers from doing so. Previously, if that worker's database was dropped after it had been selected for processing but before checksum processing began, the worker failed without processing the shared catalogs, yet they were still marked as processed. As a result, later workers skipped them, and checksum enabling could complete successfully even though the shared catalogs had never been processed. This commit fixes the issue by marking shared catalogs as processed only after a worker completes successfully. Author: Fujii Masao <[email protected]> Reviewed-by: Kyotaro Horiguchi <[email protected]> Reviewed-by: Daniel Gustafsson <[email protected]> Discussion: https://postgr.es/m/CAHGQGwGDHAQw=bmprzk+emkzvtxzid5ydurmuffbmwr6wxu...@mail.gmail.com Backpatch-through: 19 Branch ------ REL_19_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/c479ea58e7798b8cab8b8a4ca9e6ce3e292a3f17 Modified Files -------------- src/backend/postmaster/datachecksum_state.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-)
