Hi Himanshu, Many thanks for working on this!
> Please find attached the patch with the above idea of HOT chain's validation Please correct me if I'm wrong, but don't we have a race condition here: ``` + if ((TransactionIdDidAbort(pred_xmin) || TransactionIdIsInProgress(pred_xmin)) + && !TransactionIdEquals(pred_xmin, curr_xmin)) { ``` The scenario that concerns me is the following: 1. TransactionIdDidAbort(pred_xmin) returns false 2. The transaction aborts 3. TransactionIdIsInProgress(pred_xmin) returns false 4. (false || false) gives us false. An error is reported, although actually the condition should have been true. -- Best regards, Aleksander Alekseev