From acb0d237175190c503b39259da85349672edc702 Mon Sep 17 00:00:00 2001 From: Burak Yucesoy Date: Thu, 18 May 2017 20:42:14 +0300 Subject: [PATCH] Fix crash during upgrade from 5.2 to 6.2 This commit fixes the problem where we incorrectly try to reach distributed table cache when the extension is not loaded completely. We tried to reach the cache because we wanted to get reference table information to activate the node. However it is actually not necessary to explicitly activate the nodes which come from master_initialize_node_metadata. Because it only runs during extension creation and at that time there are no reference tables and all nodes are considered as active. --- src/backend/distributed/utils/node_metadata.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/backend/distributed/utils/node_metadata.c b/src/backend/distributed/utils/node_metadata.c index fd4d8970b..82916b85f 100644 --- a/src/backend/distributed/utils/node_metadata.c +++ b/src/backend/distributed/utils/node_metadata.c @@ -274,7 +274,6 @@ master_initialize_node_metadata(PG_FUNCTION_ARGS) workerNode->workerRack, false, workerNode->isActive, &nodeAlreadyExists); - ActivateNode(workerNode->workerName, workerNode->workerPort); } PG_RETURN_BOOL(true); @@ -1045,7 +1044,7 @@ ParseWorkerNodeFileAndRename() strlcpy(workerNode->workerRack, nodeRack, WORKER_LENGTH); workerNode->workerPort = nodePort; workerNode->hasMetadata = false; - workerNode->isActive = false; + workerNode->isActive = true; workerNodeList = lappend(workerNodeList, workerNode); }