Re: BDR: name conflict when joining a rebuilt node - Mailing list pgsql-general

From Florin Andrei
Subject Re: BDR: name conflict when joining a rebuilt node
Date
Msg-id a1979fcf8b0979cfac0fc6b87ad1bccf@andrei.myip.org
Whole thread Raw
In response to Re: BDR: name conflict when joining a rebuilt node  (Craig Ringer <craig@2ndquadrant.com>)
List pgsql-general
Still having issues with this with BDR-0.9.3

This is how I join a new node to the cluster:

############################################
su - postgres
psql pgmirror

-- fire up BDR extensions
CREATE EXTENSION btree_gist;
CREATE EXTENSION bdr;

-- join BDR group via an existing node there
SELECT bdr.bdr_group_join(
    local_node_name := 'pg12-prod-uswest2-aws',
    node_external_dsn := 'host=pg12-prod-uswest2-aws dbname=pgmirror',
    join_using_dsn := 'host=pg11-prod-uswest2-aws dbname=pgmirror'
);

SELECT bdr.bdr_node_join_wait_for_ready();
############################################

This is how I remove a node from the cluster:

############################################
# Log into any other node in the cluster (NOT the node you want to
remove) and run:

su - postgres
psql pgmirror

SELECT bdr.bdr_part_by_node_names('{pg12-prod-uswest2-aws}');

# Log into the removed node and run:

su - postgres
psql pgmirror

BEGIN;
SET LOCAL bdr.permit_unsafe_ddl_commands = true;
SET LOCAL bdr.skip_ddl_locking = true;
SECURITY LABEL FOR 'bdr' ON DATABASE pgmirror IS '{"bdr": false}';
COMMIT;

# Now restart PostgreSQL.
############################################

Now let's say on the removed node I've dropped the pgmirror database,
performed some maintenance, re-created the pgmirror DB (empty), and now
I want to re-join the node to the cluster under the same name. I repeat
the join new node procedure described at the top. It gets stuck in
node_join_wait_for_ready().

On another node, the re-joined node is now listed twice in
bdr.bdr_nodes, once with status k, and again with status i. The logs on
the re-joined node show this:

############################################
2015-11-03 20:29:52.016 UTC,,,4916,,56391614.1334,219,,2015-11-03
20:16:20 UTC,,0,LOG,00000,"starting background worker process ""bdr db:
pgmirror""",,,,,,,,,""
2015-11-03 20:29:52.047 UTC,,,7222,"",56391940.1c36,1,"",2015-11-03
20:29:52 UTC,,0,LOG,00000,"connection received: host=127.0.0.1
port=21241",,,,,,,,,""
2015-11-03 20:29:52.050
UTC,"postgres","pgmirror",7222,"127.0.0.1:21241",56391940.1c36,2,"authentication",2015-11-03 20:29:52
UTC,4/321,0,LOG,00000,"replicationconnection authorized: user=postgres SSL enabled (protocol=TLSv1.2,
cipher=ECDHE-RSA-AES256-GCM-SHA384,compression=off)",,,,,,,,,"" 
2015-11-03 20:29:52.052 UTC,,,7221,,56391940.1c35,1,,2015-11-03 20:29:52
UTC,3/0,0,ERROR,55000,"System identification mismatch between connection
and slot","Connection for bdr (6212727469166484615,1,16387,) resulted in
slot on node bdr (6212727469166484615,1,17169,) instead of expected
node",,,,,,,,"bdr (6212727469166484615,1,17169,): perdb"
2015-11-03 20:29:52.053
UTC,"postgres","pgmirror",7222,"127.0.0.1:21241",56391940.1c36,3,"idle",2015-11-03 20:29:52 UTC,4/0,0,LOG,08006,"could
notreceive data from client: Connection reset by peer",,,,,,,,,"bdr (6212727469166484615,1,17169,):mkslot" 
2015-11-03 20:29:52.053
UTC,"postgres","pgmirror",7222,"127.0.0.1:21241",56391940.1c36,4,"idle",2015-11-03 20:29:52
UTC,,0,LOG,00000,"disconnection:session time: 0:00:00.006 user=postgres database=pgmirror host=127.0.0.1
port=21241",,,,,,,,,"bdr(6212727469166484615,1,17169,):mkslot" 
2015-11-03 20:29:52.053 UTC,,,4916,,56391614.1334,220,,2015-11-03
20:16:20 UTC,,0,LOG,00000,"worker process: bdr db: pgmirror (PID 7221)
exited with exit code 1",,,,,,,,,""
############################################

OS is Ubuntu 14.04, with these packages installed:

############################################
ii  postgresql-bdr-9.4               9.4.4-1trusty
amd64        object-relational SQL database, version 9.4 server
ii  postgresql-bdr-9.4-bdr-plugin    0.9.3-1trusty
amd64        BDR Plugin for PostgreSQL-BDR 9.4
ii  postgresql-bdr-client-9.4        9.4.4-1trusty
amd64        front-end programs for PostgreSQL-BDR 9.4
ii  postgresql-bdr-contrib-9.4       9.4.4-1trusty
amd64        additional facilities for PostgreSQL
ii  postgresql-bdr-server-dev-9.4    9.4.4-1trusty
amd64        development files for PostgreSQL-BDR 9.4 server-side
programming
ii  postgresql-client-common         169.pgdg14.04+1
all          manager for multiple PostgreSQL client versions
ii  postgresql-common                169.pgdg14.04+1
all          PostgreSQL database-cluster manager
############################################

--
Florin Andrei
http://florin.myip.org/


pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Drop or alter column under load give ERROR #42804 structure of query does not match function result type:
Next
From: Florin Andrei
Date:
Subject: BDR: SSL error: bad write retry