Re: Fix orphaned 2pc file which may casue instance restart failed
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: 清浅 <drec.wu@foxmail.com>
Cc: pgsql-hackers <pgsql-hackers@lists.postgresql.org>
Date: 2024-10-01T06:49:53Z
Lists: pgsql-hackers
On Wed, Sep 11, 2024 at 06:21:37PM +0900, Michael Paquier wrote: >> If gxact1's local xid is not frozen, the startup process will remove >> the orphaned 2pc file. However, if the xid's corresponding clog file is >> truncated by `vacuum`, the startup process will raise error 'could not >> access status of transaction xxx', due to it could not found the >> transaction's status file in dir `pg_xact`. > > Hmm. I've not seen that in the field. Let me check that.. Ah, yes, that's clearly broken. The origin of the problem was effe7d9552dd, which was from me, so backpatched all the way down after adding a comment explaining the reason why we'd better read the value before the 2PC state lock is released. -- Michael
Commits
-
Fix race condition in COMMIT PREPARED causing orphaned 2PC files
- 34d751ba7b30 12.21 landed
- 7bfaa467193c 13.17 landed
- 5f15107875f2 14.14 landed
- 41ab4568043b 15.9 landed
- 7de9b64a5163 16.5 landed
- f250cb29d908 17.1 landed
- cf4401fe6cf5 18.0 landed