Hi, Avro Developers:
Is anyone familiar the code logic related to
org.apache.avro.io.DirectBinaryDecoder?
I am asking this question related to AVRO-1786, which I believe I am facing a
bug related to this class.
A valid Avro record sent from Mapper to the Reducer, but Reducer cannot read it
due to IndexOutOfBoundException, because the readInt() method of this class
return "-51".
I even can dump the local variables of the method in this exception case, and
described in the comments area of Jira ticket.
I don't understand the internal logic of this class, and how the readInt()
method implemented. But an inputstream read 101 bytes out will cause this
method return a negative number, and causes following method
IndexOutofBoundException looks like a bug to me.
Can anyone understand this class's logic confirm this is a bug or not? If it is
a bug, what is the best way to fix it?
I can consistently reproduce this bug on our production cluster, which mean I
can verify any code fix works or not for this case.
Let me know any question related to this JIRA.
Thanks
Yong