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
                                          

Reply via email to