You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@drill.apache.org by abdelhakim deneche <ad...@gmail.com> on 2015/05/05 01:54:11 UTC
Review Request 33829: DRILL-2757: Verify operators correctly handle
low memory conditions and cancellations
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/33829/
-----------------------------------------------------------
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
-------
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, still waiting for the results for functional/tpch100
Thanks,
abdelhakim deneche
Re: Review Request 33829: DRILL-2757: Verify operators correctly
handle low memory conditions and cancellations
Posted by Steven Phillips <sp...@maprtech.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/33829/#review82579
-----------------------------------------------------------
Ship it!
Ship It!
- Steven Phillips
On May 5, 2015, 2:51 a.m., abdelhakim deneche wrote:
>
> -----------------------------------------------------------
> 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
> -------
>
> 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
>
>
Re: Review Request 33829: DRILL-2757: Verify operators correctly
handle low memory conditions and cancellations
Posted by abdelhakim deneche <ad...@gmail.com>.
> On May 5, 2015, 11:19 p.m., Jacques Nadeau wrote:
> > Let's just have one exception OutOfMemoryException and make it a RuntimeException. I don't know what the purpose of having two different ones is.
>
> Jacques Nadeau wrote:
> I meant to add: I don't think we need this to ever be a caught exception.
Should I make this change as a separate patch after the "new" allocator is committed to master ? otherwise, I will introduce lot's of small changes that will cause this patch or the new allocator's patch too much rebasing overhead.
- abdelhakim
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/33829/#review82606
-----------------------------------------------------------
On May 5, 2015, 2:51 a.m., abdelhakim deneche wrote:
>
> -----------------------------------------------------------
> 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
> -------
>
> 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
>
>
Re: Review Request 33829: DRILL-2757: Verify operators correctly
handle low memory conditions and cancellations
Posted by Jacques Nadeau <ja...@gmail.com>.
> On May 5, 2015, 11:19 p.m., Jacques Nadeau wrote:
> > Let's just have one exception OutOfMemoryException and make it a RuntimeException. I don't know what the purpose of having two different ones is.
I meant to add: I don't think we need this to ever be a caught exception.
- Jacques
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/33829/#review82606
-----------------------------------------------------------
On May 5, 2015, 2:51 a.m., abdelhakim deneche wrote:
>
> -----------------------------------------------------------
> 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
> -------
>
> 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
>
>
Re: Review Request 33829: DRILL-2757: Verify operators correctly
handle low memory conditions and cancellations
Posted by abdelhakim deneche <ad...@gmail.com>.
> On May 5, 2015, 11:19 p.m., Jacques Nadeau wrote:
> > Let's just have one exception OutOfMemoryException and make it a RuntimeException. I don't know what the purpose of having two different ones is.
>
> Jacques Nadeau wrote:
> I meant to add: I don't think we need this to ever be a caught exception.
>
> abdelhakim deneche wrote:
> Should I make this change as a separate patch after the "new" allocator is committed to master ? otherwise, I will introduce lot's of small changes that will cause this patch or the new allocator's patch too much rebasing overhead.
I created [DRILL-2974](https://issues.apache.org/jira/browse/DRILL-2974) to track this change
- abdelhakim
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/33829/#review82606
-----------------------------------------------------------
On May 6, 2015, 7:10 p.m., abdelhakim deneche wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/33829/
> -----------------------------------------------------------
>
> (Updated May 6, 2015, 7:10 p.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 b108924
> 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 d678cc5
> 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
> -------
>
> 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 regression/tpch100
>
>
> Thanks,
>
> abdelhakim deneche
>
>
Re: Review Request 33829: DRILL-2757: Verify operators correctly
handle low memory conditions and cancellations
Posted by Jacques Nadeau <ja...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/33829/#review82606
-----------------------------------------------------------
Let's just have one exception OutOfMemoryException and make it a RuntimeException. I don't know what the purpose of having two different ones is.
- Jacques Nadeau
On May 5, 2015, 2:51 a.m., abdelhakim deneche wrote:
>
> -----------------------------------------------------------
> 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
> -------
>
> 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
>
>
Re: Review Request 33829: DRILL-2757: Verify operators correctly
handle low memory conditions and cancellations
Posted by abdelhakim deneche <ad...@gmail.com>.
> On May 5, 2015, 8:24 p.m., Steven Phillips wrote:
> > exec/java-exec/src/main/java/org/apache/drill/exec/vector/AllocationHelper.java, line 53
> > <https://reviews.apache.org/r/33829/diff/1/?file=949297#file949297line53>
> >
> > Does this exception need to be part of the signature? Is it just for documentation purposes?
>
> abdelhakim deneche wrote:
> It's just for documentation purposes.
I will remove it from the signature but leave it in the javadoc
- abdelhakim
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/33829/#review82574
-----------------------------------------------------------
On May 5, 2015, 2:51 a.m., abdelhakim deneche wrote:
>
> -----------------------------------------------------------
> 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
> -------
>
> 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
>
>
Re: Review Request 33829: DRILL-2757: Verify operators correctly
handle low memory conditions and cancellations
Posted by abdelhakim deneche <ad...@gmail.com>.
> On May 5, 2015, 8:24 p.m., Steven Phillips wrote:
> > exec/java-exec/src/main/java/org/apache/drill/exec/vector/AllocationHelper.java, line 53
> > <https://reviews.apache.org/r/33829/diff/1/?file=949297#file949297line53>
> >
> > Does this exception need to be part of the signature? Is it just for documentation purposes?
It's just for documentation purposes.
- abdelhakim
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/33829/#review82574
-----------------------------------------------------------
On May 5, 2015, 2:51 a.m., abdelhakim deneche wrote:
>
> -----------------------------------------------------------
> 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
> -------
>
> 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
>
>
Re: Review Request 33829: DRILL-2757: Verify operators correctly
handle low memory conditions and cancellations
Posted by abdelhakim deneche <ad...@gmail.com>.
> On May 5, 2015, 8:24 p.m., Steven Phillips wrote:
> > exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/Foreman.java, line 210
> > <https://reviews.apache.org/r/33829/diff/1/?file=949299#file949299line210>
> >
> > Should we also catch OutOfMemoryRuntimeException?
Yes
- abdelhakim
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/33829/#review82574
-----------------------------------------------------------
On May 5, 2015, 2:51 a.m., abdelhakim deneche wrote:
>
> -----------------------------------------------------------
> 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
> -------
>
> 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
>
>
Re: Review Request 33829: DRILL-2757: Verify operators correctly
handle low memory conditions and cancellations
Posted by Steven Phillips <sp...@maprtech.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/33829/#review82574
-----------------------------------------------------------
exec/java-exec/src/main/java/org/apache/drill/exec/vector/AllocationHelper.java
<https://reviews.apache.org/r/33829/#comment133308>
Does this exception need to be part of the signature? Is it just for documentation purposes?
exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/Foreman.java
<https://reviews.apache.org/r/33829/#comment133306>
Should we also catch OutOfMemoryRuntimeException?
- Steven Phillips
On May 5, 2015, 2:51 a.m., abdelhakim deneche wrote:
>
> -----------------------------------------------------------
> 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
> -------
>
> 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
>
>
Re: Review Request 33829: DRILL-2757: Verify operators correctly
handle low memory conditions and cancellations
Posted by abdelhakim deneche <ad...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/33829/
-----------------------------------------------------------
(Updated May 9, 2015, 6:48 p.m.)
Review request for drill, Hanifi Gunes, Jacques Nadeau, and Steven Phillips.
Changes
-------
rebased on top of master
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 (updated)
-----
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 1059bfb
exec/java-exec/src/main/codegen/templates/VariableLengthVectors.java 7aa7415
exec/java-exec/src/main/java/org/apache/drill/exec/ops/FragmentContext.java b108924
exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/ScanBatch.java f56dae3
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 2f68faf
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 46b3721
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 aa4b300
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 ce683cb
exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/partitionsender/PartitionSenderRootExec.java 16d1400
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 66bc3e3
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 d08c86c
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 b7ef584
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
-------
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 regression/tpch100
Thanks,
abdelhakim deneche
Re: Review Request 33829: DRILL-2757: Verify operators correctly
handle low memory conditions and cancellations
Posted by abdelhakim deneche <ad...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/33829/
-----------------------------------------------------------
(Updated May 6, 2015, 7:10 p.m.)
Review request for drill, Hanifi Gunes, Jacques Nadeau, and Steven Phillips.
Changes
-------
fixed formatting in FixedValueVectors.java
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 (updated)
-----
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 b108924
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 d678cc5
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
-------
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 regression/tpch100
Thanks,
abdelhakim deneche
Re: Review Request 33829: DRILL-2757: Verify operators correctly
handle low memory conditions and cancellations
Posted by Hanifi Gunes <ha...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/33829/#review82691
-----------------------------------------------------------
I reviewed vector changes only. Partial +1 for VV changes.
exec/java-exec/src/main/codegen/templates/FixedValueVectors.java
<https://reviews.apache.org/r/33829/#comment133478>
Just noticed this thanks to your change. This should fail check style. We disallow single line if statements with no curly braces. We were able to compile this quite likely because it is generated code so escapes style check. We should include generated code in style check as well. In the meantime please add curly braces around return.
- Hanifi Gunes
On May 6, 2015, 4:04 p.m., abdelhakim deneche wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/33829/
> -----------------------------------------------------------
>
> (Updated May 6, 2015, 4:04 p.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 b108924
> 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 d678cc5
> 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
> -------
>
> 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 regression/tpch100
>
>
> Thanks,
>
> abdelhakim deneche
>
>
Re: Review Request 33829: DRILL-2757: Verify operators correctly
handle low memory conditions and cancellations
Posted by abdelhakim deneche <ad...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/33829/
-----------------------------------------------------------
(Updated May 6, 2015, 4:04 p.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 b108924
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 d678cc5
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 regression/tpch100
Thanks,
abdelhakim deneche
Re: Review Request 33829: DRILL-2757: Verify operators correctly
handle low memory conditions and cancellations
Posted by abdelhakim deneche <ad...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/33829/
-----------------------------------------------------------
(Updated May 6, 2015, 3:37 p.m.)
Review request for drill, Hanifi Gunes, Jacques Nadeau, and Steven Phillips.
Changes
-------
- removed "throws OutOfMemoryRuntimeException" from AllocationHelper.allocate() signature
- Foreman catches both OutOfMemoryException and OutOfMemoryRuntimeException
- fixed how error messages are generated for system errors
- rebased on top of master
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 (updated)
-----
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 b108924
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 d678cc5
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.
unit/regression test in progress
Thanks,
abdelhakim deneche
Re: Review Request 33829: DRILL-2757: Verify operators correctly
handle low memory conditions and cancellations
Posted by abdelhakim deneche <ad...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/33829/#review82576
-----------------------------------------------------------
exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/Foreman.java
<https://reviews.apache.org/r/33829/#comment133312>
Yes
- abdelhakim deneche
On May 5, 2015, 2:51 a.m., abdelhakim deneche wrote:
>
> -----------------------------------------------------------
> 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
> -------
>
> 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
>
>
Re: Review Request 33829: DRILL-2757: Verify operators correctly
handle low memory conditions and cancellations
Posted by abdelhakim deneche <ad...@gmail.com>.
-----------------------------------------------------------
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