From 09c279ab9e197790d3e5461e2efaa5c167053b64 Mon Sep 17 00:00:00 2001 From: Max Thonagel <12283268+thoniTUB@users.noreply.github.com> Date: Wed, 13 Dec 2023 07:53:44 +0100 Subject: [PATCH] hold reference to results until metrics are collected Signed-off-by: Max Thonagel <12283268+thoniTUB@users.noreply.github.com> --- .../conquery/models/query/DistributedExecutionManager.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/backend/src/main/java/com/bakdata/conquery/models/query/DistributedExecutionManager.java b/backend/src/main/java/com/bakdata/conquery/models/query/DistributedExecutionManager.java index da96df82af..bc01c8529c 100644 --- a/backend/src/main/java/com/bakdata/conquery/models/query/DistributedExecutionManager.java +++ b/backend/src/main/java/com/bakdata/conquery/models/query/DistributedExecutionManager.java @@ -126,7 +126,8 @@ public ManagedExecution createQuery(QueryDescription query, UUID queryId, User u */ public > void handleQueryResult(R result) { - final E query = (E) storage.getExecution(result.getQueryId()); + final ManagedExecutionId executionId = result.getQueryId(); + final E query = (E) storage.getExecution(executionId); if (query.getState() != ExecutionState.RUNNING) { return; @@ -141,6 +142,10 @@ public ExecutionMetrics.getRunningQueriesCounter(primaryGroupName).dec(); ExecutionMetrics.getQueryStateCounter(query.getState(), primaryGroupName).inc(); ExecutionMetrics.getQueriesTimeHistogram(primaryGroupName).update(query.getExecutionTime().toMillis()); + + /* This log is here to prevent an NPE which could occur when no strong reference to result.getResults() + existed anymore after the query finished and immediately was reset */ + log.trace("Collected metrics for execution {}. Last result received: {}:", executionId, result.getResults()); } }