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


##########
fe/fe-connector/fe-connector-paimon/src/main/java/org/apache/doris/connector/paimon/PaimonConnector.java:
##########
@@ -438,7 +438,7 @@ private Catalog createCatalog() {
                 // filesystem carries a Hadoop Configuration for HDFS/S3 
storage.
                 Configuration conf = 
PaimonCatalogFactory.buildHadoopConfiguration(
                         catalogProps.getRaw(), storageHadoopConfig);
-                return createCatalogFromContext(CatalogContext.create(options, 
conf), flavor,
+                return 
createCatalogFromContext(PaimonCatalogFactory.createCatalogContext(options, 
conf), flavor,

Review Comment:
   [P2] Apply the native GCS context to Paimon REST catalogs too. These new 
calls install `fs.gs.*` and `NativeGcsFileIO.Loader` for 
filesystem/JDBC/HMS/DLF, but the REST sibling at line 446 still passes 
`CatalogContext.create(options)` with no GCS Hadoop configuration. [Paimon 
1.4.2 
RESTCatalog](https://github.com/apache/paimon/blob/release-1.4.2/paimon-core/src/main/java/org/apache/paimon/rest/RESTCatalog.java#L1108-L1138)
 constructs local `ResolvingFileIO` from that context for external table paths, 
and for data when REST data tokens are disabled; a private GCS table requiring 
configured impersonation then fails or uses the wrong identity. Pass the same 
storage configuration and loader into the REST context and cover that path.



##########
be/src/io/fs/s3_file_system.cpp:
##########
@@ -98,6 +98,7 @@ Status ObjClientHolder::reset(const S3ClientConf& conf) {
         reset_conf.role_arn = conf.role_arn;
         reset_conf.external_id = conf.external_id;
         reset_conf.cred_provider_type = conf.cred_provider_type;
+        reset_conf.credential = conf.credential;

Review Comment:
   [P2] Copy the provider when resetting a policy resource client. A 
policy-referenced resource can start as explicit S3 without static AK/SK and 
then be ALTERed to `provider=GCP` plus `gs.credential_provider_type=DEFAULT` 
(for example with `s3_validity_check=false`); FE accepts and publishes the new 
version. This reset copies the native credential but keeps 
`_conf.provider=AWS`, so `S3ClientFactory::create` rejects it (`GCP credentials 
require provider=GCP`), and `update_s3_resource` retains the old 
filesystem/version while FE reports success. Copy `conf.provider` into 
`reset_conf` and cover the S3-to-GCP policy push.



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