The timeout logic was not correct, as the execution timeout was for both execution of queries and processing of returned data.  Up to the point where we had very small Drill-returned result sets, this posed not much of a problem as the processing part of the task was almost instant.  However, when we deal with great quantities of data, processing them would take off a large chunk of allowed time intended for executions only.

Fixed the problem by timing the execution of queries only in QuerySubmitter.  This is done for all types of submissions (JDBC, sqlline and submit_plan).

Also, skip listing out expected and actual data if execution status is timeout or execution failure.

Also, put in the fix of the restart drillbit issue that somehow missed out in the last checkin.