You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@arrow.apache.org by "Ben Kietzman (Jira)" <ji...@apache.org> on 2020/04/01 19:51:00 UTC

[jira] [Created] (ARROW-8310) [C++] Minio's exceptions not recognized by IsConnectError()

Ben Kietzman created ARROW-8310:
-----------------------------------

             Summary: [C++] Minio's exceptions not recognized by IsConnectError()
                 Key: ARROW-8310
                 URL: https://issues.apache.org/jira/browse/ARROW-8310
             Project: Apache Arrow
          Issue Type: Bug
          Components: C++
    Affects Versions: 0.16.0
            Reporter: Ben Kietzman
             Fix For: 1.0.0


Minio emits an {{XMinioServerNotInitialized}} exception on failure to connect, which is recognized by {{ConnectRetryStrategy}} and used to trigger a retry instead of an error. This exception has an HTTP error 503.

However this code does not round trip through the AWS SDK, which maintains an explicit [mapping from known exception names to error codes|https://github.com/aws/aws-sdk-cpp/blob/d36c2b16c9c3caf81524ebfff1e70782b8e1a006/aws-cpp-sdk-core/source/client/CoreErrors.cpp#L37] and will demote an unrecognized exception name [to {{CoreErrors::UNKNOWN}}|https://github.com/aws/aws-sdk-cpp/blob/master/aws-cpp-sdk-core/source/client/AWSErrorMarshaller.cpp#L150]

The end result is flakiness in the test (and therefore CI) since {{ConnectRetryStrategy}} never gets a chance to operate, see for example https://github.com/apache/arrow/pull/6789/checks?check_run_id=552871444#step:6:1778

Probably {{IsConnectError}} will need to examine the error string in the event of {{CoreErrors::UNKNOWN}}.



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