hhhizzz commented on PR #8263: URL: https://github.com/apache/paimon/pull/8263#issuecomment-4762176429
Thanks, I updated this to be more conservative. The object-store path now only proceeds without listing when safety can be proven by direct reads plus a no-overwrite snapshot write. If the metadata state is missing, stale, ambiguous, or needs recovery, it falls back to the list-based path. If `ListBucket` is not available, it fails closed with an explicit message explaining why listing or restoring `LATEST` / `EARLIEST` is required. This also preserves the stale-snapshot conflict guard: snapshot metadata is written with no-overwrite semantics, and an existing `snapshot-N` is treated as a conflict/verification path rather than being overwritten. Added tests for: - missing / stale / invalid `LATEST` and `EARLIEST` - list-based recovery when listing is available - fail-closed behavior when listing is denied - no-overwrite conflicts, including Hadoop `FileAlreadyExistsException` - readable/unreadable future snapshot corner cases - retry wiring through `FileStoreCommitImpl` Validation: - `RenamingSnapshotCommitTest`, `HintFileUtilsTest`, selected `FileStoreCommitTest`: 110 tests passed - `S3FileIOTest`: 6 tests passed - `spotless:check` passed - `git diff --check` passed - Ceph RGW smoke verified the no-`ListBucket` fail-closed path on a real RGW endpoint -- 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]
