REL11_v2-0001-Add-CHECK_FOR_INTERRUPTS-in-logical-decoding-s-pr.patch
application/octet-stream
Filename: REL11_v2-0001-Add-CHECK_FOR_INTERRUPTS-in-logical-decoding-s-pr.patch
Type: application/octet-stream
Part: 0
Patch
Format: format-patch
Series: patch v2-0001
Subject: Add CHECK_FOR_INTERRUPTS in logical decoding's processing changes loop.
| File | + | − |
|---|---|---|
| src/backend/replication/logical/reorderbuffer.c | 2 | 0 |
From f6d0610b06b377495a23b678e45b9fb3d0b4ba28 Mon Sep 17 00:00:00 2001
From: Masahiko Sawada <sawada.mshk@gmail.com>
Date: Mon, 15 Aug 2022 12:35:02 +0900
Subject: [PATCH v2] Add CHECK_FOR_INTERRUPTS in logical decoding's processing
changes loop.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Add a CHECK_FOR_INTERRUPTS() call in the main loop of processing
logical changes to make the logical decoding responsive to cancellations,
especially while the plugin skipping all changes.
Per bug #17580 reproted from 巨鲸 and Andrey Borodin. Backpatch to all
supported branches.
Author: Masahiko Sawada
Reviwed-by: Amit Kapila
Discussion: https://postgr.es/m/17580-849c1d5b6d7eb422@postgresql.org
Discussion: https://postgr.es/m/B319ECD6-9A28-4CDF-A8F4-3591E0BF2369@yandex-team.ru
Backpatch-through: 10
---
src/backend/replication/logical/reorderbuffer.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/backend/replication/logical/reorderbuffer.c b/src/backend/replication/logical/reorderbuffer.c
index 6c9b5dbced..1e297abf8d 100644
--- a/src/backend/replication/logical/reorderbuffer.c
+++ b/src/backend/replication/logical/reorderbuffer.c
@@ -1517,6 +1517,8 @@ ReorderBufferCommit(ReorderBuffer *rb, TransactionId xid,
Relation relation = NULL;
Oid reloid;
+ CHECK_FOR_INTERRUPTS();
+
switch (change->action)
{
case REORDER_BUFFER_CHANGE_INTERNAL_SPEC_CONFIRM:
--
2.24.3 (Apple Git-128)