Thread
-
[PATCH v1 1/1] Fix the Assert failure when initdb with track_commit_timestamp=on
Andy Fan <zhihuifan1213@163.com> — 2025-07-01T23:50:37Z
the real commit message depends on which solution is adopted. --- src/backend/access/transam/commit_ts.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/backend/access/transam/commit_ts.c b/src/backend/access/transam/commit_ts.c index 113fae1437a..da8bfb7167c 100644 --- a/src/backend/access/transam/commit_ts.c +++ b/src/backend/access/transam/commit_ts.c @@ -157,6 +157,13 @@ TransactionTreeSetCommitTsData(TransactionId xid, int nsubxids, if (!commitTsShared->commitTsActive) return; + /* + * There is no point to record a commit_ts for BootStrapCommitTs or + * FrozenTransactionId. + */ + if (unlikely(xid == BootstrapTransactionId || xid == FrozenTransactionId)) + return; + /* * Figure out the latest Xid in this batch: either the last subxid if * there's any, otherwise the parent xid. @@ -252,8 +259,6 @@ TransactionIdSetCommitTs(TransactionId xid, TimestampTz ts, int entryno = TransactionIdToCTsEntry(xid); CommitTimestampEntry entry; - Assert(TransactionIdIsNormal(xid)); - entry.time = ts; entry.nodeid = nodeid; -- 2.45.1 --=-=-=--