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

Steve Loughran commented on HADOOP-17382:
-----------------------------------------

It's up to the implementor.

If the FS supports simultaneous writes and reads (so an hsync/hflush updates to 
current readers), late reporting of EOF is essentially mandatory: the file 
length can change and the only way to see if it has moved is to attempt to 
read/seek

If S3A fails on read, maybe that should be revisited.

What really matters is "what do apps expect". They seem to cope with both. 
Anything which uses readFully(position) will fail in the call regardless of 
where it is done in the stream.

Are you seeing problems here?


> AbfsInputStream#seek throws EOFException when seek past the end of stream
> -------------------------------------------------------------------------
>
>                 Key: HADOOP-17382
>                 URL: https://issues.apache.org/jira/browse/HADOOP-17382
>             Project: Hadoop Common
>          Issue Type: Improvement
>            Reporter: Chen Liang
>            Priority: Major
>              Labels: azure
>
> Currently AbfsInputStream#seek has below check:
> {code}
> public synchronized void seek(long n) throws IOException {
> ...
> if (n > contentLength) {
>  throw new EOFException(FSExceptionMessages.CANNOT_SEEK_PAST_EOF);
> }
> ...
> }
> {code}
> So if a the seek is called with a position past the end of the stream, a 
> EOFException gets thrown. However, it appears to me this behavior is 
> different from some other inputstream impls, such as \{{S3AInputStream}} and 
> \{{LocalFSFileInputStream}}, where seek passing the end is allowed, only that 
> a later read call will return -1 indicating EOF. I think it would be better 
> to have AbfsInputStream do the same thing.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to