*** a/src/backend/postmaster/postmaster.c --- b/src/backend/postmaster/postmaster.c *************** *** 3149,3161 **** SignalSomeChildren(int signal, int target) if (bp->dead_end) continue; ! if (!(target & BACKEND_TYPE_NORMAL) && !bp->is_autovacuum) ! continue; ! if (!(target & BACKEND_TYPE_AUTOVAC) && bp->is_autovacuum) ! continue; ! if (!(target & BACKEND_TYPE_WALSND) && ! IsPostmasterChildWalSender(bp->child_slot)) ! continue; ereport(DEBUG4, (errmsg_internal("sending signal %d to process %d", --- 3149,3167 ---- if (bp->dead_end) continue; ! if (!(target & BACKEND_TYPE_ALL)) ! { ! int child; ! ! if (bp->is_autovacuum) ! child = BACKEND_TYPE_AUTOVAC; ! else if (IsPostmasterChildWalSender(bp->child_slot)) ! child = BACKEND_TYPE_WALSND; ! else ! child = BACKEND_TYPE_NORMAL; ! if (!(target & child)) ! continue; ! } ereport(DEBUG4, (errmsg_internal("sending signal %d to process %d", *************** *** 4362,4374 **** CountChildren(int target) if (bp->dead_end) continue; ! if (!(target & BACKEND_TYPE_NORMAL) && !bp->is_autovacuum) ! continue; ! if (!(target & BACKEND_TYPE_AUTOVAC) && bp->is_autovacuum) ! continue; ! if (!(target & BACKEND_TYPE_WALSND) && ! IsPostmasterChildWalSender(bp->child_slot)) ! continue; cnt++; } --- 4368,4386 ---- if (bp->dead_end) continue; ! if (!(target & BACKEND_TYPE_ALL)) ! { ! int child; ! ! if (bp->is_autovacuum) ! child = BACKEND_TYPE_AUTOVAC; ! else if (IsPostmasterChildWalSender(bp->child_slot)) ! child = BACKEND_TYPE_WALSND; ! else ! child = BACKEND_TYPE_NORMAL; ! if (!(target & child)) ! continue; ! } cnt++; }