-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/34014/
-----------------------------------------------------------
Review request for drill, Chris Westin and Jacques Nadeau.
Bugs: DRILL-2755
https://issues.apache.org/jira/browse/DRILL-2755
Repository: drill-git
Description
-------
DRILL-2755: Use and handle InterruptedException during query processing.
- Interrupt FragmentExecutor thread as part of FragmentExecutor.cancel()
- Handle InterruptedException in ExternalSortBatch.newSV2(). If the
fragment status says
should not continue, then throw the InterruptedException to caller which
returns IterOutcome.STOP
- Add comments reg not handling of InterruptedException in
SendingAccountor.waitForSendComplete()
- Handle InterruptedException in
OrderedPartitionRecordBatch.getPartitionVectors()
- If interrupted in Thread.sleep calls and fragment status says should not
run, then
return IterOutcome.STOP downstream.
- Interrupt partitioner threads if PartitionerRecordBatch is interrupted
while waiting for
partitioner threads to complete.
- Preserve interrupt status if not handled
- Handle null RecordBatches returned by RawBatchBuffer.getNext() in
MergingRecordBatch.buildSchema()
- Change timeout in Foreman to be proportional to the number of
intermediate fragments sent instead
of hard coded limit of 90s.
- Change TimedRunnable to enforce a timeout of 15s per runnable.
Total timeout is (5s * numOfRunnableTasks) / parallelism.
Diffs
-----
pom.xml 8c9f09e
Diff: https://reviews.apache.org/r/34014/diff/
Testing
-------
- Add unit tests
* Testing cancelling a query interrupts the query fragments which are
currently blocked
* Testing interrupting the partitioner sender which in turn interrupts
its helper threads
* Testing TimedRunanble enforeces timeout for the whole task list.
Thanks,
Venki Korukanti