[Pgpool-general] forcing pool_flush_it error
Marcelo Martins
pglists at zeroaccess.org
Mon Aug 10 21:33:48 UTC 2009
Does anyone know how I could force this pool_flush_it error to happen ?
Aug 9 06:15:24 pr2-pgpool1-1 pgpool: 2009-08-09 06:15:24 LOG: pid
4802: authentication is timeout
Aug 9 06:25:10 pr2-pgpool1-1 pgpool: 2009-08-09 06:25:10 ERROR: pid
4470: pool_flush_it: write failed (Broken pipe) offset: 0 wlen: 8192
Aug 9 06:25:10 pr2-pgpool1-1 pgpool: 2009-08-09 06:25:10 ERROR: pid
1193: pool_flush_it: write failed (Broken pipe) offset: 0 wlen: 8192
Aug 9 06:25:17 pr2-pgpool1-1 pgpool: 2009-08-09 06:25:17 LOG: pid
4470: connection closed. retry to create new connection pool.
Aug 9 06:25:25 pr2-pgpool1-1 pgpool: 2009-08-09 06:25:25 LOG: pid
4845: authentication is timeout
Aug 9 06:25:33 pr2-pgpool1-1 pgpool: 2009-08-09 06:25:33 LOG: pid
1193: connection closed. retry to create new connection pool.
On a staging environment I have tried exhaust pgpool the best I can
with several QA tests using our in-house apps.
I have tried killing apache, restarting it gracefully and non-
gracefully ... killing PostgreSQL backend processes (which causes a
pool_read error) .
I have tried killing pgbouncer processes which talk to pgpool (we have
apache -> pgbouncer -> pgpool-II 2.2.2 -> postgresql 8.3.7)
I have gone through some of the code on pool_process_query.c and
pool_stream.c to grasp some understanding of the flush, got a bit but
any clarifications welcome.
It seems like the databases don't get out of sync every time a
pool_flush_it error occurs but most of the time it does cause an issue.
Once that happens the PG logs start to spit out several of the lines
below found below.
....
2009-08-09 17:47:29 UTC 10.7.5.6(42839) 8764ERROR: syntax error at or
near "send" at character 1
2009-08-09 17:47:29 UTC 10.7.5.6(42839) 8764STATEMENT: send invalid
query from pgpool to abort transaction
2009-08-09 17:47:29 UTC 10.7.5.6(42839) 8764ERROR: syntax error at or
near "send" at character 1
.....
So far, this pool_flush_it errors that happened two sundays in a row
at same time coincides with the same time that logrotate restarts
apache2 after weekly rotating logs.
That is the first assumption right now but doesn't quite explain why
it only happens on one set of pgpool/database systems when it should
happen on all sets of pgpool/database since rotation
happens on all systems.
Any ideas on how I could replicate this pool_flush_it error is very
appreciated
Marcelo
PostgreSQL DBA
Linux/Solaris System Administrator
More information about the Pgpool-general
mailing list