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

ASF GitHub Bot commented on HADOOP-18889:
-----------------------------------------

steveloughran opened a new pull request, #6141:
URL: https://github.com/apache/hadoop/pull/6141

   
   1. handle getBucketLocation() unsupported
   2. append / to marker tool searches if the first call fails.
   3. downgrade change control errors a bit better. TODO: useful error text/docs
   4. handle unknown storage classes.
   5. Docs on how to bind to and test third party stores, including google gcs.
   
   Not doing the region logic; this is other test failures.
   
   Exception translation/resilience
   * new AWSUnsupportedFeatureException ex for unsupported/unavailable errors
   * handle 501 method unimplemented the same
   * all ex > 500 mapped to the AWSStatus500Exception
   * precondition errors handled a bit better
   * GCS throttle exception also recognised.
   * New class ErrorHandling to move our error handling logic too, initially 
somewhere for new stuff
   * ErrorHandling.maybeTranslateNetworkException() scans down an exception 
chain and if the inner one is of a known type
      - UnknownHostException
      - NoRouteToHostException
      - ConnectException
   Then a new exception of that specific type is created, with the top level ex 
its cause. 
   This is done to retain the whole stack chain.
    * reduce the number of retries within the AWS SDK
    * and those of our S3ARetryPolicy
   
    The reduction in retries is because its clear when you try to create a 
bucket
    which doesn't resolve that the time for even an UnknownHostException to
    eventually fail over 90s, which then hit the s3a retry code.
    - Reducing the sdk retries means these escalate to our code better.
    - Cutting back on our own retries makes it a bit more responsive for most 
real deployments.
    - maybeTranslateNetworkException() and s3a retry policy means that
      UnknownHostException is recognised and fails fast.
   
   Lots of changes to the test code:
   
   * more switches to turn off test suites (acls, v1list, ...)
   * more resilience to different test failures
   * pull up skip() checks into config create phase, rather than waiting for fs 
to be instantiated (faster; keeps the fs cache clean)
   * tuning for new exceptions
   
   ### How was this patch tested?
   
   * AWS S3 london: no regressions observed.
   * a third party endpoint: showed troublespots, especially how handling of
     UnknownHostException needed to be radically improved.
     Gave me the stack traces for the docs too
   
   Docs cover google gcs binding; I've not tested that yet, but the settings 
came from
   a colleague who has connected the v1 sdk to it.
   A full test run against GCS should be something we require here as it 
supports
   a different subset of the s3 apis (no bulk delete, v1 list only...)
   
   
   ### For code changes:
   
   - [X] Does the title or this PR starts with the corresponding JIRA issue id 
(e.g. 'HADOOP-17799. Your PR title ...')?
   - [X] Object storage: have the integration tests been executed and the 
endpoint declared according to the connector-specific documentation?
   - [ ] If adding new dependencies to the code, are these dependencies 
licensed in a way that is compatible for inclusion under [ASF 
2.0](http://www.apache.org/legal/resolved.html#category-a)?
   - [ ] If applicable, have you updated the `LICENSE`, `LICENSE-binary`, 
`NOTICE-binary` files?
   
   




> S3A: V2 SDK client does not work with third-party store
> -------------------------------------------------------
>
>                 Key: HADOOP-18889
>                 URL: https://issues.apache.org/jira/browse/HADOOP-18889
>             Project: Hadoop Common
>          Issue Type: Sub-task
>          Components: fs/s3
>    Affects Versions: 3.4.0
>            Reporter: Steve Loughran
>            Assignee: Steve Loughran
>            Priority: Critical
>
> testing against an external store without specifying region now blows up 
> because the region is queried off eu-west-1.
> What are we do to here? require the region setting *which wasn't needed 
> before? what even region do we provide for third party stores?



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to