Melvin Davidson mdavidson
Mon Nov 28 22:42:43 PST 2005
I am using slony1-1.1.2

I have the following environment variables

PGPORT=5480
REPLICATIONUSER=postgres
SLONYCLUSTER=slony_rep

MASTERDBNAME=slonymaster
SLAVEDBNAME=slonymaster
REVERSESLAVEDB=reversedb

MASTERHOST=master.company.com
SLAVEHOST=slave.comapny.com
REVERSESLAVE=master.cctus.com

I have a simple test script
==========================================================================================
slonik <<_EOF_

#--
# define the namespace the replication system uses in our example it is
# slony_example
#--
CLUSTER NAME = $SLONYCLUSTER;

#--
# admin conninfo's are used by slonik to connect to the nodes one for each
# node on each side of the cluster, the syntax is that of PQconnectdb in
# the C-API
# --
node 1 admin conninfo = 'dbname=$MASTERDBNAME host=$MASTERHOST 
port=$PGPORT user=$REPLICATIONUSER';
node 2 admin conninfo = 'dbname=$SLAVEDBNAME host=$SLAVEHOST 
port=$PGPORT user=$REPLICATIONUSER';
node 3 admin conninfo = 'dbname=$REVERSESLAVEDB host=$REVERSESLAVE 
port=5450 user=$REPLICATIONUSER';

# Initialize new cluster
# init the first node.  Its id MUST be 1.  This creates the schema
# _$CLUSTERNAME containing all replication system specific database
# objects.
init cluster ( id=1, comment = 'Slony Master Node');

#--
# Create the the slave(s)

# THIS STORE NODE SUCCEEDS
store node (id=2, comment = 'Slony Slave node');

# THIS STORE NODE FAILS
store node (id=3, comment = 'Slony Slave node');
==========================================================================================

slonymaster is in /usr/local/data
reversedb is in /usr/local/cluster2

I start pg_ctl with
pg_ctl start -D /usr/local/data  -l /usr/local/data/errlog1.log
pg_ctl start -D /usr/local/cluster2 -l /usr/local/cluster2/errlog2.log

and both db's can be accessed with
psql -d slonymaster
psql -d reversedb -p 5450

When I execute the script, the errlog2.log contains

LOG:  connection received: host=192.168.144.16 port=33279
LOG:  connection authorized: user=postgres database=reversedb
NOTICE:  type "_slony_rep.xxid" is not yet defined
DETAIL:  Creating a shell type definition.
NOTICE:  argument type _comet_rep.xxid is only a shell
ERROR:  no schema has been selected to create in
ERROR:  current transaction is aborted, commands ignored until end of 
transaction block

Since node 1 & node 3 are the same, and using the same slony 
installation, the only difference is the
postgresql cluster and port. Note that the store node command succeeds 
for the 2nd node, but
fails on the 3rd, with the only difference being the port.

Is it possible that slony is ignoring the port spec in the ADMIN CONNINFO?


More information about the Slony1-general mailing list