[
https://issues.apache.org/jira/browse/DRILL-2088?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14304275#comment-14304275
]
Steven Phillips commented on DRILL-2088:
----------------------------------------
+1
> BitVector.Mutator.setValueCount() fails with invalid buffer access
> ------------------------------------------------------------------
>
> Key: DRILL-2088
> URL: https://issues.apache.org/jira/browse/DRILL-2088
> Project: Apache Drill
> Issue Type: Bug
> Components: Execution - Data Types
> Reporter: Venki Korukanti
> Assignee: Venki Korukanti
> Attachments:
> 0001-DRILL-2088-ReAlloc-in-FixedWidthVector.setValueCount.patch
>
>
> Run the following physical plan:
> {code}
> {
> head:{
> type:"APACHE_DRILL_PHYSICAL",
> version:"1",
> generator:{
> type:"manual"
> }
> },
> graph:[
> {
> @id:1,
> pop:"mock-scan",
> url: "http://apache.org",
> entries:[
> {records: 100, types: [
> {name: "blue", type: "BIT", mode: "REQUIRED"},
> {name: "red", type: "BIGINT", mode: "REQUIRED"},
> {name: "green", type: "INT", mode: "OPTIONAL"}
> ]}
> ]
> },
> {
> @id:2,
> child: 1,
> pop:"selection-vector-remover"
> },
> {
> @id: 3,
> child: 2,
> pop: "screen"
> }
> ]
> }
> {code}
> It fails with:
> {code}
> Failure while running fragment., index: 0, length: 8192 (expected: range(0,
> 1024))
> {code}
> Couple of issues:
> 1. We don't transfer valueCapacity as part of TransferPair.transfer(). This
> causes the vector that got the buffers to have 0 as valueCapacity. During the
> realloc of vector that got the buffer, we rely on valueCapacity to decide
> whether to realloc or not.
> 2. When BitVector.Mutator.setValueCount() is called we try to reallocate the
> buffer as the valueCapacity is zero. As part of realloc, we allocate a buffer
> of size 1028bytes and try to copy the existing buffer. Problem is existing
> buffer has size more than 1028bytes and we fail in copying.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)