[Pgpool-general] db mismatch problem

Longtime longtime at mail2000.com.tw
Tue May 26 06:10:50 UTC 2009


Hi Tatsuo !

Thanks your help!

This is my pgpool debug log download url
http://longtime.idv.tw/tmp/pgpool_update.log 


and I find another db mismatch problem with guid
this is pgpool debug log download url
http://longtime.idv.tw/tmp/pgpool_guid.log

example:
GUID Key Test Case

create table tmp_data (
   sColA         VARCHAR2(18),    -- Paimary key
   LastModified  DATE
);

-- newguid() Function : Randomly generated string of 18 yards
insert into tmp_data select newguid(), sysdate from dual;

-- DB Node in each generated Primary Key values are not identical.
Node 1:
      scola        |    lastmodified
--------------------+---------------------
VO5MGHT91749819968 | 2009-05-22 16:17:30
VO5MGHW06150886475 | 2009-05-22 16:17:32


Node 2:
      scola        |    lastmodified
--------------------+---------------------
VO5MGHT92778429003 | 2009-05-22 16:17:30
VO5MGHW04817271824 | 2009-05-22 16:17:32

-- Use Primary Key field value for the index, When Update data, An error occurred will be find.
update tmp_data set lastmodified = sysdate where sColA = 'VO5MGHT92778429003';
update tmp_data set lastmodified = sysdate where sColA = 'VO5MGHT91749819968';

ERROR:  pgpool detected difference of the number of inserted, updated or deleted tuples. Possible last query
was: "update tmp_data set
message contents do not agree with length in message type "E"

this case the slave db will not be stop query
and pcp_node_info result still are
192.168.1.7 9999 2 1073741823.500000
192.168.1.8 9999 2 1073741823.500000

It's not my expected value
I hope slave db can be stop query when data mismatch



> Can you show us pgpool log file contents for these errors?
> --
> Tatsuo Ishii
> SRA OSS, Inc. Japan

> ---------------------------------------------------------------------------------------------------------------------
> I have two case
> 
> case 1:
> When I both update schema & data, and master and slave DB mismatch
> 
> pgpool alert this messages:
> --
> PGDMS2=# update tmp_data set lastmodified = '2009-05-15 00:00:00' where lastmodified <= '2009-05-14';
> ERROR:  kind mismatch among backends. Possible last query was: "update tmp_data set lastmodified = '2009-05-
> 15 00:00:00' where lastmod
> message contents do not agree with length in message type "E"
> server closed the connection unexpectedly
>       This probably means the server terminated abnormally
>       before or while processing the request.
> The connection to the server was lost. Attempting reset: Succeeded.
> --
> 
> this case the slave db will be stop query
> and pcp_node_info result are
> 192.168.1.7 9999 2 1073741823.500000
> 192.168.1.8 9999 3 1073741823.500000
> 
> This is my expected value
> 
> 
> Case 2:
> When I only update data, and master and slave DB mismatch
> 
> pgpool alert this messages:
> --
> PGDMS2=# update profile set lastmodified = '2009-05-15 00:00:00'
> PGDMS2-#  where lastmodified between '2008-12-15 00:00:00' and '2009-05-10 23:59:59';
> ERROR:  pgpool detected difference of the number of inserted, updated or deleted tuples. Possible last query
> was: "update profile set
> message contents do not agree with length in message type "E"
> --
> 
> this case the slave db will not be stop query
> and pcp_node_info result still are
> 192.168.1.7 9999 2 1073741823.500000
> 192.168.1.8 9999 2 1073741823.500000
> 
> It's not my expected value
> I hope slave db can be stop query when data mismatch
> 
> 
> this is my pgpool.conf about replication mode + load_balance mode
> replication_mode = true
> load_balance_mode = true
> replication_stop_on_mismatch = true
> replicate_select = true
> reset_query_list = 'ABORT; RESET ALL; SET SESSION AUTHORIZATION DEFAULT'
> 
> 
> many thanks your help!


More information about the Pgpool-general mailing list