]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Disable commit timestamps during bootstrap
authorMichael Paquier <michael@paquier.xyz>
Fri, 4 Jul 2025 06:10:19 +0000 (15:10 +0900)
committerMichael Paquier <michael@paquier.xyz>
Fri, 4 Jul 2025 06:10:19 +0000 (15:10 +0900)
commitae20c105f0b20c80a6f57d43cf0ae118d0f53d7f
treec2d5acd7d76bbd5484407a6517183f59d0c17600
parent6d4395b4021d5f2640f2aadece1dad650b1e7037
Disable commit timestamps during bootstrap

Attempting to use commit timestamps during bootstrapping leads to an
assertion failure, that can be reached for example with an initdb -c
that enables track_commit_timestamp.  It makes little sense to register
a commit timestamp for a BootstrapTransactionId, so let's disable the
activation of the module in this case.

This problem has been independently reported once by each author of this
commit.  Each author has proposed basically the same patch, relying on
IsBootstrapProcessingMode() to skip the use of commit_ts during
bootstrap.  The test addition is a suggestion by me, and is applied down
to v16.

Author: Hayato Kuroda <kuroda.hayato@fujitsu.com>
Author: Andy Fan <zhihuifan1213@163.com>
Reviewed-by: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
Reviewed-by: Fujii Masao <masao.fujii@oss.nttdata.com>
Reviewed-by: Michael Paquier <michael@paquier.xyz>
Discussion: https://postgr.es/m/OSCPR01MB14966FF9E4C4145F37B937E52F5102@OSCPR01MB14966.jpnprd01.prod.outlook.com
Discussion: https://postgr.es/m/87plejmnpy.fsf@163.com
Backpatch-through: 13
src/backend/access/transam/commit_ts.c
src/test/modules/commit_ts/t/001_base.pl