leaves12138 opened a new pull request, #9921: URL: https://github.com/apache/paimon/pull/9921
### Purpose A Python snapshot commit retry can overwrite a concurrently added manifest sidecar reference. `_manifest_file_key` omits `extra_files`, so an existing manifest whose sidecar metadata changed can still match the previous merge input. Reusing the cached result then writes the old metadata back, even when the previous merge left that manifest unchanged. Compare all persisted manifest metadata, matching Java's `ManifestFileMeta.equals`, including extra files and bucket/level bounds. Unchanged inputs still reuse the previous merge result; changed inputs keep the current manifests and skip merging on the retry. This adds no reads or manifest-entry scans and does not change the storage format. ### Tests - Reproduced the lost sidecar reference on master (`8b7fbffcc`) with a failed commit followed by a successful retry after a concurrent metadata update. The regression fails before the fix and passes afterward. - Python 3.11: all `file_store_commit_test` tests and the extra-files / bucket-and-level manifest-list round-trip tests pass (33 tests). - Added coverage for changed metadata, null versus empty extra files, changed file names/order, and reuse with equal extra-file values. - Flake8 for both changed files, Python license-header validation, and `git diff --check` pass. -- 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]
