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

Oleg Zinoviev commented on DRILL-7355:
--------------------------------------

Any chance this can be fixed in 1.17.0?

> Reading a offset based vectors may produce IndexOutOfBoundsException
> --------------------------------------------------------------------
>
>                 Key: DRILL-7355
>                 URL: https://issues.apache.org/jira/browse/DRILL-7355
>             Project: Apache Drill
>          Issue Type: Bug
>    Affects Versions: 1.16.0
>         Environment: Stack trace:
> Caused by: java.lang.IndexOutOfBoundsException: index: 17, length: -799 
> (expected: range(0, 524288))
>       at 
> io.netty.buffer.AbstractByteBuf.checkIndex0(AbstractByteBuf.java:1125)
>       at io.netty.buffer.AbstractByteBuf.checkIndex(AbstractByteBuf.java:1120)
>       at 
> io.netty.buffer.PooledUnsafeDirectByteBuf.nioBuffer(PooledUnsafeDirectByteBuf.java:244)
>       at io.netty.buffer.WrappedByteBuf.nioBuffer(WrappedByteBuf.java:734)
>       at 
> io.netty.buffer.UnsafeDirectLittleEndian.nioBuffer(UnsafeDirectLittleEndian.java:34)
>       at io.netty.buffer.DrillBuf.nioBuffer(DrillBuf.java:364)
>       at 
> org.apache.drill.exec.store.ParquetOutputRecordWriter$VarCharParquetConverter.writeField(ParquetOutputRecordWriter.java:1824)
>       at 
> org.apache.drill.exec.store.EventBasedRecordWriter.write(EventBasedRecordWriter.java:48)
>       at 
> org.apache.drill.exec.physical.impl.WriterRecordBatch.innerNext(WriterRecordBatch.java:111)
>       at 
> org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:186)
>       at 
> org.apache.drill.exec.physical.impl.BaseRootExec.next(BaseRootExec.java:104)
>       at 
> org.apache.drill.exec.physical.impl.SingleSenderCreator$SingleSenderRootExec.innerNext(SingleSenderCreator.java:93)
>       at 
> org.apache.drill.exec.physical.impl.BaseRootExec.next(BaseRootExec.java:94)
>       at 
> org.apache.drill.exec.work.fragment.FragmentExecutor$1.run(FragmentExecutor.java:296)
>       at 
> org.apache.drill.exec.work.fragment.FragmentExecutor$1.run(FragmentExecutor.java:283)
>            Reporter: Oleg Zinoviev
>            Priority: Major
>
> Var16Char, VarBinary, VarChar and VarDecimal vectors contain a UInt4 offset 
> vector. When reading values into the corresponding holder, the values of 
> their offset vectors are written into the "start" and "end" fields as 
> ordinary integers. In the subsequent operations is not considered that 
> originally this values were unsigned integers and (for example in the 
> calculation of the buffer size at ParquetOutputRecordWriter) usual 
> subtraction "end" - "start" used. This causes the target buffer size to be 
> negative. 



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to