Re: BDR: name conflict when joining a rebuilt node

From: Florin Andrei <florin(at)andrei(dot)myip(dot)org>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: BDR: name conflict when joining a rebuilt node
Date: 2015-11-03 20:35:12
Message-ID: a1979fcf8b0979cfac0fc6b87ad1bccf@andrei.myip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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,"replication connection 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 not receive 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/

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Florin Andrei 2015-11-03 22:04:59 BDR: SSL error: bad write retry
Previous Message Tom Lane 2015-11-03 17:31:25 Re: Drop or alter column under load give ERROR #42804 structure of query does not match function result type: