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]

Reply via email to