Re: The same 2PC data maybe recovered twice - Mailing list pgsql-bugs

From suyu.cmj
Subject Re: The same 2PC data maybe recovered twice
Date
Msg-id 27cf1fe2-e8f9-4fca-a828-aa3ad3397acd.mengjuan.cmj@alibaba-inc.com
Whole thread Raw
Responses Re: The same 2PC data maybe recovered twice
List pgsql-bugs
Yes, this bug can also be reproduced on the master branch, and the corresponding reproduction patch is attached.

I also considered comparing the 2pc.prepare_start_lsn and checkpoint.redo in ProcessTwoPhaseBuffer before, but this method requires modifying the format of the 2pc checkpoint file, which will bring compatibility issues. Especially for released branches, assuming that a node has encountered this bug, it will not be able to start successfully due to FATAL during crash recovery, and therefore cannot manually commit previous two-phase transactions. Using magic number to distinguish 2pc checkpoint file versions can't solve the problem in the above scenario either.

For unreleased branches, writing 2pc.prepare_start_lsn into the checkpoint file will be a good solution, but for released branches, I personally think using WAL record to overwrite checkpoint data would be a more reasonable approach, What do you think?

Best Regards
suyu.cmj
Attachment

pgsql-bugs by date:

Previous
From: Michael Paquier
Date:
Subject: Re: Got FATAL in lock_twophase_recover() during recovery
Next
From: PG Bug reporting form
Date:
Subject: BUG #18019: misbehaviour by replication