[ 
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]

Reply via email to