Correct select the GTM proxy for a new node being added
authorPavan Deolasee <pavan.deolasee@gmail.com>
Tue, 31 Jul 2018 05:58:21 +0000 (11:28 +0530)
committerPavan Deolasee <pavan.deolasee@gmail.com>
Tue, 31 Jul 2018 07:05:19 +0000 (12:35 +0530)
This fixes an oversight in array index lookup. We should have been using
0-based indexes but were instead using 1-based index.

contrib/pgxc_ctl/coord_cmd.c
contrib/pgxc_ctl/datanode_cmd.c

index 00afd1e52e777d79f742cfc3bbc5e199ab47da01..0fe3d8d07165bd2e500e8af786debbc681ccf314 100644 (file)
@@ -1109,8 +1109,8 @@ int add_coordinatorMaster(char *name, char *host, int port, int pooler,
        /* Now add the master */
 
        gtmPxyIdx = getEffectiveGtmProxyIdxFromServerName(host);
-       gtmHost = (gtmPxyIdx > 0) ? aval(VAR_gtmProxyServers)[gtmPxyIdx] : sval(VAR_gtmMasterServer);
-       gtmPort = (gtmPxyIdx > 0) ? aval(VAR_gtmProxyPorts)[gtmPxyIdx] : sval(VAR_gtmMasterPort);
+       gtmHost = (gtmPxyIdx >= 0) ? aval(VAR_gtmProxyServers)[gtmPxyIdx] : sval(VAR_gtmMasterServer);
+       gtmPort = (gtmPxyIdx >= 0) ? aval(VAR_gtmProxyPorts)[gtmPxyIdx] : sval(VAR_gtmMasterPort);
 
        /* initdb */
        doImmediate(host, NULL, "PGXC_CTL_SILENT=1 initdb -D %s --nodename %s", dir, name);
index 4a3b83b3250077b4a33b8759291a78c5ec6c37f2..11f973c42b41af3f2550c2d44396978659ee2d72 100644 (file)
@@ -1149,8 +1149,8 @@ int add_datanodeMaster(char *name, char *host, int port, int pooler, char *dir,
        /* Now add the master */
 
        gtmPxyIdx = getEffectiveGtmProxyIdxFromServerName(host);
-       gtmHost = (gtmPxyIdx > 0) ? aval(VAR_gtmProxyServers)[gtmPxyIdx] : sval(VAR_gtmMasterServer);
-       gtmPort = (gtmPxyIdx > 0) ? aval(VAR_gtmProxyPorts)[gtmPxyIdx] : sval(VAR_gtmMasterPort);
+       gtmHost = (gtmPxyIdx >= 0) ? aval(VAR_gtmProxyServers)[gtmPxyIdx] : sval(VAR_gtmMasterServer);
+       gtmPort = (gtmPxyIdx >= 0) ? aval(VAR_gtmProxyPorts)[gtmPxyIdx] : sval(VAR_gtmMasterPort);
 
        /* initdb */
        doImmediate(host, NULL, "PGXC_CTL_SILENT=1 initdb -D %s %s %s --nodename %s", dir,