Fix Pgpool-II child process crash during shutdown.
authorTatsuo Ishii <ishii@postgresql.org>
Fri, 8 Nov 2024 10:53:50 +0000 (19:53 +0900)
committerTatsuo Ishii <ishii@postgresql.org>
Fri, 8 Nov 2024 11:18:46 +0000 (20:18 +0900)
commit25ad9e6d50343e2cbd4dc337803d231c92141021
treec2394a4c87bbe4b7ff64a00a0b1448182423850e
parent627ace7bb60ef21347dad8ff4e89041578b9c31c
Fix Pgpool-II child process crash during shutdown.

It is reported that pgpool child process crashes during shutdown.
 [pgpool-general: 9261] Re: Segmentation fault during shutdown

The actual crash was in close_all_backend_connections().
close_all_backend_connections() was called because on_system_exit
registers child_will_ho_down(). At the moment it seems pgpool child
had just started up and doing pool_init_cp(). The connection pool
object had not been completely initialized, that's cause of the crash.

To fix this, just remove the call to close_all_backend_connections()
in child_will_ho_down(). Although this will prevent the terminate
message ('X') being sent to backend, it should be harmless since
backend can take care such a disconnection without a terminate
message.

Problem reported and analyzed by: Emond Papegaaij
Backpatch-through: v4.2
Discussion: https://www.pgpool.net/pipermail/pgpool-general/2024-November/001938.html
src/protocol/child.c