shfshihuafeng commented on code in PR #2878: URL: https://github.com/apache/drill/pull/2878#discussion_r1512773128
########## exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java: ########## @@ -297,7 +297,14 @@ public void close() { batchMemoryManager.getAvgOutputRowWidth(), batchMemoryManager.getTotalOutputRecords()); super.close(); - leftIterator.close(); + try { + leftIterator.close(); + } catch (Exception e) { Review Comment: @cgivre In my test case ,it throw "QueryCancelledException",because some minorfragment throw .OutOfMemoryException ,so it inform foreman failed. foreman send "QueryCancel" commands to other minorfragments. it throws QueryCancelledException after the method "incoming.next()" called method checkContinue() method Although the "checkContinue" phase throws a fixed "QueryCancelledException" message, I am not sure what is causing it (In my test case ,OutOfMemoryException cause exception) ``` public void clearInflightBatches() { while (lastOutcome == IterOutcome.OK || lastOutcome == IterOutcome.OK_NEW_SCHEMA) { // Clear all buffers from incoming. for (VectorWrapper<?> wrapper : incoming) { wrapper.getValueVector().clear(); } lastOutcome = incoming.next(); } } public void checkContinue() { if (!shouldContinue()) { throw new QueryCancelledException(); } } } ``` **stack** ``` Caused by: org.apache.drill.exec.ops.QueryCancelledException: null at org.apache.drill.exec.work.fragment.FragmentExecutor$ExecutorStateImpl.checkContinue(FragmentExecutor.java:533) at org.apache.drill.exec.record.AbstractRecordBatch.checkContinue(AbstractRecordBatch.java:278) at org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:105) at org.apache.drill.exec.record.AbstractUnaryRecordBatch.innerNext(AbstractUnaryRecordBatch.java:59) at org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:165) at org.apache.drill.exec.record.RecordIterator.clearInflightBatches(RecordIterator.java:359) at org.apache.drill.exec.record.RecordIterator.close(RecordIterator.java:365) at org.apache.drill.exec.physical.impl.join.MergeJoinBatch.close(MergeJoinBatch.java:301) ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: dev-unsubscr...@drill.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org