[
https://issues.apache.org/jira/browse/HDDS-7870?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Hemant Kumar updated HDDS-7870:
-------------------------------
Description:
*getFileStatus* returns the wrong response sometime when key doesn't exist.
Snapshot restore tests were added as part of
[PR|https://github.com/apache/ozone/pull/4148/files#diff-2186b1fe62df6e3d2018bb4a9491761f79cff48e1ea81c3d50f85cd5f5bda7c7R256)]
and test to restore snapshot to another bucket fails sometime for *_Legacy
bucket_* layout with exception *_File Exists._* In the deep dive, it was found
that it is because of [PR|https://github.com/apache/ozone/pull/4038]. In the
PR, [seek operation was used on RocksDB
table|https://github.com/apache/ozone/pull/4038/files#diff-bde0dade7dd5ddda419499f4f999d25d40fcec1412e0ce809c36ffd1be473f22R1302-R1304]
which sometime returns non-null response and causes fake dir creation. It is
possible that RocksDB's seek operation uses bloom filter which doesn't
guarantee that key exists (false positive).
To fix this, we should add volume and bucket check
[here|https://github.com/apache/ozone/pull/4038/files#diff-bde0dade7dd5ddda419499f4f999d25d40fcec1412e0ce809c36ffd1be473f22R1306].
We may or may not need to iterate over the iterator.
was:
*_getFileStatus _*returns the wrong response sometime when key doesn't exist.
Snapshot restore tests were added as part of
[PR|https://github.com/apache/ozone/pull/4148/files#diff-2186b1fe62df6e3d2018bb4a9491761f79cff48e1ea81c3d50f85cd5f5bda7c7R256)]
and test to restore snapshot to another bucket fails sometime for *_Legacy
bucket_* layout with exception *_File Exists._* In the deep dive, it was found
that it is because of [PR|https://github.com/apache/ozone/pull/4038]. In the
PR, [seek operation was used on RocksDB
table|https://github.com/apache/ozone/pull/4038/files#diff-bde0dade7dd5ddda419499f4f999d25d40fcec1412e0ce809c36ffd1be473f22R1302-R1304]
which sometime returns non-null response and causes fake dir creation. It is
possible that RocksDB's seek operation uses bloom filter which doesn't
guarantee that key exists (false positive).
To fix this, we should add volume and bucket check
[here|https://github.com/apache/ozone/pull/4038/files#diff-bde0dade7dd5ddda419499f4f999d25d40fcec1412e0ce809c36ffd1be473f22R1306].
We may or may not need to iterate over the iterator.
> getFileStatus return wrong response when key doesn't exist
> ----------------------------------------------------------
>
> Key: HDDS-7870
> URL: https://issues.apache.org/jira/browse/HDDS-7870
> Project: Apache Ozone
> Issue Type: Bug
> Components: OM
> Reporter: Hemant Kumar
> Priority: Major
>
> *getFileStatus* returns the wrong response sometime when key doesn't exist.
> Snapshot restore tests were added as part of
> [PR|https://github.com/apache/ozone/pull/4148/files#diff-2186b1fe62df6e3d2018bb4a9491761f79cff48e1ea81c3d50f85cd5f5bda7c7R256)]
> and test to restore snapshot to another bucket fails sometime for *_Legacy
> bucket_* layout with exception *_File Exists._* In the deep dive, it was
> found that it is because of [PR|https://github.com/apache/ozone/pull/4038].
> In the PR, [seek operation was used on RocksDB
> table|https://github.com/apache/ozone/pull/4038/files#diff-bde0dade7dd5ddda419499f4f999d25d40fcec1412e0ce809c36ffd1be473f22R1302-R1304]
> which sometime returns non-null response and causes fake dir creation. It is
> possible that RocksDB's seek operation uses bloom filter which doesn't
> guarantee that key exists (false positive).
> To fix this, we should add volume and bucket check
> [here|https://github.com/apache/ozone/pull/4038/files#diff-bde0dade7dd5ddda419499f4f999d25d40fcec1412e0ce809c36ffd1be473f22R1306].
> We may or may not need to iterate over the iterator.
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]