On Mon, Oct 11, 2021 at 08:46:32PM +0530, Dilip Kumar wrote: > As reported at [1], if the transaction is aborted during export > snapshot then ExportInProgress and SavedResourceOwnerDuringExport are > not getting reset and that is throwing an error > "clearing exported snapshot in wrong transaction state" while > executing the next command. The attached patch clears this state if > the transaction is aborted.
Injecting an error is enough to reproduce the failure in a second command after the first one failed. This could happen on OOM for the palloc() done at the beginning of SnapBuildInitialSnapshot(). @@ -2698,6 +2698,9 @@ AbortTransaction(void) /* Reset logical streaming state. */ ResetLogicalStreamingState(); + /* Reset snapshot export state. */ + ResetSnapBuildExportSnapshotState(); Shouldn't we care about the case of a sub-transaction abort as well? See AbortSubTransaction(). -- Michael
signature.asc
Description: PGP signature