----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/33829/ -----------------------------------------------------------
(Updated May 5, 2015, 2:51 a.m.) Review request for drill, Hanifi Gunes, Jacques Nadeau, and Steven Phillips. Bugs: DRILL-2757 https://issues.apache.org/jira/browse/DRILL-2757 Repository: drill-git Description ------- includes: [DRILL-2893](https://issues.apache.org/jira/browse/DRILL-2893): ScanBatch throws a NullPointerException instead of returning OUT_OF_MEMORY [DRILL-2894](https://issues.apache.org/jira/browse/DRILL-2894): FixedValueVectors shouldn't set it's data buffer to null when it fails to allocate it [DRILL-2895](https://issues.apache.org/jira/browse/DRILL-2895): AbstractRecordBatch.buildSchema() should properly handle OUT_OF_MEMORY outcome [DRILL-2905](https://issues.apache.org/jira/browse/DRILL-2905): RootExec implementations should properly handle IterOutcome.OUT_OF_MEMORY [DRILL-2920](https://issues.apache.org/jira/browse/DRILL-2920): properly handle OutOfMemoryException [DRILL-2947](https://issues.apache.org/jira/browse/DRILL-2947): AllocationHelper.allocateNew() doesn't have a consistent behavior when it can't allocate also: - improved how system errors are displayed - added UserException.memoryError() with a pre assigned error message - injection site in ScanBatch and unit test that runs various tpch queries and injects an exception in the ScanBatch that will cause an OUT_OF_MEMORY outcome to be sent Diffs ----- common/src/main/java/org/apache/drill/common/exceptions/ErrorHelper.java 4da4ee8 common/src/main/java/org/apache/drill/common/exceptions/UserException.java 9283339 common/src/test/java/org/apache/drill/common/exceptions/TestUserException.java a145f95 exec/java-exec/src/main/codegen/templates/FixedValueVectors.java 6a924b7 exec/java-exec/src/main/codegen/templates/VariableLengthVectors.java 8a4b663 exec/java-exec/src/main/java/org/apache/drill/exec/ops/FragmentContext.java 09a7568 exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/ScanBatch.java 4700dbd exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/ScreenCreator.java 5b4d7bd exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/SingleSenderCreator.java 67062f3 exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/TopN/TopNBatch.java 9f6bea9 exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/WriterRecordBatch.java 15fb7b5 exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/aggregate/HashAggBatch.java b753574 exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/aggregate/HashAggTemplate.java 1b90dd8 exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/aggregate/StreamingAggBatch.java c1c5cb9 exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/aggregate/StreamingAggTemplate.java 86f3100 exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/broadcastsender/BroadcastSenderRootExec.java d2282c8 exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/filter/FilterTemplate2.java 26f2657 exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/HashJoinBatch.java dd53477 exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java 6466f70 exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/NestedLoopJoinBatch.java d20bfa1 exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/limit/LimitRecordBatch.java eff9e61 exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/mergereceiver/MergingRecordBatch.java c36b0d3 exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/partitionsender/PartitionSenderRootExec.java cf7ba16 exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/producer/ProducerConsumerBatch.java 35bf3cd exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/project/ProjectRecordBatch.java 7b9fffb exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/sort/SortBatch.java 74b7d85 exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/svremover/RemovingRecordBatch.java aa9297e exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/trace/TraceRecordBatch.java af45815 exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/union/UnionAllRecordBatch.java d7ea3bb exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/window/WindowFrameRecordBatch.java 86d11d5 exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.java e88bc67 exec/java-exec/src/main/java/org/apache/drill/exec/record/AbstractRecordBatch.java 4e348bb exec/java-exec/src/main/java/org/apache/drill/exec/vector/AllocationHelper.java 7c77ca2 exec/java-exec/src/main/java/org/apache/drill/exec/vector/BitVector.java 2fc5bf3 exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/Foreman.java 4249cbe exec/java-exec/src/main/java/org/apache/drill/exec/work/fragment/FragmentExecutor.java ddb828c exec/java-exec/src/test/java/org/apache/drill/TestOutOfMemoryOutcome.java PRE-CREATION Diff: https://reviews.apache.org/r/33829/diff/ Testing (updated) ------- added new test class "TestOutOfMemory" that runs several tpch queries and injects an OutOfMemoryException in the ScanBatch. This causes an OUT_OF_MEMORY outcome to be propagated through the execution stack. All unit tests are passing, along with functional and tpch100 Thanks, abdelhakim deneche