[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