You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Deneche A. Hakim (JIRA)" <ji...@apache.org> on 2015/05/05 17:08:00 UTC

[jira] [Commented] (DRILL-2947) AllocationHelper.allocateNew() doesn't have a consistent behavior when it can't allocate

    [ https://issues.apache.org/jira/browse/DRILL-2947?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14528598#comment-14528598 ] 

Deneche A. Hakim commented on DRILL-2947:
-----------------------------------------

The patch for DRILL-2757 includes a fix for this

> AllocationHelper.allocateNew() doesn't have a consistent behavior when it can't allocate
> ----------------------------------------------------------------------------------------
>
>                 Key: DRILL-2947
>                 URL: https://issues.apache.org/jira/browse/DRILL-2947
>             Project: Apache Drill
>          Issue Type: Sub-task
>          Components: Execution - Flow, Execution - Relational Operators
>            Reporter: Deneche A. Hakim
>            Assignee: Deneche A. Hakim
>            Priority: Critical
>             Fix For: 1.0.0
>
>
> AllocationHelper.allocateNew(...) has the following implementation:
> {code}
> public static boolean allocateNew(ValueVector v, int valueCount){
>     if (v instanceof  FixedWidthVector) {
>       ((FixedWidthVector) v).allocateNew(valueCount);
>       return true;
>     } else {
>       return v.allocateNewSafe();
>     }
>   }
> {code}
> If it can't allocate the memory it will either return false or throw an _OutOfMemoryRuntimeException_ depending on the class of v.
> Some operators that use this method, like _NestedLoopJoinBatch_ don't check if _allocateNew()_ returns false assuming it will throw an exception instead.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)