[Pgpool-general] Understanding Error Messages
Tatsuo Ishii
ishii at sraoss.co.jp
Wed Dec 31 10:43:33 UTC 2008
> Quoting "Tatsuo Ishii" <ishii at sraoss.co.jp>:
> > BTW, next release of pgpool-II will print the statement which
> > generates the error above.
>
> Any idea when the next version will be released?
Coming January, I hope.
> Alternatively, is the current dev version stable enough for production use?
I hope so:-) Here is the current ChangeLog from dev version (not yet
committed). You might get some idea how 2.2 is like.
2008-12-31 Tatsuo Ishii <ishii at sraoss.co.jp>
* Add -d (debug) option to pcp commands. Patch contributed by Jun
Kuriyama.
2008-12-30 Tatsuo Ishii <ishii at sraoss.co.jp>
* Fix bug with query cancel. It seems this has not been working since
pgpool-II was born.
To fix this, now we have each connection's pid and cancel key in the
shared memory area. If a cancel packet is sent, the table is searched
by the pid and the cancel key. If found, the actual cancel key is
sent to each backend.
* Fix detect_error() so that it ignores NOTICE.
Without this following error occurs, for example:
BEGIN;
BEGIN;
ERROR: kind mismatch among backends 0[N] 1[E]
* Enhance "kind mismatch" error message to include original query.
This would not work for extended queries, though.
2008-12-23 Tatsuo Ishii <ishii at sraoss.co.jp>
* Do not make a connection cache for "postgres" database.
2008-12-20 Tatsuo Ishii <ishii at sraoss.co.jp>
* If SERIAL data type is used(checked in system catalog) and
insert_lock is true then automatically lock the table.
2008-12-13 Tatsuo Ishii <ishii at sraoss.co.jp>
* pool_process_query.c: refactor pool_process_query.c. Now it is
devided into pool_process_query.c and pool_proto_modules.c.
Also pool_proto_modules.h added which is a companion header
file.
* pool_process_query.c: avoid kind mismatch error caused by "SET
TRANSACTION ISOLATION LEVEL must be called before any query".
This could happen in following scenario:
* M:S1:BEGIN;
* S:S1:BEGIN;
* M:S1:SELECT 1; <-- only sent to MASTER
* M:S1:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
* S:S1:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
* M: <-- error
* S: <-- ok since no previous SELECT is sent. kind mismatch error occurs!
* pool_process_query.c: fix ReadyForQuery() by calling pool_unread
if backend after do_error_command executed not returns read for
query packet.
2008-12-08 Tatsuo Ishii <ishii at sraoss.co.jp>
* pool_process_query.c: Check serialization failure error and
abort all nodes if so. Otherwise we allow data inconsistency
among DB nodes. See following scenario: (M:master, S:slave)
M:S1:BEGIN;
M:S2:BEGIN;
S:S1:BEGIN;
S:S2:BEGIN;
M:S1:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
M:S2:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
S:S1:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
S:S2:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
M:S1:UPDATE t1 SET i = i + 1;
S:S1:UPDATE t1 SET i = i + 1;
M:S2:UPDATE t1 SET i = i + 1; <-- blocked
S:S1:COMMIT;
M:S1:COMMIT;
M:S2:ERROR: could not serialize access due to concurrent update
S:S2:UPDATE t1 SET i = i + 1; <-- success in UPDATE and data becomes inconsistent!
2008-12-08 Tatsuo Ishii <ishii at sraoss.co.jp>
* pool_process_query.c: Fix uninitialized variable in
read_kind_from_backend. Also refactor to make it more effective
and readable. Add lots of comments and enhance error message to
display each kind.
2008-11-15 Tatsuo Ishii <ishii at sraoss.co.jp>
* pool_process_query.c: Fix do_error_command. If mistakely assumed
that after sending an error query, always ReadyForQuery came
right after that. If some debugging or logging verboseness is
set, PostgreSQL might sends NOTICE before ReadyForQuery.
2008-11-12 Tatsuo Ishii <ishii at sraoss.co.jp>
* pool_process_query.c: Fix do_command in case of notice message
sent right after Complete command response. See threads in
pgpool-general:
Subject: Re: [Pgpool-general] Pgpool-II - replication problems
From: "nir osovsky" <nosovsky1 at gmail.com>
Date: Wed, 12 Nov 2008 01:00:36 -0800
2008-11-07 Tatsuo Ishii <ishii at sraoss.co.jp>
* Fix thoughtless coding in MD5 case checking. We should have
considered raw mode case. Bug pointed out by Duco Fijma.
2008-11-07 Tatsuo Ishii <ishii at sraoss.co.jp>
* Add client_idle_limit_in_recovery
2008-08-29 Tatsuo Ishii <ishii at sraoss.co.jp>
* main.c: Fix bug in fork_a_child which mistakely closed pipe fds
which are not created yet at the startup time
* pool_process_query.c: Allow to load balance DECLARE, FETCH and
CLOSE. Also fix comments.
2008-08-28 Tatsuo Ishii <ishii at sraoss.co.jp>
* main.c: Close all file descriptors when running in daemon mode.
Otherwise we inherit sockets from apache when it's started by
pgpoolAdmin. This results in that port 80 is occupied for
example. Pach provided by Akio Ishida. Also add
chdir("/"). This is always good for daemon programs.
* main.c: Always fail over and restart all children. Before we do
restart only if master has not been changed. This is wrong. If
we have trouble with network cable or something, TCP/IP stack
keeps on retrying for long time and the only way to prevent it
is restarting process.
2008-08-28 Tatsuo Ishii <ishii at sraoss.co.jp>
* pool_process_query.c: Fix/enhance log messages and comments
--
Tatsuo Ishii
SRA OSS, Inc. Japan
More information about the Pgpool-general
mailing list