LuciferYang opened a new pull request, #10236: URL: https://github.com/apache/paimon/pull/10236
### Purpose `CompactedChangelogPathResolver.decodePath` rebuilt the real changelog path from the fake path's grandparent plus `bucket-<bid>`. That layout only holds for in-table storage, where the fake entry is placed in its own bucket directory while the real file lives in the bucket encoded in the fake name. With external paths, including entropy-injected ones, `ChangelogCompactTask` records the fake entry in the real file's own directory, so the grandparent is a hash or external directory and the rebuilt path pointed at a location that does not exist, breaking reads of compacted changelogs. When the fake path's parent is a bucket directory, `decodePath` keeps the cross-bucket rebuild. Otherwise it resolves the real file as a sibling in the same directory. In the external case where the parent is still a bucket directory, both branches produce the same path, so in-table resolution is unchanged. This closes #10235. ### Tests Added `CompactedChangelogPathResolverTest.testResolveFakeWithExternalPath`, which pins resolution for an entropy-injected external path to the sibling real file. It fails on the old grandparent-based rebuild. Existing in-table resolution cases stay green. ### API and Format No. ### Documentation No. -- 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]
