txn_limbo: handle ROLLBACK during CONFIRM
Limbo could try to ROLLBACK LSN whose CONFIRM is in progress. This is how it could happen: - A synchronous transaction is created, written to WAL; - The fiber sleeps in the limbo waiting for CONFIRM or timeout; - Replica receives the transaction, sends ACK; - Master receives ACK, starts writing CONFIRM; - The first fiber times out and tries to write ROLLBACK for the LSN, whose CONFIRM is in progress right now. The patch adds more checks to the 'timed out' code path to see if it isn't too late to write ROLLBACK. If CONFIRM is in progress, the fiber will wait for its finish. Part of #5185
Loading
Please register or sign in to comment