Skip to content

Commit

Permalink
Merge pull request #3249 from ingef/fix/result_metrics_npe
Browse files Browse the repository at this point in the history
hold reference to results until metrics are collected
  • Loading branch information
thoniTUB authored Dec 19, 2023
2 parents 15e2618 + 695113c commit ee7388f
Showing 1 changed file with 6 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,8 @@ public ManagedExecution createQuery(QueryDescription query, UUID queryId, User u
*/
public <R extends ShardResult, E extends ManagedExecution & InternalExecution<R>> 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;
Expand All @@ -141,6 +142,10 @@ public <R extends ShardResult, E extends ManagedExecution & InternalExecution<R>
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());
}

}
Expand Down

0 comments on commit ee7388f

Please sign in to comment.