[
https://issues.apache.org/jira/browse/HDDS-8292?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17707836#comment-17707836
]
Sumit Agrawal commented on HDDS-8292:
-------------------------------------
[~ashishk] [~weichiu]
There is one possibility for this issue to happen, as code can see,
* listStatus is iterating over cached Table entry and modifying same
* and before commit to DB, the keyName and key can change
ListStatus changing cache value for iterator:
!image-2023-04-03-14-23-41-579.png|width=460,height=302!
# During rename, before transaction is saved to DB in double buffer, cache is
changed with new keyname with full path
# During file commit, KeyInfo is present in cache and list status running
multiple time can change "filename with keyname and keyname with full path"
repeated. Since dbKey is re-constructed with keyInfo, so dbKey gets corrupted
with this.
> Inconsistent key name handling for FSO bucket files
> ---------------------------------------------------
>
> Key: HDDS-8292
> URL: https://issues.apache.org/jira/browse/HDDS-8292
> Project: Apache Ozone
> Issue Type: Bug
> Affects Versions: 1.4.0
> Reporter: Wei-Chiu Chuang
> Assignee: Ashish Kumar
> Priority: Blocker
> Labels: proton
> Attachments: image-2023-04-03-14-23-41-579.png,
> om-audit-hdds-8292.tgz, omdb-hdds-8292.tgz
>
>
> The definition of the field OmKeyInfo.keyName is ambiguous.
> In some of the code, it is the full path to a file; in some, it is just the
> final part (excluding the path).
> I am looking at a cluster where some of the entries in fileTable in its OM db
> has full path, and some don't.
> {noformat}
> # ozone debug ldb --db=om.db scan --column_family=fileTable -l -1 --with-keys
> | less
> "/-9223372036854561536/-9223372036854561024/-9223372036854525695/433dfbc470b54a0e9a23ed79240c3dc3"
> -> {
> "volumeName": "vol1",
> "bucketName": "bucket1",
> "keyName":
> "hbase/data/hbase/meta/1588230740/info/433dfbc470b54a0e9a23ed79240c3dc3",
> ...
> "/-9223372036854561536/-9223372036854561024/-9223372036854525695/c3a068821e7544caae7cdbaf9ca1b263"
> -> {
> "volumeName": "vol1",
> "bucketName": "bucket1",
> "keyName": "c3a068821e7544caae7cdbaf9ca1b263",
> {noformat}
> Bug: ListStatus request returns incorrect path name, because
> OzoneListStatusHelper.getStatus() expects the keyName to be just the final
> part, and prepend the prefix, which is incorrect for the example above.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]