[Pgpool-general] killing pgpool backends?
Tatsuo Ishii
ishii at sraoss.co.jp
Thu Nov 20 03:41:00 UTC 2008
> Hi chaps,
>
> We have some windows telnet servers that occasionally get zombified processes that we can't kill without a reboot, and it's not always convenient to reboot them.
>
> Sometimes these zombified processes have a connection into our pgpool with an open transaction. Pgpool and postgres are on Linux servers.
>
> i.e. on the pool server we see
>
> 14535 ? S 0:00 pgpool: ash_ask TEMP 192.168.1.94(4803) idle in transaction
>
> and on the pg server
>
> 29362 ? Ss 0:00 postgres: ash_ask TEMP 192.168.1.98(55616) idle in transaction
>
> What's the best way to get rid of that connection into the postgres server?
>
> A pg_cancel_backend returns true but doesn't actually get rid of the postgres backend, so up to now I've just been kill -9'ing the pgpool backend for that user, and that sorts it out - the zombie process is still there on the telnet server but it doesn't reconnect.
>
> Is there any chance this could cause me a problem? and is there a better way?
>
> Thanks
> Glyn
Are you using pgpool-II? If so, client_idle_limit might help you. If
there's no activity from client side for seconds set by
client_idle_limit, pgpool will disconnect the client.
Also if you don' want to keep idle connection (connection pool) too
long, you could use connection_life_time.
Hope this helps,
--
Tatsuo Ishii
SRA OSS, Inc. Japan
More information about the Pgpool-general
mailing list