Fix signal handling in logical replication workers

The logical replication worker processes now use the normal die()
handler for SIGTERM and CHECK_FOR_INTERRUPTS() instead of custom code.
One problem before was that the apply worker would not exit promptly
when a subscription was dropped, which could lead to deadlocks.

Author: Petr Jelinek <petr.jeli...@2ndquadrant.com>
Reported-by: Masahiko Sawada <sawada.m...@gmail.com>

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/9fcf670c2efdf31233d429f557ab77937f0f1e6a

Modified Files
--------------
src/backend/replication/logical/launcher.c  | 16 +++++++-------
src/backend/replication/logical/tablesync.c | 10 ++++-----
src/backend/replication/logical/worker.c    | 34 ++++++++++++++++++++++++++---
src/backend/tcop/postgres.c                 |  5 +++++
src/include/replication/logicalworker.h     |  2 ++
src/include/replication/worker_internal.h   |  4 ----
6 files changed, 50 insertions(+), 21 deletions(-)


-- 
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers

Reply via email to