Oliver Jowett <[EMAIL PROTECTED]> writes:
I think pqsignal should be passing SA_NOCLDSTOP in sa_flags,
With that patch applied, the problem is indeed gone on my system. However, I would still like to know why 7.4 didn't show the same misbehavior, when it isn't using this flag.
It looks like the 7.4 code never unblocks signals in the collector process, so that process never gets stopped by SIGTSTP.
On the 7.4.1 install I have to hand, from /proc/<pid>/status, the buffer process reports:
SigPnd: 0000000000000000 ShdPnd: 0000000000000000 SigBlk: 0000000000000000 SigIgn: 0000000001006a07 SigCgt: 0000000000010000
while the collector process has:
SigPnd: 0000000000000000 ShdPnd: 0000000000000000 SigBlk: ffffffff3ff9fa07 SigIgn: 0000000001007a07 SigCgt: 0000000000000000
TSTP is signal 20 here which appears to be blocked (mask of 80000) in the collector process.
A quick glance at the REL7_4_STABLE pgstat.c shows only one PG_SETMASK, executed in the buffer process only.
-O
---------------------------(end of broadcast)--------------------------- TIP 8: explain analyze is your friend