This is an automated email from the ASF dual-hosted git repository.
mblow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git
The following commit(s) were added to refs/heads/master by this push:
new a03151e1b8 [ASTERIXDB-3685][API] Async request shown in active
requests even after completion
a03151e1b8 is described below
commit a03151e1b86fd34f1d56d975e3a9dc451ea23041
Author: Peeyush Gupta <[email protected]>
AuthorDate: Wed Jan 7 22:01:03 2026 -0800
[ASTERIXDB-3685][API] Async request shown in active requests even after
completion
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
A request with mode parameter set as async can be seen in active requests
even after completion in cas the statement itself was empty or the statement
does not support async result delivery. The patch fixes both these cases
Ext-ref: MB-69765, MB-69763
Change-Id: Ie304a6831eadb93b7b8cb825b2180b933b208dbb
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20770
Reviewed-by: Peeyush Gupta <[email protected]>
Reviewed-by: Ian Maxon <[email protected]>
Tested-by: Jenkins <[email protected]>
---
.../java/org/apache/asterix/app/translator/QueryTranslator.java | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
index c3f7c55469..c4f5b3d01c 100644
---
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
+++
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
@@ -392,6 +392,7 @@ public class QueryTranslator extends AbstractLangTranslator
implements IStatemen
final ResultMetadata outMetadata = requestParameters.getOutMetadata();
final Map<String, IAObject> stmtParams =
requestParameters.getStatementParameters();
warningCollector.setMaxWarnings(sessionConfig.getMaxWarnings());
+ boolean stmtWithAsyncSupportUsed = false;
try {
for (Statement stmt : statements) {
if (sessionConfig.is(SessionConfig.FORMAT_HTML)) {
@@ -521,6 +522,7 @@ public class QueryTranslator extends AbstractLangTranslator
implements IStatemen
}
handleCopyToStatement(metadataProvider, stmt, hcc,
resultSet, resultDelivery, outMetadata,
requestParameters, stmtParams, stats);
+ stmtWithAsyncSupportUsed = true;
break;
case INSERT:
case UPDATE:
@@ -530,6 +532,7 @@ public class QueryTranslator extends AbstractLangTranslator
implements IStatemen
metadataProvider.setResultAsyncMode(resultDelivery
== ResultDelivery.ASYNC
|| resultDelivery ==
ResultDelivery.DEFERRED);
metadataProvider.setMaxResultReads(maxResultReads);
+ stmtWithAsyncSupportUsed = true;
}
if (stats.getProfileType() == Stats.ProfileType.FULL) {
this.jobFlags.add(JobFlag.PROFILE_RUNTIME);
@@ -575,6 +578,7 @@ public class QueryTranslator extends AbstractLangTranslator
implements IStatemen
}
handleQuery(metadataProvider, (Query) stmt, hcc,
resultSet, resultDelivery, outMetadata, stats,
requestParameters, stmtParams, stmtRewriter);
+ stmtWithAsyncSupportUsed = true;
break;
case ANALYZE:
handleAnalyzeStatement(metadataProvider, stmt, hcc,
requestParameters);
@@ -610,7 +614,7 @@ public class QueryTranslator extends AbstractLangTranslator
implements IStatemen
throw ex;
} finally {
// async queries are completed after their job completes
- if (ResultDelivery.ASYNC != resultDelivery) {
+ if (statements.isEmpty() || ResultDelivery.ASYNC != resultDelivery
|| !stmtWithAsyncSupportUsed) {
appCtx.getRequestTracker().complete(requestParameters.getRequestReference().getUuid());
}
Thread.currentThread().setName(threadName);