summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPallavi Sontakke2016-07-15 12:32:46 +0000
committerPavan Deolasee2016-10-18 10:07:22 +0000
commit1265f81098a8bb2b31ab4f393e9b35d436de7db7 (patch)
treefb8746ae5b116d00d4a35f20dea3b7caf6341170
parent5a7e66da30f030f321a93156caf5d99ec8257f9a (diff)
Add test case for Issue #81
Create empty cluster and add nodes multiple times to reproduce the issue. This issue occurs intermittently.
-rwxr-xr-xcontrib/pgxc_ctl/t/030_pgxc_ctl_file_sanity_check.pl375
1 files changed, 375 insertions, 0 deletions
diff --git a/contrib/pgxc_ctl/t/030_pgxc_ctl_file_sanity_check.pl b/contrib/pgxc_ctl/t/030_pgxc_ctl_file_sanity_check.pl
new file mode 100755
index 0000000000..6e8d2546ed
--- /dev/null
+++ b/contrib/pgxc_ctl/t/030_pgxc_ctl_file_sanity_check.pl
@@ -0,0 +1,375 @@
+use strict;
+use warnings;
+use Cwd;
+use Config;
+use TestLib;
+use Test::More tests => 6;
+
+my $dataDirRoot="~/DATA/pgxl/nodes/";
+$ENV{'PGXC_CTL_HOME'} = '/tmp/pgxc_ctl';
+my $PGXC_CTL_HOME=$ENV{'PGXC_CTL_HOME'};
+
+#delete related dirs for cleanup
+system("rm -rf $dataDirRoot");
+system("rm -rf $PGXC_CTL_HOME");
+
+program_help_ok('pgxc_ctl');
+program_version_ok('pgxc_ctl');
+
+my $GTM_HOST = "localhost";
+my $COORD1_HOST = "localhost";
+my $COORD2_HOST = "localhost";
+my $COORD3_HOST = "localhost";
+my $DN1_HOST = "localhost";
+my $DN2_HOST = "localhost";
+my $DN3_HOST = "localhost";
+
+system_or_bail 'pgxc_ctl', 'prepare', 'config', 'empty' ;
+
+system_or_bail 'pgxc_ctl', 'add', 'gtm', 'master', 'gtm', "$GTM_HOST", '20001', "$dataDirRoot/gtm" ;
+
+system_or_bail 'pgxc_ctl', 'add', 'coordinator', 'master', 'coord1', "$COORD1_HOST", '30001', '30011', "$dataDirRoot/coord_master.1", 'none', 'none';
+
+system_or_bail 'pgxc_ctl', 'add', 'coordinator', 'master', 'coord2', "$COORD2_HOST", '30002', '30012', "$dataDirRoot/coord_master.2", 'none', 'none';
+
+system_or_bail 'pgxc_ctl', 'add', 'datanode', 'master', 'dn1', "$DN1_HOST", '40001', '40011', "$dataDirRoot/dn_master.1", 'none', 'none', 'none' ;
+
+system_or_bail 'pgxc_ctl', 'add', 'datanode', 'master', 'dn2', "$DN2_HOST", '40002', '40012', "$dataDirRoot/dn_master.2", 'none', 'none', 'none' ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'add', 'datanode', 'master', 'dn3', "$DN3_HOST", '40003', '40013', "$dataDirRoot/dn_master.3", 'none', 'none', 'none' ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'add', 'coordinator', 'master', 'coord3', "$COORD3_HOST", '30003', '30013', "$dataDirRoot/coord_master.3", 'none', 'none' ;
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'remove', 'coordinator', 'master', 'coord3', 'clean' ;
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'remove', 'datanode', 'master', 'dn3', 'clean' ;
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+#Datanode slave test
+
+system_or_bail 'pgxc_ctl', 'add', 'datanode', 'slave', 'dn1', "$DN1_HOST", '40101', '40111', "$dataDirRoot/dn_slave.1", 'none', "$dataDirRoot/datanode_archlog.1" ;
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'stop', "-m", 'immediate', 'datanode', 'master', 'dn1' ;
+
+system_or_bail 'pgxc_ctl', 'failover', 'datanode', 'dn1' ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+#GTM standby test
+
+system_or_bail 'pgxc_ctl', 'add', 'gtm', 'slave', 'gtm_slave', "$GTM_HOST", '20101', "$dataDirRoot/gtm_slave" ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'stop', "-m", 'immediate', 'gtm', 'master', 'gtm' ;
+
+system_or_bail 'pgxc_ctl', 'failover', 'gtm', 'gtm' ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+#add cleanup
+system_or_bail 'pgxc_ctl', 'clean', 'all' ;
+
+
+#delete related dirs for cleanup
+system("rm -rf $dataDirRoot");
+system("rm -rf $PGXC_CTL_HOME");
+
+system_or_bail 'pgxc_ctl', 'prepare', 'config', 'empty' ;
+
+system_or_bail 'pgxc_ctl', 'add', 'gtm', 'master', 'gtm', "$GTM_HOST", '20001', "$dataDirRoot/gtm" ;
+
+system_or_bail 'pgxc_ctl', 'add', 'coordinator', 'master', 'coord1', "$COORD1_HOST", '30001', '30011', "$dataDirRoot/coord_master.1", 'none', 'none';
+
+system_or_bail 'pgxc_ctl', 'add', 'coordinator', 'master', 'coord2', "$COORD2_HOST", '30002', '30012', "$dataDirRoot/coord_master.2", 'none', 'none';
+
+system_or_bail 'pgxc_ctl', 'add', 'datanode', 'master', 'dn1', "$DN1_HOST", '40001', '40011', "$dataDirRoot/dn_master.1", 'none', 'none', 'none' ;
+
+system_or_bail 'pgxc_ctl', 'add', 'datanode', 'master', 'dn2', "$DN2_HOST", '40002', '40012', "$dataDirRoot/dn_master.2", 'none', 'none', 'none' ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'add', 'datanode', 'master', 'dn3', "$DN3_HOST", '40003', '40013', "$dataDirRoot/dn_master.3", 'none', 'none', 'none' ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'add', 'coordinator', 'master', 'coord3', "$COORD3_HOST", '30003', '30013', "$dataDirRoot/coord_master.3", 'none', 'none' ;
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'remove', 'coordinator', 'master', 'coord3', 'clean' ;
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'remove', 'datanode', 'master', 'dn3', 'clean' ;
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+#Datanode slave test
+
+system_or_bail 'pgxc_ctl', 'add', 'datanode', 'slave', 'dn1', "$DN1_HOST", '40101', '40111', "$dataDirRoot/dn_slave.1", 'none', "$dataDirRoot/datanode_archlog.1" ;
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'stop', "-m", 'immediate', 'datanode', 'master', 'dn1' ;
+
+system_or_bail 'pgxc_ctl', 'failover', 'datanode', 'dn1' ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+#GTM standby test
+
+system_or_bail 'pgxc_ctl', 'add', 'gtm', 'slave', 'gtm_slave', "$GTM_HOST", '20101', "$dataDirRoot/gtm_slave" ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'stop', "-m", 'immediate', 'gtm', 'master', 'gtm' ;
+
+system_or_bail 'pgxc_ctl', 'failover', 'gtm', 'gtm' ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+#add cleanup
+system_or_bail 'pgxc_ctl', 'clean', 'all' ;
+
+
+#delete related dirs for cleanup
+system("rm -rf $dataDirRoot");
+system("rm -rf $PGXC_CTL_HOME");
+
+system_or_bail 'pgxc_ctl', 'prepare', 'config', 'empty' ;
+
+system_or_bail 'pgxc_ctl', 'add', 'gtm', 'master', 'gtm', "$GTM_HOST", '20001', "$dataDirRoot/gtm" ;
+
+system_or_bail 'pgxc_ctl', 'add', 'coordinator', 'master', 'coord1', "$COORD1_HOST", '30001', '30011', "$dataDirRoot/coord_master.1", 'none', 'none';
+
+system_or_bail 'pgxc_ctl', 'add', 'coordinator', 'master', 'coord2', "$COORD2_HOST", '30002', '30012', "$dataDirRoot/coord_master.2", 'none', 'none';
+
+system_or_bail 'pgxc_ctl', 'add', 'datanode', 'master', 'dn1', "$DN1_HOST", '40001', '40011', "$dataDirRoot/dn_master.1", 'none', 'none', 'none' ;
+
+system_or_bail 'pgxc_ctl', 'add', 'datanode', 'master', 'dn2', "$DN2_HOST", '40002', '40012', "$dataDirRoot/dn_master.2", 'none', 'none', 'none' ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'add', 'datanode', 'master', 'dn3', "$DN3_HOST", '40003', '40013', "$dataDirRoot/dn_master.3", 'none', 'none', 'none' ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'add', 'coordinator', 'master', 'coord3', "$COORD3_HOST", '30003', '30013', "$dataDirRoot/coord_master.3", 'none', 'none' ;
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'remove', 'coordinator', 'master', 'coord3', 'clean' ;
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'remove', 'datanode', 'master', 'dn3', 'clean' ;
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+#Datanode slave test
+
+system_or_bail 'pgxc_ctl', 'add', 'datanode', 'slave', 'dn1', "$DN1_HOST", '40101', '40111', "$dataDirRoot/dn_slave.1", 'none', "$dataDirRoot/datanode_archlog.1" ;
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'stop', "-m", 'immediate', 'datanode', 'master', 'dn1' ;
+
+system_or_bail 'pgxc_ctl', 'failover', 'datanode', 'dn1' ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+#GTM standby test
+
+system_or_bail 'pgxc_ctl', 'add', 'gtm', 'slave', 'gtm_slave', "$GTM_HOST", '20101', "$dataDirRoot/gtm_slave" ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'stop', "-m", 'immediate', 'gtm', 'master', 'gtm' ;
+
+system_or_bail 'pgxc_ctl', 'failover', 'gtm', 'gtm' ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+#add cleanup
+system_or_bail 'pgxc_ctl', 'clean', 'all' ;
+
+
+#delete related dirs for cleanup
+system("rm -rf $dataDirRoot");
+system("rm -rf $PGXC_CTL_HOME");
+
+system_or_bail 'pgxc_ctl', 'prepare', 'config', 'empty' ;
+
+system_or_bail 'pgxc_ctl', 'add', 'gtm', 'master', 'gtm', "$GTM_HOST", '20001', "$dataDirRoot/gtm" ;
+
+system_or_bail 'pgxc_ctl', 'add', 'coordinator', 'master', 'coord1', "$COORD1_HOST", '30001', '30011', "$dataDirRoot/coord_master.1", 'none', 'none';
+
+system_or_bail 'pgxc_ctl', 'add', 'coordinator', 'master', 'coord2', "$COORD2_HOST", '30002', '30012', "$dataDirRoot/coord_master.2", 'none', 'none';
+
+system_or_bail 'pgxc_ctl', 'add', 'datanode', 'master', 'dn1', "$DN1_HOST", '40001', '40011', "$dataDirRoot/dn_master.1", 'none', 'none', 'none' ;
+
+system_or_bail 'pgxc_ctl', 'add', 'datanode', 'master', 'dn2', "$DN2_HOST", '40002', '40012', "$dataDirRoot/dn_master.2", 'none', 'none', 'none' ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'add', 'datanode', 'master', 'dn3', "$DN3_HOST", '40003', '40013', "$dataDirRoot/dn_master.3", 'none', 'none', 'none' ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'add', 'coordinator', 'master', 'coord3', "$COORD3_HOST", '30003', '30013', "$dataDirRoot/coord_master.3", 'none', 'none' ;
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'remove', 'coordinator', 'master', 'coord3', 'clean' ;
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'remove', 'datanode', 'master', 'dn3', 'clean' ;
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+#Datanode slave test
+
+system_or_bail 'pgxc_ctl', 'add', 'datanode', 'slave', 'dn1', "$DN1_HOST", '40101', '40111', "$dataDirRoot/dn_slave.1", 'none', "$dataDirRoot/datanode_archlog.1" ;
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'stop', "-m", 'immediate', 'datanode', 'master', 'dn1' ;
+
+system_or_bail 'pgxc_ctl', 'failover', 'datanode', 'dn1' ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+#GTM standby test
+
+system_or_bail 'pgxc_ctl', 'add', 'gtm', 'slave', 'gtm_slave', "$GTM_HOST", '20101', "$dataDirRoot/gtm_slave" ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'stop', "-m", 'immediate', 'gtm', 'master', 'gtm' ;
+
+system_or_bail 'pgxc_ctl', 'failover', 'gtm', 'gtm' ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+#add cleanup
+system_or_bail 'pgxc_ctl', 'clean', 'all' ;
+
+
+#delete related dirs for cleanup
+system("rm -rf $dataDirRoot");
+system("rm -rf $PGXC_CTL_HOME");
+
+
+system_or_bail 'pgxc_ctl', 'prepare', 'config', 'empty' ;
+
+system_or_bail 'pgxc_ctl', 'add', 'gtm', 'master', 'gtm', "$GTM_HOST", '20001', "$dataDirRoot/gtm" ;
+
+system_or_bail 'pgxc_ctl', 'add', 'coordinator', 'master', 'coord1', "$COORD1_HOST", '30001', '30011', "$dataDirRoot/coord_master.1", 'none', 'none';
+
+system_or_bail 'pgxc_ctl', 'add', 'coordinator', 'master', 'coord2', "$COORD2_HOST", '30002', '30012', "$dataDirRoot/coord_master.2", 'none', 'none';
+
+system_or_bail 'pgxc_ctl', 'add', 'datanode', 'master', 'dn1', "$DN1_HOST", '40001', '40011', "$dataDirRoot/dn_master.1", 'none', 'none', 'none' ;
+
+system_or_bail 'pgxc_ctl', 'add', 'datanode', 'master', 'dn2', "$DN2_HOST", '40002', '40012', "$dataDirRoot/dn_master.2", 'none', 'none', 'none' ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'add', 'datanode', 'master', 'dn3', "$DN3_HOST", '40003', '40013', "$dataDirRoot/dn_master.3", 'none', 'none', 'none' ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'add', 'coordinator', 'master', 'coord3', "$COORD3_HOST", '30003', '30013', "$dataDirRoot/coord_master.3", 'none', 'none' ;
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'remove', 'coordinator', 'master', 'coord3', 'clean' ;
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'remove', 'datanode', 'master', 'dn3', 'clean' ;
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+#Datanode slave test
+
+system_or_bail 'pgxc_ctl', 'add', 'datanode', 'slave', 'dn1', "$DN1_HOST", '40101', '40111', "$dataDirRoot/dn_slave.1", 'none', "$dataDirRoot/datanode_archlog.1" ;
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'stop', "-m", 'immediate', 'datanode', 'master', 'dn1' ;
+
+system_or_bail 'pgxc_ctl', 'failover', 'datanode', 'dn1' ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+#GTM standby test
+
+system_or_bail 'pgxc_ctl', 'add', 'gtm', 'slave', 'gtm_slave', "$GTM_HOST", '20101', "$dataDirRoot/gtm_slave" ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'stop', "-m", 'immediate', 'gtm', 'master', 'gtm' ;
+
+system_or_bail 'pgxc_ctl', 'failover', 'gtm', 'gtm' ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+#add cleanup
+system_or_bail 'pgxc_ctl', 'clean', 'all' ;
+
+
+#delete related dirs for cleanup
+system("rm -rf $dataDirRoot");
+system("rm -rf $PGXC_CTL_HOME");
+
+
+system_or_bail 'pgxc_ctl', 'prepare', 'config', 'empty' ;
+
+system_or_bail 'pgxc_ctl', 'add', 'gtm', 'master', 'gtm', "$GTM_HOST", '20001', "$dataDirRoot/gtm" ;
+
+system_or_bail 'pgxc_ctl', 'add', 'coordinator', 'master', 'coord1', "$COORD1_HOST", '30001', '30011', "$dataDirRoot/coord_master.1", 'none', 'none';
+
+system_or_bail 'pgxc_ctl', 'add', 'coordinator', 'master', 'coord2', "$COORD2_HOST", '30002', '30012', "$dataDirRoot/coord_master.2", 'none', 'none';
+
+system_or_bail 'pgxc_ctl', 'add', 'datanode', 'master', 'dn1', "$DN1_HOST", '40001', '40011', "$dataDirRoot/dn_master.1", 'none', 'none', 'none' ;
+
+system_or_bail 'pgxc_ctl', 'add', 'datanode', 'master', 'dn2', "$DN2_HOST", '40002', '40012', "$dataDirRoot/dn_master.2", 'none', 'none', 'none' ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'add', 'datanode', 'master', 'dn3', "$DN3_HOST", '40003', '40013', "$dataDirRoot/dn_master.3", 'none', 'none', 'none' ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'add', 'coordinator', 'master', 'coord3', "$COORD3_HOST", '30003', '30013', "$dataDirRoot/coord_master.3", 'none', 'none' ;
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'remove', 'coordinator', 'master', 'coord3', 'clean' ;
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'remove', 'datanode', 'master', 'dn3', 'clean' ;
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+#Datanode slave test
+
+system_or_bail 'pgxc_ctl', 'add', 'datanode', 'slave', 'dn1', "$DN1_HOST", '40101', '40111', "$dataDirRoot/dn_slave.1", 'none', "$dataDirRoot/datanode_archlog.1" ;
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'stop', "-m", 'immediate', 'datanode', 'master', 'dn1' ;
+
+system_or_bail 'pgxc_ctl', 'failover', 'datanode', 'dn1' ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+#GTM standby test
+
+system_or_bail 'pgxc_ctl', 'add', 'gtm', 'slave', 'gtm_slave', "$GTM_HOST", '20101', "$dataDirRoot/gtm_slave" ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+system_or_bail 'pgxc_ctl', 'stop', "-m", 'immediate', 'gtm', 'master', 'gtm' ;
+
+system_or_bail 'pgxc_ctl', 'failover', 'gtm', 'gtm' ;
+
+system_or_bail 'pgxc_ctl', 'monitor', 'all' ;
+
+#add cleanup
+system_or_bail 'pgxc_ctl', 'clean', 'all' ;
+
+
+#delete related dirs for cleanup
+system("rm -rf $dataDirRoot");
+system("rm -rf $PGXC_CTL_HOME");