[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