[ 
https://issues.apache.org/jira/browse/HADOOP-16155?focusedWorklogId=711381&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-711381
 ]

ASF GitHub Bot logged work on HADOOP-16155:
-------------------------------------------

                Author: ASF GitHub Bot
            Created on: 19/Jan/22 13:36
            Start Date: 19/Jan/22 13:36
    Worklog Time Spent: 10m 
      Work Description: ahmarsuhail opened a new pull request #3905:
URL: https://github.com/apache/hadoop/pull/3905


   ### Description of PR
   
   Jira: https://issues.apache.org/jira/browse/HADOOP-16155
   
   When an error happens on read, do not reopen the stream.
   
   For the unit tests I've changed the order of super.read() and trigger 
failure. This is because previously the failure would happen after the read 
actually executed and so the buffer would not be empty and we couldn't assert 
on the buffer being empty in case of failures.
   
   I've also added a new variable triggerGetObjectFailure. This will not 
trigger a get object failure in case of 
testInputStreamReadFullyRetryForException. This is because since we are 
removing retries from read(bytes[]), readFully() will call read(bytes[]) after 
each failure which will then call lazySeek() every time. The get object failure 
ends up being thrown in lazySeek() which does not retry and so readFully does 
not complete.
   
   ### How was this patch tested?
   
   Tested in eu-west-1 by running
   
   ```
   mvn -Dparallel-tests -DtestsThreadCount=16 clean verify
   ```
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Issue Time Tracking
-------------------

            Worklog Id:     (was: 711381)
    Remaining Estimate: 0h
            Time Spent: 10m

> S3AInputStream read(bytes[]) to not retry on read failure: pass action up
> -------------------------------------------------------------------------
>
>                 Key: HADOOP-16155
>                 URL: https://issues.apache.org/jira/browse/HADOOP-16155
>             Project: Hadoop Common
>          Issue Type: Sub-task
>          Components: fs/s3
>    Affects Versions: 3.2.0
>            Reporter: Steve Loughran
>            Priority: Minor
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> The S3AInputStream reacts to read(byte[]) failure by reopening the stream, 
> just as for the single byte read(). We shouldn't need to do that. Instead 
> just close the stream, return 0 and let the caller decided what to do. 
> why so? 
> # its in the contract of InputStream.read(bytes[]),
> # readFully() can handle the 0 in its loop
> # other apps can decided what to do.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

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

Reply via email to