Correct select the GTM proxy for a new node being added
authorPavan Deolasee <[email protected]>
Tue, 31 Jul 2018 05:58:21 +0000 (11:28 +0530)
committerPavan Deolasee <[email protected]>
Tue, 31 Jul 2018 07:07:42 +0000 (12:37 +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 40612dbf5d86d8459cec117afa9c1c8f50928953..52715672fdd81812faadd04a3487af762b22a5e7 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 4e7ecc9b72512c2e647b94f168b1c9f33ee90f9f..811c7388ca1b8c38d122c61c2cebf09013d89cbf 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,