CVS User Account cvsuser
Thu May 19 19:14:48 PDT 2005
Log Message:
-----------
Per Bug Report #1306 by tgoodair...
----------------------------------------------------------------------
The altperl move_set script creates slonik similar to this:

try {
echo 'Locking down set 1 on node 1;
lock set (id = 1, origin = 1);
echo 'Locked down - moving it';
move set (id = 1, old origin = 1, new origin = 2);
}

This won't work, because the lock set event won't propogate. (All slonik
commands inside a try block are part of the same transaction.)

The lock set command should be placed first, then maybe a wait for
event, and a move set, and none of it should be inside a try block.
----------------------------------------------------------------------

Script has been changed to remove the try {} block.

Modified Files:
--------------
    slony1-engine/tools/altperl:
        move_set.pl (r1.9 -> r1.10)

-------------- next part --------------
Index: move_set.pl
===================================================================
RCS file: /usr/local/cvsroot/slony1/slony1-engine/tools/altperl/move_set.pl,v
retrieving revision 1.9
retrieving revision 1.10
diff -Ltools/altperl/move_set.pl -Ltools/altperl/move_set.pl -u -w -r1.9 -r1.10
--- tools/altperl/move_set.pl
+++ tools/altperl/move_set.pl
@@ -53,17 +53,10 @@
 
 open(SLONIK, ">", "/tmp/slonik.$$");
 print SLONIK genheader();
-print SLONIK "  try {\n";
 print SLONIK "      echo 'Locking down set $set on node $node1';\n";
 print SLONIK "      lock set (id = $set, origin = $node1);\n";
 print SLONIK "      echo 'Locked down - moving it';\n";
 print SLONIK "      move set (id = $set, old origin = $node1, new origin = $node2);\n";
-print SLONIK "  }\n";
-print SLONIK "  on error {\n";
-print SLONIK "      echo 'Failure to move set $set from $node1 to $node2';\n";
-print SLONIK "      unlock set (id = $set, origin = $node1);\n";
-print SLONIK "      exit 1;\n";
-print SLONIK "  }\n";
 print SLONIK "  echo 'Replication set $set moved from node $node1 to $node2.  Remember to';\n";
 print SLONIK "  echo 'update your configuration file, if necessary, to note the new location';\n";
 print SLONIK "  echo 'for the set.';\n";


More information about the Slony1-commit mailing list