>From Peeyush Gupta <[email protected]>: Peeyush Gupta has submitted this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20770?usp=email )
( 2 is the latest approved patch-set. No files were changed between the latest approved patch-set and the submitted one. )Change subject: [ASTERIXDB-3685][API] Async request shown in active requests even after completion ...................................................................... [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]> --- M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java 1 file changed, 5 insertions(+), 1 deletion(-) Approvals: Jenkins: Verified Peeyush Gupta: Looks good to me, but someone else must approve Ian Maxon: Looks good to me, approved 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 c3f7c55..c4f5b3d 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 @@ 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 @@ } handleCopyToStatement(metadataProvider, stmt, hcc, resultSet, resultDelivery, outMetadata, requestParameters, stmtParams, stats); + stmtWithAsyncSupportUsed = true; break; case INSERT: case UPDATE: @@ -530,6 +532,7 @@ 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 @@ } 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 @@ 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); -- To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20770?usp=email To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings?usp=email Gerrit-MessageType: merged Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Change-Id: Ie304a6831eadb93b7b8cb825b2180b933b208dbb Gerrit-Change-Number: 20770 Gerrit-PatchSet: 4 Gerrit-Owner: Peeyush Gupta <[email protected]> Gerrit-Reviewer: Anon. E. Moose #1000171 Gerrit-Reviewer: Ian Maxon <[email protected]> Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Peeyush Gupta <[email protected]> Gerrit-CC: Murtadha Hubail <[email protected]>
