Avoid checkpoint between commit record and persistent post-commit.
The commit xlog record carries the information for objects which serves us for crash-recovery till post-commit persistent object work is done, hence cannot allow checkpoint in between. So, use inCommit flag to achieve the same. This makes it consistent with FinishPreparedTransaction() as well. Without the fix leaves out dangling persistent table entries and files on-disk for following sequence: - start transaction to drop a table - `RecordTransactionCommit()` - Checkpoint before `AtEOXact_smgr()` - Crash/Recover
Showing
想要评论请 注册 或 登录