[
https://issues.apache.org/jira/browse/HDDS-8292?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17706966#comment-17706966
]
Wei-Chiu Chuang commented on HDDS-8292:
---------------------------------------
Not sure about the exact sequence.
[~pratyush.bhatt] ran HBase integration tests on the lastest Ozone apache
master branch
Most likely, because OmKeyInfo.keyName is being updated inconsistently.
For example, OmKeyCommitRequestFSO initially sets keyName to the full path, and
then later just prior to commit, resets it to the same as fileName.
Similarly in a number of places (check the caller of OmKeyInfo.setKeyName()).
And then OzoneListStatusHelper updates the keyname to prefix plus key name. If
key name is already full path, then it would duplicate the prefix twice or even
more times.
[https://github.com/apache/ozone/blob/6ff310eeddbfbec7c1f6de3251ee92d41b90e12c/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneListStatusHelper.java#L320]
I suspect that if OM processes multiple requests at the same time, and each of
the request handler updates keyName inconsistently (the OmKeyInfo is passed by
reference, not copied)) then it could end up like that.
> 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: Sub-task
> Affects Versions: 1.4.0
> Reporter: Wei-Chiu Chuang
> Assignee: Ashish Kumar
> Priority: Blocker
> Labels: proton
> Attachments: 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]