From 2293fac4d30be48b4f6e8d66e9cece7116ea75ee Mon Sep 17 00:00:00 2001 From: yangdsh Date: Fri, 21 Feb 2020 20:26:32 +0000 Subject: [PATCH] fix bug when skipping workload mapping --- server/website/website/settings/common.py | 2 +- server/website/website/tasks/async_tasks.py | 13 ++++++------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/server/website/website/settings/common.py b/server/website/website/settings/common.py index 8b29e6d..c431e62 100644 --- a/server/website/website/settings/common.py +++ b/server/website/website/settings/common.py @@ -242,7 +242,7 @@ CELERYD_MAX_TASKS_PER_CHILD = 20 # Late ack means the task messages will be acknowledged after # the task has been executed, not just before -CELERY_ACKS_LATE = True +CELERY_ACKS_LATE = False djcelery.setup_loader() diff --git a/server/website/website/tasks/async_tasks.py b/server/website/website/tasks/async_tasks.py index 75c0ae4..8b573b7 100644 --- a/server/website/website/tasks/async_tasks.py +++ b/server/website/website/tasks/async_tasks.py @@ -857,12 +857,6 @@ def map_workload(map_workload_input): pruned_metric_idxs = None unique_workloads = pipeline_data.values_list('workload', flat=True).distinct() - if unique_workloads == 0: - # The background task that aggregates the data has not finished running yet - target_data.update(mapped_workload=None, scores=None) - LOG.debug('%s: Skipping workload mapping because there is no workload.\n', - AlgorithmType.name(algorithm)) - return target_data, algorithm workload_data = {} # Compute workload mapping data for each unique workload @@ -918,7 +912,12 @@ def map_workload(map_workload_input): 'rowlabels': rowlabels, } - assert len(workload_data) > 0 + if len(workload_data) == 0: + # The background task that aggregates the data has not finished running yet + target_data.update(mapped_workload=None, scores=None) + LOG.debug('%s: Skipping workload mapping because there is no parsed workload.\n', + AlgorithmType.name(algorithm)) + return target_data, algorithm # Stack all X & y matrices for preprocessing Xs = np.vstack([entry['X_matrix'] for entry in list(workload_data.values())])