S3AInputStream handles any IOE through a close() of stream and single re-invocation of the read, with
- no backoff
- no abort of the HTTPS connection, which is just returned to the pool, If httpclient hasn't noticed the failure, it may get returned to the caller on the next read
- switch to invoker
- retry policy explicitly for stream (EOF => throw, timeout => close, sleep, retry, etc)
We could think about extending the fault injection to inject stream read failures intermittently too, though it would need something in S3AInputStream to (optionally) wrap the http input streams with the failing stream.