pgsql: Fix snapshot handling in logicalmsg_decode

Поиск
Список
Период
Сортировка
От Tomas Vondra
Тема pgsql: Fix snapshot handling in logicalmsg_decode
Дата
Msg-id E1pUs5g-000A96-11@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Fix snapshot handling in logicalmsg_decode

Whe decoding a transactional logical message, logicalmsg_decode called
SnapBuildGetOrBuildSnapshot. But we may not have a consistent snapshot
yet at that point. We don't actually need the snapshot in this case
(during replay we'll have the snapshot from the transaction), so in
practice this is harmless. But in assert-enabled build this crashes.

Fixed by requesting the snapshot only in non-transactional case, where
we are guaranteed to have SNAPBUILD_CONSISTENT.

Backpatch to 11. The issue exists since 9.6.

Backpatch-through: 11
Reviewed-by: Andres Freund
Discussion: https://postgr.es/m/84d60912-6eab-9b84-5de3-41765a5449e8@enterprisedb.com

Branch
------
REL_11_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/8de91ebf2ac1e9922214bf2976a2fcc5c045c169

Modified Files
--------------
src/backend/replication/logical/decode.c        | 14 ++++++++++++--
src/backend/replication/logical/reorderbuffer.c | 10 ++++++++++
2 files changed, 22 insertions(+), 2 deletions(-)


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

Предыдущее
От: Tomas Vondra
Дата:
Сообщение: pgsql: Fix snapshot handling in logicalmsg_decode
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Fix some issues with wrong placement of pseudo-constant quals.