drill-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DRILL-6262) IndexOutOfBoundException in RecordBatchSize for empty variableWidthVector
Date Tue, 20 Mar 2018 00:55:00 GMT

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

ASF GitHub Bot commented on DRILL-6262:
---------------------------------------

Github user sohami commented on a diff in the pull request:

    https://github.com/apache/drill/pull/1175#discussion_r175629518
  
    --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/record/RecordBatchSizer.java
---
    @@ -321,10 +321,8 @@ public ColumnSize(ValueVector v, String prefix) {
     
               // Calculate pure data size.
               if (isVariableWidth) {
    -            UInt4Vector offsetVector = ((RepeatedValueVector) v).getOffsetVector();
    -            int innerValueCount = offsetVector.getAccessor().get(valueCount);
                 VariableWidthVector dataVector = ((VariableWidthVector) ((RepeatedValueVector)
v).getDataVector());
    -            totalDataSize = dataVector.getOffsetVector().getAccessor().get(innerValueCount);
    +            totalDataSize = dataVector.getCurrentSizeInBytes();
    --- End diff --
    
    @paul-rogers - I don't think `totalDataSize` includes both offset vector side and bytes
size. It was meant to only include **pure data size only** for all entries in that column
and that's what comment also suggests.
    
    Instead `totalNetSize` includes the size for data and offset vector which is used for
computing the rowWidth.


> IndexOutOfBoundException in RecordBatchSize for empty variableWidthVector
> -------------------------------------------------------------------------
>
>                 Key: DRILL-6262
>                 URL: https://issues.apache.org/jira/browse/DRILL-6262
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Execution - Flow
>            Reporter: Sorabh Hamirwasia
>            Assignee: Sorabh Hamirwasia
>            Priority: Major
>              Labels: ready-to-commit
>             Fix For: 1.14.0
>
>
> ColumnSize inside RecordBatchSizer while computing the totalDataSize for VariableWidthVector
throws IndexOutOfBoundException when the underlying vector is empty without any allocated
memory.
> This happens because the way totalDataSize is computed is using the offsetVector value
at an index n where n is total number of records in the vector. When vector is empty then
n=0 and offsetVector drillbuf is empty as well. So while retrieving value at index 0 from
offsetVector exception is thrown. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message