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
