diff --git a/src/backend/distributed/planner/multi_physical_planner.c b/src/backend/distributed/planner/multi_physical_planner.c index a12572ad5..073dd12bc 100644 --- a/src/backend/distributed/planner/multi_physical_planner.c +++ b/src/backend/distributed/planner/multi_physical_planner.c @@ -5213,6 +5213,12 @@ ActiveShardPlacementLists(List *taskList) /* filter out shard placements that reside in inactive nodes */ List *activeShardPlacementList = ActivePlacementList(shardPlacementList); + if (activeShardPlacementList == NIL) + { + ereport(ERROR, + (errmsg("no active placements were found for shard " UINT64_FORMAT, + anchorShardId))); + } /* sort shard placements by their creation time */ activeShardPlacementList = SortList(activeShardPlacementList, @@ -5271,7 +5277,7 @@ ActivePlacementList(List *placementList) /* check if the worker node for this shard placement is active */ workerNode = FindWorkerNode(placement->nodeName, placement->nodePort); - if (workerNode != NULL) + if (workerNode != NULL && workerNode->isActive) { activePlacementList = lappend(activePlacementList, placement); }