github-actions[bot] commented on code in PR #66555:
URL: https://github.com/apache/doris/pull/66555#discussion_r3772474184


##########
thirdparty/vars.sh:
##########
@@ -379,10 +379,10 @@ BOOTSTRAP_TABLE_CSS_FILE="bootstrap-table.min.css"
 BOOTSTRAP_TABLE_CSS_MD5SUM="23389d4456da412e36bae30c469a766a"
 
 # aws sdk
-AWS_SDK_DOWNLOAD="https://github.com/aws/aws-sdk-cpp/archive/refs/tags/1.11.219.tar.gz";
-AWS_SDK_NAME="aws-sdk-cpp-1.11.219.tar.gz"
-AWS_SDK_SOURCE="aws-sdk-cpp-1.11.219"
-AWS_SDK_MD5SUM="80aa616efe1a3e7a9bf0dfbc44a97864"
+AWS_SDK_DOWNLOAD="https://github.com/aws/aws-sdk-cpp/archive/refs/tags/1.11.221.tar.gz";

Review Comment:
   [P1] Invalidate stale AWS SDK installs for this version bump
   
   The new production source requires `GeneralHTTPCredentialsProvider.h` and 
its symbol, neither of which exists in the previously pinned 1.11.219 SDK. 
However, `build.sh` validates an existing install only with the final-library 
sentinel plus the Arrow/Paimon manifest. The macOS BE workflow makes this 
deterministic: a `thirdparty/vars.sh` change downloads the base prebuilt (still 
containing 1.11.219) and rebuilds only Arrow/Paimon before compiling BE, so 
this PR cannot find the new header/symbol there. Please add version-aware AWS 
SDK invalidation/rebuild logic and make the macOS path build or consume a 
matching 1.11.221 SDK.



##########
common/cpp/custom_aws_credentials_provider_chain.cpp:
##########
@@ -67,16 +77,26 @@ 
CustomAwsCredentialsProviderChain::CustomAwsCredentialsProviderChain()
                            "Added ECS metadata service credentials provider 
with relative path: ["
                                    << relativeUri << "] to the provider 
chain.");
     } else if (!absoluteUri.empty()) {
+        // The endpoint authenticates each fetch with a bearer token, which 
the provider takes
+        // either inline or as a file path. Given a path, Reload() re-reads 
the file and
+        // overrides the inline value before every fetch. ECS sets only the 
inline variable;
+        // EKS Pod Identity sets only the file one, and the kubelet rewrites 
that file long
+        // before the token in it expires. Forwarding both is what makes the 
Authorization
+        // header non-empty under Pod Identity - reading the inline variable 
alone sends an
+        // empty header, the agent rejects it, and no S3 access works at all - 
and what keeps
+        // it valid past the first rotation.
         const auto token = 
Aws::Environment::GetEnv(AWS_ECS_CONTAINER_AUTHORIZATION_TOKEN);
-        AddProvider(Aws::MakeShared<TaskRoleCredentialsProvider>(
-                DefaultCredentialsProviderChainTag, absoluteUri.c_str(), 
token.c_str()));
+        const auto tokenPath = 
Aws::Environment::GetEnv(AWS_EKS_CONTAINER_AUTHORIZATION_TOKEN_FILE);
+        AddProvider(Aws::MakeShared<GeneralHTTPCredentialsProvider>(

Review Comment:
   [P1] Apply the EKS provider wiring to explicit CONTAINER routes
   
   This fixes `CustomAwsCredentialsProviderChain`, but `CONTAINER` is also a 
supported public provider mode. The BE S3 factory, Cloud recycler, and MSK auth 
paths still construct `TaskRoleCredentialsProvider` from only 
`AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`. Standard EKS injects only 
`AWS_CONTAINER_CREDENTIALS_FULL_URI` plus 
`AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE`, so those branches pass an empty URI, 
create no HTTP client, and return no credentials (including when used as an STS 
base provider). Please centralize this construction so every explicit 
container-provider path forwards the relative URI, full URI, inline token, and 
rotating token-file path, and add coverage for explicit `CONTAINER` mode rather 
than only the default custom chain.



-- 
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]


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

Reply via email to