[Pgpool-general] Understanding Error Messages

Marcelo Martins pglists at zeroaccess.org
Wed Dec 31 19:29:03 UTC 2008


That is freaking awesome .. thank you

I have downloaded the CVS a few minutes ago and I'm running some tests  
with it.

One thing that I have just done so far was enabling the  
"replication_stop_on_mismatch" (which I don't use but I wanted to  
check it out anyways)
I have one table with one record more on node1 than on node0 and I'm  
not seeing the mismatch kind error.
If I remember correctly one I used this option before that mismatch  
error shows up and then node1 (in this case) would get degenerated.

I'm gonna increase the records difference to see if that makes any  
difference


Happy New Year
~~~~~~~~~~~~~~
Marcelo
PostgreSQL DBA
Linux/Solaris System Administrator

On Dec 31, 2008, at 4:43 AM, Tatsuo Ishii wrote:

>> 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
> _______________________________________________
> Pgpool-general mailing list
> Pgpool-general at pgfoundry.org
> http://pgfoundry.org/mailman/listinfo/pgpool-general



More information about the Pgpool-general mailing list