Re: bug in SignalSomeChildren

Bernd Helmle <mailings@oopsware.de>

From: Bernd Helmle <mailings@oopsware.de>
To: Fujii Masao <masao.fujii@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>
Cc: Robert Haas <robertmhaas@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2011-01-20T12:53:19Z
Lists: pgsql-hackers

--On 22. Dezember 2010 15:51:09 +0900 Fujii Masao <masao.fujii@gmail.com> 
wrote:

>>> How about doing target != ALL test at the head for the most common case
>>> (target == ALL)?
>>
>> That's an idea, but the test you propose implements it incorrectly.
>
> Thanks! I revised the patch.

I had a look at this for the current CF and the patch looks reasonable to 
me. Some testing shows that the changes are working as intended (at least, 
the wal sender actually receives now signals from SignalSomeChildren() as 
far as the DEBUG4 output shows). Maybe we should put in a small comment, 
why we special case BACKEND_TYPE_ALL (following Tom's comment about 
expensive shared memory access and IsPostmasterChildWalSender()). I marked 
it as "Ready for Committer".

Question for my understanding:

While reading the small patch, i realized that there's no 
BACKEND_TYPE_WALRECV or similar. If i understand correctly there's no need 
to handle it this way, since there's only one wal receiver process per 
instance?

-- 
Thanks

	Bernd