Hi Xiao,

  I noticed the same thing last night. We should terminate based on Query
state being either COMPLETED or FAILED.

  Let me discuss this with Jacques.

Parth

On Tue, Dec 2, 2014 at 11:52 AM, Xiao Meng <[email protected]> wrote:

> Hi,
>
> We have observed recent changes in drill break the assumption of some C++
>  application (like querySubmitter and ODBC driver).
> We did a binary search on build version and the earliest change is:
>
> https://builds.apache.org/job/drill-scm/142/
>
> The change related should be:
> DRILL-1517: Update Foreman to improve state management
>
>
> Before  the Jenkin build 142, after the client send the query,  the
> UserServer will send the results back in a sequence like:
>
> RB[1] -> RB[2] ->  -> RB[n] -> QueryState_COMPLETED
>
> where RB[i] is the i-th record patch and RB[n] is the one has the flag
> is_last_chunk true.
> With patch DRILL-1305 (https://issues.apache.org/jira/browse/DRILL-1305),
> we let the C++ client consume the QueryState_COMPLETED message and get
> notified the query is completed.
>
> After build 142, we did not receive the QueryState_COMPLETED message
> anymore. So the sequence is like:
> RB[1] -> RB[2] ->  -> RB[n]
> As a result, a application wait for the final query state message will
> hang there.
>
> Although we may also rely on RB[n] to notify the application to terminate
> the query, what is the expected terminated state message we should rely
> on?  It will be good to have an agreement on this.
>
> Xiao
>

Reply via email to