Skip to content

Commit 54eeacf

Browse files
committed
NSFS | NC | fix versions_dir_cache validation
Signed-off-by: nadav mizrahi <nadav.mizrahi16@gmail.com>
1 parent df0c64a commit 54eeacf

File tree

2 files changed

+14
-13
lines changed

2 files changed

+14
-13
lines changed

src/sdk/namespace_fs.js

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -399,17 +399,21 @@ const versions_dir_cache = new LRUCache({
399399
},
400400
validate: async ({ stat, ver_dir_stat }, { dir_path, fs_context }) => {
401401
const new_stat = await nb_native().fs.stat(fs_context, dir_path);
402-
if (ver_dir_stat) {
403-
const versions_dir_path = path.normalize(path.join(dir_path, '/', HIDDEN_VERSIONS_PATH));
404-
const new_versions_stat = await nb_native().fs.stat(fs_context, versions_dir_path);
405-
return (new_stat.ino === stat.ino &&
406-
new_stat.mtimeNsBigint === stat.mtimeNsBigint &&
407-
new_versions_stat.ino === ver_dir_stat.ino &&
408-
new_versions_stat.mtimeNsBigint === ver_dir_stat.mtimeNsBigint);
409-
} else {
410-
return (new_stat.ino === stat.ino &&
411-
new_stat.mtimeNsBigint === stat.mtimeNsBigint);
402+
const versions_dir_path = path.normalize(path.join(dir_path, '/', HIDDEN_VERSIONS_PATH));
403+
let new_versions_stat;
404+
try {
405+
new_versions_stat = await nb_native().fs.stat(fs_context, versions_dir_path);
406+
} catch (err) {
407+
if (err.code === 'ENOENT') {
408+
dbg.log0('NamespaceFS: Version dir not found, ', versions_dir_path);
409+
} else {
410+
throw err;
411+
}
412412
}
413+
return (new_stat.ino === stat.ino &&
414+
new_stat.mtimeNsBigint === stat.mtimeNsBigint &&
415+
new_versions_stat?.ino === ver_dir_stat?.ino &&
416+
new_versions_stat?.mtimeNsBigint === ver_dir_stat?.mtimeNsBigint);
413417
},
414418
item_usage: ({ usage }, dir_path) => usage,
415419
max_usage: config.NSFS_DIR_CACHE_MAX_TOTAL_SIZE,

src/test/system_tests/ceph_s3_tests/s3-tests-lists/nsfs_s3_tests_pending_list.txt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -163,9 +163,6 @@ s3tests_boto3/functional/test_s3.py::test_multipart_upload_missing_part
163163
s3tests_boto3/functional/test_s3.py::test_multipart_upload_incorrect_etag
164164
s3tests_boto3/functional/test_s3.py::test_set_bucket_tagging
165165
s3tests_boto3/functional/test_s3.py::test_atomic_dual_conditional_write_1mb
166-
s3tests_boto3/functional/test_s3.py::test_versioning_obj_create_read_remove
167-
s3tests_boto3/functional/test_s3.py::test_versioning_obj_create_versions_remove_all
168-
s3tests_boto3/functional/test_s3.py::test_versioning_obj_create_versions_remove_special_names
169166
s3tests_boto3/functional/test_s3.py::test_versioned_concurrent_object_create_concurrent_remove
170167
s3tests_boto3/functional/test_s3.py::test_encrypted_transfer_1b
171168
s3tests_boto3/functional/test_s3.py::test_encrypted_transfer_1kb

0 commit comments

Comments
 (0)