>>> I observed one strange behavior today that if postmaster process gets crashed/killed, then it kill all background processes but not the client backend process.
>> This is a known behaviour and there was some discussion on this
>> topic [1] previously as well.
> Now as it is confirmed to be valid issue, I will spend some time on this to find if there is something more appropriate solution.
I checked the latest code and found Heikki has already added code for secure_read using the latch mechanism (using WaitLatchOrSocket). It currently waits for two events i.e. WL_LATCH_SET and WL_SOCKET_READABLE.
If we add the event WL_POSTMASTER_DEATH also, client backend process handling will become same as other backend process. So postmaster death can be detected in the same way.
But I am not sure if WL_POSTMASTER_DEATH event was not added intentionally for some reason. Please confirm.
Also is it OK to add this even handling in generic path of Libpq?
Please let me know if I am missing something?
I feel this is worth investigation, example for what kind of cases libpq is
used for non-blocking sockets, because for such cases above idea
will not work.
Here, I think the bigger point is that, Tom was not in favour of
this proposal (making backends exit on postmaster death ) at that time,