Re: BUG #17035: assert after commit

RekGRpth <rekgrpth@gmail.com>

From: RekGRpth <rekgrpth@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Alvaro Herrera <alvherre@alvh.no-ip.org>, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2021-05-27T03:51:09Z
Lists: pgsql-bugs
Ok, thanks. I add PushActiveSnapshot(GetTransactionSnapshot()); after
SPI_start_transaction and PopActiveSnapshot(); before SPI_commit and
it works!
with bst regrds, Rek>pth

чт, 27 мая 2021 г. в 08:22, Tom Lane <tgl@sss.pgh.pa.us>:
>
> RekGRpth <rekgrpth@gmail.com> writes:
> > Ok, I see. But I use SPI_execute_plan in background worker and no
> > ActivePortal there
>
> Well, you need to provide a snapshot.  replication/worker.c
> might serve as an example.
>
>                         regards, tom lane



Commits

  1. Use elog, not Assert, to report failure to provide an outer snapshot.

  2. Restore the portal-level snapshot after procedure COMMIT/ROLLBACK.