[Pgpool-general] Idle connections not dying, pgpool 3.4.1
Erik Jones
erik at myemma.com
Tue Nov 6 17:44:17 UTC 2007
Greetings,
We've been using pgpool-1 for its connection pooling for a while and
have often had some issues with some child processes hanging in idle
state and not dying after either of their child_life_time and
connection_life_time have expired. I've usually just killed them
manually but today I decided to dig in a little deeper.
When stracing one of the idle (as in idle is displayed in the ps
display and I can track these procs to idle connection in
pg_stat_activity) they are sitting on:
select(10, [8 9], [], [8 9], NULL
Looking into the code base I seen these select calls come from
pool_process_query.c. I note that before the various selects are run
a timeval struct is set up but then not used in any of the select
calls. Is this deliberate? Is this why these procs are hanging?
What is supposed to generate events on the read/error descriptors so
that, in the absence of a timeout val, the code can continue and get
back to the life/connection expiration handling in do_child() in
child.c?
Erik Jones
Software Developer | Emma®
erik at myemma.com
800.595.4401 or 615.292.5888
615.292.0777 (fax)
Emma helps organizations everywhere communicate & market in style.
Visit us online at http://www.myemma.com
More information about the Pgpool-general
mailing list