[ 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)