Fail task in real-time executor if no placements found. (#2133)

release-7.2
Hadi Moshayedi 2018-04-26 12:05:24 -04:00 committed by Marco Slot
parent 939385cf1e
commit b9780956c3
1 changed files with 14 additions and 2 deletions

View File

@ -300,8 +300,20 @@ ManageTaskExecution(Task *task, TaskExecution *taskExecution,
placementAccessList = BuildPlacementSelectList(taskPlacement->groupId, placementAccessList = BuildPlacementSelectList(taskPlacement->groupId,
relationShardList); relationShardList);
/* should at least have an entry for the anchor shard */ /*
Assert(list_length(placementAccessList) > 0); * Should at least have an entry for the anchor shard. If this is not the
* case, we should have errored out in the physical planner. We are
* rechecking here until we find the root cause of
* https://github.com/citusdata/citus/issues/2092.
*/
if (placementAccessList == NIL)
{
ereport(WARNING, (errmsg("could not find any placements for task %d",
task->taskId)));
taskStatusArray[currentIndex] = EXEC_TASK_FAILED;
break;
}
connectionId = MultiClientPlacementConnectStart(placementAccessList, connectionId = MultiClientPlacementConnectStart(placementAccessList,
NULL); NULL);