pg.ddx.io pgsql-committers@postgresql.org mailing list archivehelp / color / mirror / Atom feed
pgsql: Fix failures with incorrect epoch handling for 2PC files at reco 2+ messages / 1 participants [nested] [flat]
* pgsql: Fix failures with incorrect epoch handling for 2PC files at reco @ 2024-12-30 00:58 Michael Paquier <michael@paquier.xyz> 0 siblings, 0 replies; 2+ messages in thread From: Michael Paquier @ 2024-12-30 00:58 UTC (permalink / raw) To: pgsql-committers@lists.postgresql.org Fix failures with incorrect epoch handling for 2PC files at recovery At the beginning of recovery, an orphaned two-phase file in an epoch different than the one defined in the checkpoint record could not be removed based on the assumptions that AdjustToFullTransactionId() relies on, assuming that all files would be either from the current epoch or from the previous epoch. If the checkpoint epoch was 0 while the 2PC file was orphaned and in the future, AdjustToFullTransactionId() would underflow the epoch used to build the 2PC file path. In non-assert builds, this would create a WARNING message referring to a 2PC file with an epoch of "FFFFFFFF" (or UINT32_MAX), as an effect of the underflow calculation, leaving the orphaned file around. Some tests are added with dummy 2PC files in the past and the future, checking that these are properly removed. Issue introduced by 5a1dfde8334b, that has switched two-phase state files to use FullTransactionIds. Reported-by: Vitaly Davydov Author: Michael Paquier Reviewed-by: Vitaly Davydov Discussion: https://postgr.es/m/13b5b6-676c3080-4d-531db900@47931709 Backpatch-through: 17 Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/7e125b20eed65e61b07e2e9ef6901467e4f14272 Modified Files -------------- src/backend/access/transam/twophase.c | 167 +++++++++++++++++++++++----------- src/test/recovery/t/009_twophase.pl | 34 +++++++ 2 files changed, 150 insertions(+), 51 deletions(-) ^ permalink raw reply [nested|flat] 2+ messages in thread
* pgsql: Fix failures with incorrect epoch handling for 2PC files at reco @ 2024-12-30 00:58 Michael Paquier <michael@paquier.xyz> 0 siblings, 0 replies; 2+ messages in thread From: Michael Paquier @ 2024-12-30 00:58 UTC (permalink / raw) To: pgsql-committers@lists.postgresql.org Fix failures with incorrect epoch handling for 2PC files at recovery At the beginning of recovery, an orphaned two-phase file in an epoch different than the one defined in the checkpoint record could not be removed based on the assumptions that AdjustToFullTransactionId() relies on, assuming that all files would be either from the current epoch or from the previous epoch. If the checkpoint epoch was 0 while the 2PC file was orphaned and in the future, AdjustToFullTransactionId() would underflow the epoch used to build the 2PC file path. In non-assert builds, this would create a WARNING message referring to a 2PC file with an epoch of "FFFFFFFF" (or UINT32_MAX), as an effect of the underflow calculation, leaving the orphaned file around. Some tests are added with dummy 2PC files in the past and the future, checking that these are properly removed. Issue introduced by 5a1dfde8334b, that has switched two-phase state files to use FullTransactionIds. Reported-by: Vitaly Davydov Author: Michael Paquier Reviewed-by: Vitaly Davydov Discussion: https://postgr.es/m/13b5b6-676c3080-4d-531db900@47931709 Backpatch-through: 17 Branch ------ REL_17_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/c3de0f9eed384f96d846d56f59b68850598e8005 Modified Files -------------- src/backend/access/transam/twophase.c | 167 +++++++++++++++++++++++----------- src/test/recovery/t/009_twophase.pl | 34 +++++++ 2 files changed, 150 insertions(+), 51 deletions(-) ^ permalink raw reply [nested|flat] 2+ messages in thread
end of thread, other threads:[~2024-12-30 00:58 UTC | newest] Thread overview: 2+ messages (download: mbox mbox.gz follow: Atom feed) -- links below jump to the message on this page -- 2024-12-30 00:58 pgsql: Fix failures with incorrect epoch handling for 2PC files at reco Michael Paquier <michael@paquier.xyz> 2024-12-30 00:58 pgsql: Fix failures with incorrect epoch handling for 2PC files at reco Michael Paquier <michael@paquier.xyz>
This inbox is served by DDX for PostgreSQL; see mirroring instructions for how to clone and mirror all data and code used for this inbox