I looked into this but couldn't find why pgpool-II sent 4 to PostgreSQL. Any test case to reproduce the error please.
In the mean time I start to think that pgpool-II should not trigger failover if failed to read data from backend. Looking into PostgreSQL I found lots of places where FATAL errors are generated and PostgreSQL exits. If it exits, pgpool-II will detect a read error from socket that will cause failover. I feel this behavior is too fragile. I'm looking forward to tweak pool_stream.c so that it does not failover. Comments? -- Tatsuo Ishii SRA OSS, Inc. Japan > pgpool-II version is 2.2.4 compiled against libpq 8.1.15, and postgres > version is 8.1.15. > > Both run on Debian etch amd64. > > I haven't been able to create a test case yet, but I've been able to > verify that it always happens after a COMMIT (like my previous example) > or a BEGIN. > > > Regards > > On Wed, 2009-12-30 at 17:41 +0900, Tatsuo Ishii wrote: > > PostgreSQL, pgpool-II version? > > > > Do you have self contained test case? > > -- > > Tatsuo Ishii > > SRA OSS, Inc. Japan > > > > > On this same issue, I found that pgpool detected an error just before > > > failing a backend as a response to a COMMIT (this is on a different > > > setup than the one from my previous post). This is the relevant part > > > from the pgpool log: > > > > > > > > > 2009-12-26 00:13:04 DEBUG: pid 16329: ReadyForQuery: transaction state: > > > T > > > 2009-12-26 00:13:04 DEBUG: pid 16329: do_command: Query: COMMIT > > > 2009-12-26 00:13:04 DEBUG: pid 16329: wait_for_query_response: waiting > > > for backend 1 completing the query > > > 2009-12-26 00:13:04 DEBUG: pid 16329: detect_error: kind: E > > > 2009-12-26 00:13:04 DEBUG: pid 16329: do_command: kind: E > > > 2009-12-26 00:13:04 ERROR: pid 16329: pool_read: read failed (Connection > > > reset by peer) > > > 2009-12-26 00:13:04 LOG: pid 16329: notice_backend_error: 1 fail over > > > request from pid 16329 > > > > > > > > > I can see the commit on the postgres log of the failed backend, > > > followed by the "invalid frontend message type 4" which closes the > > > session and the connection to the client. That would explain why the > > > pool_read call on pgpool fails, but I still can't figure out why does > > > the backend receive that invalid message. > > > > > > > > > > > > Regards > > > > > > > > > On Thu, Dec 24, 2009 at 11:38 AM, Xavier Noguer <[email protected]> > > > wrote: > > > > > > > > Hello, > > > > > > > > I encountered a problem with a pgpool installation. Pgpool failed and > > > > detached a backend, but I don't know the reason because that > > > particular > > > > pgpool server is not writing to its log (problem with cronolog, and I > > > > can't restart pgpool since its a live system). > > > > > > > > What I did find was a suspicious message in the postgres log of the > > > > failed backend. Here are the relevant lines of the log: > > > > > > > > > > > > 2009-12-23 15:07:20 CLST, sess LOG: duration: 39.809 ms statement: > > > > EXECUTE <unnamed> [PREPARE: COMMIT] > > > > 2009-12-23 15:07:20 CLST, sess FATAL: invalid frontend message type 4 > > > > 2009-12-23 15:07:20 CLST, sess LOG: unexpected EOF on client > > > connection > > > > 2009-12-23 15:07:20 CLST, sess LOG: unexpected EOF on client > > > connection > > > > 2009-12-23 15:07:20 CLST, sess LOG: unexpected EOF on client > > > connection > > > > 2009-12-23 15:07:20 CLST, sess LOG: unexpected EOF on client > > > connection > > > > 2009-12-23 15:07:20 CLST, sess LOG: unexpected EOF on client > > > connection > > > > 2009-12-23 15:07:20 CLST, sess LOG: unexpected EOF on client > > > connection > > > > 2009-12-23 15:07:20 CLST, sess LOG: unexpected EOF on client > > > connection > > > > > > > > > > > > Since this happened at the same time as the failing of the backend > > > I'm > > > > assuming this condition made postgres close the connection to pgpool > > > and > > > > so triggered the failing and detaching of the backend. > > > > > > > > Does anybody know what message type 4 is ? > > > > > > > > > > > > Regards > > > > > > > > > > > > > > > > > _______________________________________________ > > > Pgpool-general mailing list > > > [email protected] > > > http://pgfoundry.org/mailman/listinfo/pgpool-general > _______________________________________________ Pgpool-general mailing list [email protected] http://pgfoundry.org/mailman/listinfo/pgpool-general
