mirror of https://github.com/citusdata/citus.git
create a utility method to mark tasks as failed (#3150)
parent
306d159072
commit
2cb82ae9bd
|
@ -92,6 +92,7 @@ static void ManageWorkerTasksHash(HTAB *WorkerTasksHash);
|
|||
static void ManageWorkerTask(WorkerTask *workerTask, HTAB *WorkerTasksHash);
|
||||
static void RemoveWorkerTask(WorkerTask *workerTask, HTAB *WorkerTasksHash);
|
||||
static void CreateJobDirectoryIfNotExists(uint64 jobId);
|
||||
static void MarkWorkerTaskAsFailed(WorkerTask *workerTask);
|
||||
static int32 ConnectToLocalBackend(const char *databaseName, const char *userName);
|
||||
|
||||
|
||||
|
@ -931,8 +932,7 @@ ManageWorkerTask(WorkerTask *workerTask, HTAB *WorkerTasksHash)
|
|||
}
|
||||
else
|
||||
{
|
||||
workerTask->taskStatus = TASK_FAILED;
|
||||
workerTask->failureCount++;
|
||||
MarkWorkerTaskAsFailed(workerTask);
|
||||
|
||||
MultiClientDisconnect(workerTask->connectionId);
|
||||
workerTask->connectionId = INVALID_CONNECTION_ID;
|
||||
|
@ -940,8 +940,7 @@ ManageWorkerTask(WorkerTask *workerTask, HTAB *WorkerTasksHash)
|
|||
}
|
||||
else
|
||||
{
|
||||
workerTask->taskStatus = TASK_FAILED;
|
||||
workerTask->failureCount++;
|
||||
MarkWorkerTaskAsFailed(workerTask);
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -962,8 +961,7 @@ ManageWorkerTask(WorkerTask *workerTask, HTAB *WorkerTasksHash)
|
|||
}
|
||||
else if (queryStatus == CLIENT_QUERY_FAILED)
|
||||
{
|
||||
workerTask->taskStatus = TASK_FAILED;
|
||||
workerTask->failureCount++;
|
||||
MarkWorkerTaskAsFailed(workerTask);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -976,8 +974,7 @@ ManageWorkerTask(WorkerTask *workerTask, HTAB *WorkerTasksHash)
|
|||
}
|
||||
else if (resultStatus == CLIENT_RESULT_UNAVAILABLE)
|
||||
{
|
||||
workerTask->taskStatus = TASK_FAILED;
|
||||
workerTask->failureCount++;
|
||||
MarkWorkerTaskAsFailed(workerTask);
|
||||
}
|
||||
|
||||
/* clean up the connection if we are done with the task */
|
||||
|
@ -1065,6 +1062,19 @@ ManageWorkerTask(WorkerTask *workerTask, HTAB *WorkerTasksHash)
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
* MarkWorkerTaskAsFailed marks the given worker task as failed
|
||||
* and increases the failure count. Failure count is used to
|
||||
* determine if the task should be marked as permanently failed.
|
||||
*/
|
||||
static void
|
||||
MarkWorkerTaskAsFailed(WorkerTask *workerTask)
|
||||
{
|
||||
workerTask->taskStatus = TASK_FAILED;
|
||||
workerTask->failureCount++;
|
||||
}
|
||||
|
||||
|
||||
/* Wrapper function to remove the worker task from the shared hash. */
|
||||
static void
|
||||
RemoveWorkerTask(WorkerTask *workerTask, HTAB *WorkerTasksHash)
|
||||
|
|
Loading…
Reference in New Issue