[
https://issues.apache.org/jira/browse/HDDS-12589?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Devesh Kumar Singh resolved HDDS-12589.
---------------------------------------
Fix Version/s: 2.0.0
Resolution: Fixed
> Fix Incorrect FSO Key Listing for Container-to-Key Mapping
> ----------------------------------------------------------
>
> Key: HDDS-12589
> URL: https://issues.apache.org/jira/browse/HDDS-12589
> Project: Apache Ozone
> Issue Type: Bug
> Reporter: Arafat Khan
> Assignee: Arafat Khan
> Priority: Major
> Labels: pull-request-available
> Fix For: 2.0.0
>
>
> *Problem:*
> When using FSO buckets, files with the same name uploaded into different
> directories were being merged into a single key record. This was because
> Recon’s container key mapping used only the volume, bucket, and file name as
> the unique identifier, which ignored the full directory path information.
> *Reproducing the Issue:*
> The issue can be reproduced by creating a nested directory structure and
> uploading two files (testfile1 and testfile2) at different directory depths.
> For example, run the following commands:
> {code:java}
> ozone fs -mkdir -p ofs://om/volume1/fso-bucket/dir1/dir2/dir3
> ozone fs -put -f testfile1 ofs://om/volume1/fso-bucket/dir1/
> ozone fs -put -f testfile2 ofs://om/volume1/fso-bucket/dir1/
> ozone fs -put -f testfile1 ofs://om/volume1/fso-bucket/dir1/dir2/
> ozone fs -put -f testfile2 ofs://om/volume1/fso-bucket/dir1/dir2/
> ozone fs -put -f testfile1 ofs://om/volume1/fso-bucket/dir1/dir2/dir3/
> ozone fs -put -f testfile2 ofs://om/volume1/fso-bucket/dir1/dir2/dir3/ {code}
> In this scenario, two duplicate file names ({{{}testfile1{}}} and
> {{{}testfile2{}}}) are created in three different directory hierarchies
> ({{{}dir1{}}}, {{{}dir1/dir2{}}}, and{{{} dir1/dir2/dir3{}}}).
> *Root Cause:*
> The root cause was that the Recon container key mapping computed a unique key
> based only on the volume, bucket, and file name. For FSO buckets, the
> directory structure is encoded as part of the raw key prefix (using negative
> object IDs), but this information was being omitted from the computed key. As
> a result, files with identical names from different directories were being
> incorrectly merged.
> *Fix:*
> The fix updates the container key mapping logic to use the raw key prefix
> from the container key table as the unique identifier. Since the raw key
> prefix includes the complete directory structure (with the object IDs
> representing the directories, volume, bucket), this change ensures that keys
> with the same file name but in different directories (as in the above
> scenario) are recognized as distinct records by Recon.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]