Re: Reset snapshot export state on the transaction abort

Поиск
Список
Период
Сортировка
От Michael Paquier
Тема Re: Reset snapshot export state on the transaction abort
Дата
Msg-id YWZk6nmAzQZS4B/z@paquier.xyz
обсуждение исходный текст
Ответ на Reset snapshot export state on the transaction abort  (Dilip Kumar <dilipbalaut@gmail.com>)
Ответы Re: Reset snapshot export state on the transaction abort
Список pgsql-hackers
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

Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Michael Paquier
Дата:
Сообщение: Re: Bug in DefineRange() with multiranges
Следующее
От: Stan Hu
Дата:
Сообщение: lastOverflowedXid does not handle transaction ID wraparound