Puneet Gupta created LENS-925:
---------------------------------
Summary: Execute With Timeout logic is not correct when server
persistenec 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
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)