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