FANNG1 commented on PR #67157:
URL: https://github.com/apache/doris/pull/67157#issuecomment-5479355161

   Second review round addressed in 2eb2765.
   
   Three of the four findings were real, and the fix for the first one turned 
out to need a different shape than the review suggested:
   
   1. **Auth tuple not reconciled after vending** — correct, and worse than 
described. I had been merging the vended options over the static ones key by 
key and then patching up the relationships afterwards, which is what made the 
bug possible in the first place. Rather than add more patches, authentication 
is now treated as one value: whichever side supplies any part of it supplies 
all of it, and a single writer clears the group before writing it. A half pair, 
a stale token, a vended blank and an explicit anonymous request all follow from 
that one rule instead of needing a branch each.
   
      Worth recording that `allow_anonymous` is genuinely unconditional in both 
pinned OpenDAL versions — `OssCore::sign` returns the request unsigned whenever 
it is set, whatever credentials sit beside it 
(`opendal-service-oss-0.56.0/src/core.rs:93`; 0.58.1 folds it into 
`skip_signature`). The flag is now stated either way rather than only when 
true, because lance snapshots the host's `OSS_`/`AWS_` environment into the 
same config map *before* storage options are applied, so omitting the key hands 
the decision to an exported `OSS_ALLOW_ANONYMOUS`.
   
   2. **Original provider failure in the log** — correct. Rather than log only 
the sanitized text, which would lose the stack the previous round asked for, 
the rebuilt exception now carries the stack of the exception its message came 
from. It holds class, method, file and line only, so unlike the message it 
cannot carry a credential, and no second copy of the raw text exists to be 
logged at all.
   
   3. **OSS-HDFS** — correct, and my earlier exemption was worse than useless: 
it made the configuration look supported while still being unable to open. Now 
rejected across the whole configuration rather than only the warehouse 
authority, since `OSSHdfsProperties` selects on the *endpoint* — 
`oss://bucket/path` with an `oss.endpoint` naming OSS-HDFS routed there just 
the same.
   
   4. **Alias normalization inside `base_<id>.` scopes** — I do not think this 
one holds. The pinned lance keys per-base configuration by a nested 
`HashMap<String, ObjectStoreParams>`, not by a flat dotted option; there is no 
`base_` literal in the FE lance jars or in the Rust tree, so that spelling 
never reaches a provider. The suffix matching in the redaction path stays, but 
as defence rather than as a documented contract. Happy to be corrected if you 
know of a version where the flat form is real.
   
   Verified end to end against a real OSS bucket, including two cases the 
earlier rounds could not reach: STS temporary credentials with a no-token 
negative control, and the anonymous-flag-versus-vended-credential collision. 
Details in the PR description.
   
   Docs are up as apache/doris-website#4094 (English and zh-CN).
   


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