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)

Reply via email to