Hi List;

I'm having issues trying to test a switchover.

I've created 2 clusters on the same box (a Fedora-5 Laptop) and executed the 
attached (slony_setup) script. My environment has the settings in the 
attached slonyenv script.

I run the slony_setup script against the 2 clusters, It creates the testdb 
databases, a cust table and sets up replication.

Once this is done I can insert rows into node 1 (@YODA) and they are 
replicated to node 2 (@R2D2).

Next I execute the attached switchover script and the script hangs for several 
minutes. I see this in the node 2 postgres log:

<snip>
NOTICE:  Slony-I: cleanup stale sl_nodelock entry for pid=9495
ERROR:  trigger "_testdb_logtrigger_1" for relation "cust" already exists
CONTEXT:  SQL statement "create trigger "_testdb_logtrigger_1" after insert or 
update or delete on "public"."cust" for each row execute procedure
                                        "_testdb".logTrigger 
('_testdb', '1', 'kvv');"
        PL/pgSQL function "altertableforreplication" line 62 at execute 
statement
        SQL statement "SELECT  "_testdb".alterTableForReplication( $1 )"
        PL/pgSQL function "moveset_int" line 180 at perform
LOG:  unexpected EOF on client connection
ERROR:  duplicate key violates unique constraint "sl_nodelock-pkey"
LOG:  unexpected EOF on client connection
</snip>

eventually the switchover script times out with this:
"./switchover.sk:9: timeout exceeded while waiting for event confirmation"


at this point both nodes are locked and I cannot insert data from node 1 or 
node 2. An attempt to insert data in either node produces this in the 
postgres log:

"ERROR:  Slony-I: Table cust is replicated and cannot be modified on a 
subscriber node"

Thanks in advance...



Attachment: slony_setup
Description: application/shellscript

Attachment: slonyenv
Description: application/shellscript

#!/stage/slony/pgslony/bin/slonik

# File: switchover.sk
include <preamble.sk>;

lock set (id = @YODA, origin = @YODA);
wait for event (origin = @YODA, confirmed = @R2D2);
move set (id = @YODA, old origin = @YODA, new origin = @R2D2);
wait for event (origin = @YODA, confirmed = @R2D2);
_______________________________________________
Slony1-general mailing list
[email protected]
http://gborg.postgresql.org/mailman/listinfo/slony1-general

Reply via email to