Add CHECK_FOR_INTERRUPTS while decoding changes.
authorAmit Kapila <[email protected]>
Tue, 23 Aug 2022 04:50:02 +0000 (10:20 +0530)
committerAmit Kapila <[email protected]>
Tue, 23 Aug 2022 04:50:02 +0000 (10:20 +0530)
While decoding changes in a loop, if we skip all the changes there is no
CFI making the loop uninterruptible.

Reported-by: Whale Song and Andrey Borodin
Bug: 17580
Author: Masahiko Sawada
Reviwed-by: Amit Kapila
Backpatch-through: 10
Discussion: https://postgr.es/m/17580-849c1d5b6d7eb422@postgresql.org
Discussion: https://postgr.es/m/B319ECD6-9A28-4CDF-A8F4-3591E0BF2369@yandex-team.ru

src/backend/replication/logical/reorderbuffer.c

index 1c21a1d14b605a10f4302e945fb28cac7721d491..89cf9f9389ccf18a9d34888caaf581a6d6825d44 100644 (file)
@@ -2096,6 +2096,8 @@ ReorderBufferProcessTXN(ReorderBuffer *rb, ReorderBufferTXN *txn,
            Relation    relation = NULL;
            Oid         reloid;
 
+           CHECK_FOR_INTERRUPTS();
+
            /*
             * We can't call start stream callback before processing first
             * change.