Tom Lane wrote:
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

Reply via email to