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

Jason Dere commented on HIVE-16637:
-----------------------------------

I think for this to work (basically, for the ChunkedInputStream always read the 
next chunk length after it's done reading a chunk), the ChunkedInputStream 
would have to do read ahead for the very first chunk size before any calls to 
read() have occurred, probably during the constructor. However, this would mean 
that getRecordReader() (which constructs the ChunkedInputStream) becomes a 
blocking call .. and potentially as long as the fragment execution if there are 
no resulting rows returned by the fragment. Which I don't think is a good thing 
.. unless there is another approach you are suggesting?

I'm not sure if trying to read beyond the end of input is incorrect - it is 
valid to do 
{code}while (in.read() != -1) { }{code}



> Improve end-of-data checking for LLAP input format
> --------------------------------------------------
>
>                 Key: HIVE-16637
>                 URL: https://issues.apache.org/jira/browse/HIVE-16637
>             Project: Hive
>          Issue Type: Bug
>          Components: llap
>            Reporter: Jason Dere
>            Assignee: Jason Dere
>         Attachments: HIVE-16637.1.patch
>
>
> The existing end of stream checking in the record reader is too forgiving of 
> errors and does not recognize situations where the server connection has 
> closed abruptly like HIVE-14093.
> Try to add a way to indicate that we have truly hit the end of the stream.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to