View Issue Details

IDProjectCategoryView StatusLast Update
0000221pgpool-HABugpublic2016-08-11 09:57
Reporternomir Assigned Tot-ishii  
PrioritynormalSeveritycrashReproducibilitysometimes
Status closedResolutionopen 
Summary0000221: kind mismatch among backends. Possible last query was: "COMMIT" kind details are: 0[C] 1[N: ]
Descriptionpgpool-II log
-------------

Jul 21 14:15:01 ntv-pg02-sld02 pgpool-as[2161]: [1834-1] 2016-07-21 14:15:01: pid 2161: db: tve_self_20160710 LOG: DB node id: 0 backend pid: 35686 statement: BEGIN;select language0_.language_id as language1_122_, language0_.iso3_b as iso2_122_, language0_.iso3_t as iso3_122_, language0_.local_name as local_na4_122_, language0_.locale as locale5_122_, language0_.name as name6_122_ from language language0_ order by language0_.name
Jul 21 14:15:01 ntv-pg02-sld02 pgpool-as[2161]: [1835-1] 2016-07-21 14:15:01: pid 2161: db: tve_self_20160710 LOG: DB node id: 1 backend pid: 17420 statement: COMMIT
Jul 21 14:15:01 ntv-pg02-sld02 pgpool-as[2161]: [1836-1] 2016-07-21 14:15:01: pid 2161: db: tve_self_20160710 LOG: pool_send_and_wait: Error or notice message from backend: : DB node id: 1 backend pid: 17420 statement: "COMMIT" message: "WARNING: there is no transaction in progress
Jul 21 14:15:01 ntv-pg02-sld02 pgpool-as[2161]: [1837-1] 2016-07-21 14:15:01: pid 2161: db: tve_self_20160710 LOG: DB node id: 0 backend pid: 35686 statement: COMMIT
Jul 21 14:15:01 ntv-pg02-sld02 pgpool-as[2161]: [1838-1] 2016-07-21 14:15:01: pid 2161: db: tve_self_20160710 WARNING: packet kind of backend 1 ['N'] does not match with master/majority nodes packet kind ['C']
Jul 21 14:15:01 ntv-pg02-sld02 pgpool-as[2161]: [1839-1] 2016-07-21 14:15:01: pid 2161: db: tve_self_20160710 FATAL: failed to read kind from backend
Jul 21 14:15:01 ntv-pg02-sld02 pgpool-as[2161]: [1839-2] 2016-07-21 14:15:01: pid 2161: db: tve_self_20160710 DETAIL: kind mismatch among backends. Possible last query was: "COMMIT" kind details are: 0[C] 1[N: ]
Jul 21 14:15:01 ntv-pg02-sld02 pgpool-as[2161]: [1839-3] 2016-07-21 14:15:01: pid 2161: db: tve_self_20160710 HINT: check data consistency among db nodes

pgpool.conf
-----------

backend_hostname0 = '....'
backend_port0 = 5432
backend_weight0 = 0
backend_flag0 = 'ALLOW_TO_FAILOVER'

backend_hostname1 = '.....'
backend_port1 = 5432
backend_weight1 = 1
backend_flag1 = 'ALLOW_TO_FAILOVER'

replication_mode = off
replicate_select = off
load_balance_mode = on
master_slave_mode = on
parallel_mode = off

there is working synchronous streaming replication between backend_hostname0 and backend_hostname1.

postgresql.conf on backend_hostname0
------------------------------------

synchronous_commit = remote_write
synchronous_standby_names = 'backend_hostname1'


Our goal was to direct all select queries to backend_hostname1 (synchronous replica) and all write queries to backend_hostname0 (master).


Additional InformationI don't understand

- Why select query is forwarded to db node 0 (with weight 0)?
- Why following commit is forwarded to db node 1?
TagsNo tags attached.

Activities

harukat

2016-07-22 17:44

developer   ~0000925

This is not pgpool-HA's problem but pgpool-II's.

Which pgpool-II version do you use?
Some known bugs that cause kind mismatch error in master_slave_mode
are fixed already in the newest minor versions.

nomir

2016-07-22 18:15

reporter   ~0000926

Yes it is pgpool-II problem - I'am sorry. I don't know where I can change it in existing issue.

I am using Pgpool-II 3.5.3

t-ishii

2016-07-26 07:48

developer   ~0000929

Pgpool-II does not support multi statement query like:

BEGIN;select language0_.language_id as language1_122_, language0_.iso3_b as iso2_122_, language0_.iso3_t as iso3_122_, language0_.local_name as local_na4_122_, language0_.locale as locale5_122_, language0_.name as name6_122_ from language language0_ order by language0_.name

You should send "BEGIN" and "select... " as separate statements.

nomir

2016-08-02 21:12

reporter   ~0000957

Thanks for the reply. We were using JDBC driver in protocol version 2 which use multi statement query. We switched to protocol version 3. The similar error appear again.

Jul 31 16:18:29 ntv-pg02-sld02 pgpool[25732]: [1665-1] 2016-07-20 16:18:29: pid 25732: WARNING: packet kind of backend 1 ['3'] does not match with master/majority nodes packet kind ['2']
Jul 31 16:18:29 ntv-pg02-sld02 pgpool[25732]: [1666-1] 2016-07-20 16:18:29: pid 25732: FATAL: failed to read kind from backend
Jul 31 16:18:29 ntv-pg02-sld02 pgpool[25732]: [1666-2] 2016-07-20 16:18:29: pid 25732: DETAIL: kind mismatch among backends. Possible last query was: "BEGIN" kind details are: 0[2] 1[3]
Jul 31 16:18:29 ntv-pg02-sld02 pgpool[25732]: [1666-3] 2016-07-20 16:18:29: pid 25732: HINT: check data consistency among db nodes
Jul 31 16:18:29 ntv-pg02-sld02 pgpool[25103]: [1758-1] 2016-07-20 16:18:29: pid 25103: LOG: child process with pid: 25732 exits with status 512

t-ishii

2016-08-03 11:18

developer   ~0000960

Please provide a test case.

t-ishii

2016-08-03 11:20

developer   ~0000961

Also please start new bug report since this issue is bound to wrong project.

nomir

2016-08-09 22:32

reporter   ~0000976

I created new issue 231 bounded to correct project. This issue can be closed.

t-ishii

2016-08-11 09:56

developer   ~0000979

Closed by reporter's request.

Issue History

Date Modified Username Field Change
2016-07-22 15:44 nomir New Issue
2016-07-22 17:44 harukat Note Added: 0000925
2016-07-22 18:15 nomir Note Added: 0000926
2016-07-26 07:48 t-ishii Note Added: 0000929
2016-07-26 07:48 t-ishii Assigned To => t-ishii
2016-07-26 07:48 t-ishii Status new => feedback
2016-08-02 21:12 nomir Note Added: 0000957
2016-08-02 21:12 nomir Status feedback => assigned
2016-08-03 11:18 t-ishii Note Added: 0000960
2016-08-03 11:19 t-ishii Status assigned => feedback
2016-08-03 11:20 t-ishii Note Added: 0000961
2016-08-09 22:32 nomir Note Added: 0000976
2016-08-09 22:32 nomir Status feedback => assigned
2016-08-11 09:56 t-ishii Note Added: 0000979
2016-08-11 09:57 t-ishii Status assigned => closed