[
https://issues.apache.org/jira/browse/DRILL-7341?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16902200#comment-16902200
]
Paul Rogers edited comment on DRILL-7341 at 8/7/19 4:17 PM:
------------------------------------------------------------
As it turns out, vector accounting is very fragile. Vector sizes and counts are
often wrong. Code seems to have been tweaked to work around these errors. They
are tricky because there is no good way to visualize what is happening.
Tried to fix some of the issues, but fixing one thing tends to break something
else that depended on the wrong state. Created a "batch validator" to identify
the issues, but can't check it in because it produces hundreds of errors.
Glad you were able to find & fix one of the issues!
was (Author: paul.rogers):
As it turns out, vector accounting is very fragile. Vector sizes and counts are
often wrong. Code seems to have been tweaed to work around these errors. They
are tricky because there is no good way to visualize what is happening.
Tried to fix some of the issues, but fixing one thing tends to break something
else that depended on the wrong state. Created a "batch validator" to identify
the issues, but can't check it in because it produces hundreds of errors.
Glad you were able to find & fix one of the issues!
> Vector reAlloc may fails after exchange.
> ----------------------------------------
>
> Key: DRILL-7341
> URL: https://issues.apache.org/jira/browse/DRILL-7341
> Project: Apache Drill
> Issue Type: Bug
> Affects Versions: 1.16.0
> Reporter: Oleg Zinoviev
> Priority: Major
> Attachments: stacktrace.log
>
>
> There are several methods that modify the BaseDataValueVector#data field.
> Some of them, such as BaseDataValueVector#exchange, do not change
> allocationSizeInBytes.
> Therefore, if BaseDataValueVector#exchange was executed for vectors with
> different size, *ValueVector#reAlloc may create a buffer of insufficient size.
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)