[Pgpool-general] SQL sessions die when a node fails
J. Carlos Muro
murojc at gmail.com
Thu Jun 25 14:42:37 UTC 2009
Hi! If I shutdown a postgresql node while I am in a sql session, it will
stop working. Is that normal?
I have the next scenario:
vapp1a: server with pgpool, listening port 5431
vpgsql1a: server with postgresql, backend 0
vpgsql1b: server with postgresql, backend 1
Setups for pgpool:
replication_mode = true
load_balance_mode = true
replicate_select = true
Pgpool start logs look this way:
Jun 25 18:31:49 vapp1a pgpool: 2009-06-25 18:31:41 DEBUG: pid 30820:
num_backends: 2 num_backends: 2 total_weight: 2.000000
Jun 25 18:31:49 vapp1a pgpool: 2009-06-25 18:31:41 DEBUG: pid 30820:
backend 0 weight: 1073741823.500000
Jun 25 18:31:49 vapp1a pgpool: 2009-06-25 18:31:41 DEBUG: pid 30820:
backend 1 weight: 1073741823.500000
[....]
Jun 25 18:31:51 app1a pgpool: 2009-06-25 18:31:42 LOG: pid 30820: pgpool
successfully started
Jun 25 18:31:51 app1a pgpool: 2009-06-25 18:31:42 DEBUG: pid 30861: I am
PCP 30861
I log-in to the database through pgpool and execute some inserts:
pgpool at vapp1:~$ psql -h localhost -p 5431 -U auser mybase
mybase=> create table test (id integer);
mybase=> insert into test (1);
I see that row on both vpgsql1a and vpgsql1b. I won't exit the psql session
yet...
Now I stop backend 1 and get the next pgpool logs:
Jun 25 18:36:58 vapp1a pgpool: 2009-06-25 18:36:58 DEBUG: pid 30860:
detect_error: kind: E
Jun 25 18:36:58 vapp1a pgpool: 2009-06-25 18:36:58 DEBUG: pid 30860:
detect_stop_postmaster_error: receive admin shutdown error from a node.
Jun 25 18:36:58 vapp1a pgpool: 2009-06-25 18:36:58 LOG: pid 30860:
notice_backend_error: 1 fail over request from pid 30860
Jun 25 18:36:58 vapp1a pgpool: 2009-06-25 18:36:58 DEBUG: pid 30820:
failover_handler called
Jun 25 18:36:58 vapp1a pgpool: 2009-06-25 18:36:58 DEBUG: pid 30820:
failover_handler: starting to select new master node
Jun 25 18:36:59 vapp1a pgpool: 2009-06-25 18:36:58 LOG: pid 30820:
starting degeneration. shutdown host vpgsql1b(5432)
Jun 25 18:36:59 vapp1a pgpool: 2009-06-25 18:36:58 DEBUG: pid 30820:
failover_handler: kill 30829
[....]
Jun 25 18:37:00 vapp1a pgpool: 2009-06-25 18:36:58 LOG: pid 30820:
failover_handler: set new master node: 0
Jun 25 18:37:00 vapp1a pgpool: 2009-06-25 18:36:58 DEBUG: pid 30852: child
receives shutdown request signal 3
[....]
Jun 25 18:37:04 vapp1a pgpool: 2009-06-25 18:36:58 LOG: pid 30820:
failover done. shutdown host vpgsql1b(5432)
Jun 25 18:37:04 vapp1a pgpool: 2009-06-25 18:36:58 DEBUG: pid 30820:
reap_handler called
Jun 25 18:37:04 vapp1a pgpool: 2009-06-25 18:36:58 DEBUG: pid 30820:
reap_handler: call wait3
Jun 25 18:37:04 vapp1a pgpool: 2009-06-25 18:36:58 DEBUG: pid 30820: child
30829 exits with status 0 by signal 0
[....]
Jun 25 18:37:06 vapp1a pgpool: 2009-06-25 18:36:58 DEBUG: pid 30820:
reap_handler: normally exited
In the psql session I try to insert a new row, getting:
mybase=> insert into kk values (2);
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.
Now I exit psql, and log-in again, now successfully inserting a new row:
pgpool at vapp1:~$ psql -h localhost -p 5431 -U auser mybase
mybase=> create table test (id integer);
mybase=> insert into test (2);
INSERT 0 1
Is that normal?
Thanks in advance,
J. Carlos Muro
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://pgfoundry.org/pipermail/pgpool-general/attachments/20090625/05170ae6/attachment.html>
More information about the Pgpool-general
mailing list