[
https://issues.apache.org/jira/browse/LENS-925?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Puneet Gupta resolved LENS-925.
-------------------------------
Resolution: Fixed
resolved as part of Lens-901
> Execute With Timeout logic is not correct when server persistence is enabled.
> ------------------------------------------------------------------------------
>
> Key: LENS-925
> URL: https://issues.apache.org/jira/browse/LENS-925
> Project: Apache Lens
> Issue Type: Bug
> Reporter: Puneet Gupta
> Assignee: Puneet Gupta
> Fix For: 2.6
>
>
> QueryExecutionServiceImpl.executeTimeoutInternal(LensSessionHandle,
> QueryContext, long, Configuration) waits for driver to complete query
> execution via LensDriver.registerForCompletionNotification() and then checks
> whether query status is finished via QueryContext.finished() before returning
> the results to the client.
> Even though the driver finishes query execution but the Query Status is set
> to finhised(SUCCESSFUL/FAILED/CANCELLED) in two cases
> 1. Asynchronously via LensDriver.updateStatus(QueryContext) which is
> called in Thread QueryExecutionServiceImpl.StatusPoller.run()
> OR
> 2. whenever
> QueryExecutionServiceImpl.getQueryContext(LensSessionHandle, QueryHandle) is
> called.
> It is possible that when server persistence is enabled and even though driver
> has finished execution successfully, the QueryContext.finished() is still
> fasle, since server level persistence is still not over. In this case even
> though the executeTimeoutInternal() may have enough time to spare until
> timeout, it ll still return a null result.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)