From f75bce16b6901b0d7bce36933f76adfe1e8ff47a Mon Sep 17 00:00:00 2001 From: Marco Edoardo Santimaria Date: Sat, 2 Aug 2025 07:16:53 +0000 Subject: [PATCH 1/9] fix --- src/server/file-manager/file_manager_impl.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/server/file-manager/file_manager_impl.hpp b/src/server/file-manager/file_manager_impl.hpp index c10d222bd..c518f6079 100644 --- a/src/server/file-manager/file_manager_impl.hpp +++ b/src/server/file-manager/file_manager_impl.hpp @@ -7,6 +7,7 @@ #include "utils/distributed_semaphore.hpp" inline std::string CapioFileManager::getMetadataPath(const std::string &path) { + START_LOG(gettid(), "call(path=%s)", path.c_str()); return get_capio_metadata_path() / (path + ".capio"); } @@ -31,6 +32,7 @@ inline std::string CapioFileManager::getAndCreateMetadataPath(const std::string LOG("Created capio metadata parent path (if no file existed). returning metadata token " "file"); } + LOG("token_path=%s", metadata_paths[path].c_str()); return metadata_paths[path]; } From 31f3bda96ef0d8e11f00263b51b6ccbd877202e6 Mon Sep 17 00:00:00 2001 From: Marco Edoardo Santimaria Date: Sat, 2 Aug 2025 07:30:56 +0000 Subject: [PATCH 2/9] log --- src/server/file-manager/file_manager_impl.hpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/server/file-manager/file_manager_impl.hpp b/src/server/file-manager/file_manager_impl.hpp index c518f6079..16cefece8 100644 --- a/src/server/file-manager/file_manager_impl.hpp +++ b/src/server/file-manager/file_manager_impl.hpp @@ -8,7 +8,9 @@ inline std::string CapioFileManager::getMetadataPath(const std::string &path) { START_LOG(gettid(), "call(path=%s)", path.c_str()); - return get_capio_metadata_path() / (path + ".capio"); + auto result = get_capio_metadata_path() / path / ".capio"; + LOG("Computed token path is: %s", result.c_str()); + return result; } /** From 60fb29d8efd7b4989d0469a3d4e8115101da95d7 Mon Sep 17 00:00:00 2001 From: Marco Edoardo Santimaria Date: Sat, 2 Aug 2025 07:35:03 +0000 Subject: [PATCH 3/9] log --- src/server/file-manager/file_manager_impl.hpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/server/file-manager/file_manager_impl.hpp b/src/server/file-manager/file_manager_impl.hpp index 16cefece8..36f93a5b2 100644 --- a/src/server/file-manager/file_manager_impl.hpp +++ b/src/server/file-manager/file_manager_impl.hpp @@ -8,9 +8,13 @@ inline std::string CapioFileManager::getMetadataPath(const std::string &path) { START_LOG(gettid(), "call(path=%s)", path.c_str()); - auto result = get_capio_metadata_path() / path / ".capio"; - LOG("Computed token path is: %s", result.c_str()); - return result; + const auto metadata_path = get_capio_metadata_path(); + LOG("Obtained metadata token path: %s", metadata_path.c_str()); + auto token_pathname = path + ".capio"; + LOG("Token name relative to metadata path is %s", token_pathname.c_str()); + auto token_full_path = metadata_path / token_pathname; + LOG("Computed token path is: %s", token_full_path.c_str()); + return token_pathname; } /** From da59ad7fe138476d5391bddd1be03118b44bceb9 Mon Sep 17 00:00:00 2001 From: Marco Edoardo Santimaria Date: Sat, 2 Aug 2025 07:39:15 +0000 Subject: [PATCH 4/9] fix --- src/server/file-manager/file_manager_impl.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/server/file-manager/file_manager_impl.hpp b/src/server/file-manager/file_manager_impl.hpp index 36f93a5b2..f927a8d36 100644 --- a/src/server/file-manager/file_manager_impl.hpp +++ b/src/server/file-manager/file_manager_impl.hpp @@ -8,11 +8,11 @@ inline std::string CapioFileManager::getMetadataPath(const std::string &path) { START_LOG(gettid(), "call(path=%s)", path.c_str()); - const auto metadata_path = get_capio_metadata_path(); + const std::filesystem::path &metadata_path = get_capio_metadata_path(); LOG("Obtained metadata token path: %s", metadata_path.c_str()); - auto token_pathname = path + ".capio"; + const std::filesystem::path token_pathname = path + ".capio"; LOG("Token name relative to metadata path is %s", token_pathname.c_str()); - auto token_full_path = metadata_path / token_pathname; + const std::filesystem::path token_full_path = metadata_path / token_pathname; LOG("Computed token path is: %s", token_full_path.c_str()); return token_pathname; } From eb90779b92f44a32df9a8e8d01b5a5a55acd8186 Mon Sep 17 00:00:00 2001 From: Marco Edoardo Santimaria Date: Sat, 2 Aug 2025 07:43:53 +0000 Subject: [PATCH 5/9] fix --- src/server/file-manager/file_manager_impl.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/file-manager/file_manager_impl.hpp b/src/server/file-manager/file_manager_impl.hpp index f927a8d36..19fd507cf 100644 --- a/src/server/file-manager/file_manager_impl.hpp +++ b/src/server/file-manager/file_manager_impl.hpp @@ -14,7 +14,7 @@ inline std::string CapioFileManager::getMetadataPath(const std::string &path) { LOG("Token name relative to metadata path is %s", token_pathname.c_str()); const std::filesystem::path token_full_path = metadata_path / token_pathname; LOG("Computed token path is: %s", token_full_path.c_str()); - return token_pathname; + return token_full_path; } /** From d5e7b05762a8a7eb9a034de0e7947b451f5ba921 Mon Sep 17 00:00:00 2001 From: Marco Edoardo Santimaria Date: Sat, 2 Aug 2025 07:50:37 +0000 Subject: [PATCH 6/9] fix --- src/server/file-manager/file_manager_impl.hpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/server/file-manager/file_manager_impl.hpp b/src/server/file-manager/file_manager_impl.hpp index 19fd507cf..be73773b8 100644 --- a/src/server/file-manager/file_manager_impl.hpp +++ b/src/server/file-manager/file_manager_impl.hpp @@ -8,13 +8,16 @@ inline std::string CapioFileManager::getMetadataPath(const std::string &path) { START_LOG(gettid(), "call(path=%s)", path.c_str()); - const std::filesystem::path &metadata_path = get_capio_metadata_path(); - LOG("Obtained metadata token path: %s", metadata_path.c_str()); - const std::filesystem::path token_pathname = path + ".capio"; - LOG("Token name relative to metadata path is %s", token_pathname.c_str()); - const std::filesystem::path token_full_path = metadata_path / token_pathname; - LOG("Computed token path is: %s", token_full_path.c_str()); - return token_full_path; + std::filesystem::path metadata_path = get_capio_metadata_path(); + std::filesystem::path token_pathname = path + ".capio"; + + char token_full_path[2 * PATH_MAX]{0}; + sprintf(token_full_path, "%s%s", metadata_path.c_str(), token_pathname.c_str()); + + std::filesystem::path return_value(token_full_path); + + LOG("Computed token path is: %s", return_value.c_str()); + return return_value; } /** From 506080fa2aebc17bc348f0a1d3ca4dc337253cd6 Mon Sep 17 00:00:00 2001 From: Marco Edoardo Santimaria Date: Sat, 2 Aug 2025 07:56:05 +0000 Subject: [PATCH 7/9] fix --- src/server/file-manager/file_manager_impl.hpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/server/file-manager/file_manager_impl.hpp b/src/server/file-manager/file_manager_impl.hpp index be73773b8..34ac41ae8 100644 --- a/src/server/file-manager/file_manager_impl.hpp +++ b/src/server/file-manager/file_manager_impl.hpp @@ -8,11 +8,9 @@ inline std::string CapioFileManager::getMetadataPath(const std::string &path) { START_LOG(gettid(), "call(path=%s)", path.c_str()); - std::filesystem::path metadata_path = get_capio_metadata_path(); - std::filesystem::path token_pathname = path + ".capio"; char token_full_path[2 * PATH_MAX]{0}; - sprintf(token_full_path, "%s%s", metadata_path.c_str(), token_pathname.c_str()); + sprintf(token_full_path, "%s%s.capio", get_capio_metadata_path().c_str(), path.c_str()); std::filesystem::path return_value(token_full_path); From 499af39f4c86dec3eb5604d13d3bef19d3990928 Mon Sep 17 00:00:00 2001 From: Marco Edoardo Santimaria Date: Sat, 2 Aug 2025 08:08:17 +0000 Subject: [PATCH 8/9] fic --- src/server/file-manager/file_manager_impl.hpp | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/server/file-manager/file_manager_impl.hpp b/src/server/file-manager/file_manager_impl.hpp index 34ac41ae8..2e84b1a54 100644 --- a/src/server/file-manager/file_manager_impl.hpp +++ b/src/server/file-manager/file_manager_impl.hpp @@ -9,13 +9,29 @@ inline std::string CapioFileManager::getMetadataPath(const std::string &path) { START_LOG(gettid(), "call(path=%s)", path.c_str()); - char token_full_path[2 * PATH_MAX]{0}; - sprintf(token_full_path, "%s%s.capio", get_capio_metadata_path().c_str(), path.c_str()); + const std::filesystem::path& metadata_path = get_capio_metadata_path(); + std::filesystem::path input_path(path); - std::filesystem::path return_value(token_full_path); + auto metadata_it = metadata_path.begin(); + auto input_it = input_path.begin(); - LOG("Computed token path is: %s", return_value.c_str()); - return return_value; + std::filesystem::path relative_path; + while (metadata_it != metadata_path.end() && input_it != input_path.end() && + *metadata_it == *input_it) { + ++metadata_it; + ++input_it; + } + + for (; input_it != input_path.end(); ++input_it) { + relative_path /= *input_it; + } + + relative_path += ".capio"; + + std::filesystem::path token_full_path = metadata_path / relative_path; + + LOG("Computed token path is: %s", token_full_path.c_str()); + return token_full_path; } /** From 175abe429994d5c7c094e367b8b44cf2caa309fe Mon Sep 17 00:00:00 2001 From: Marco Edoardo Santimaria Date: Sat, 2 Aug 2025 08:15:56 +0000 Subject: [PATCH 9/9] fic --- src/server/file-manager/file_manager_impl.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/file-manager/file_manager_impl.hpp b/src/server/file-manager/file_manager_impl.hpp index 2e84b1a54..f92e43e5a 100644 --- a/src/server/file-manager/file_manager_impl.hpp +++ b/src/server/file-manager/file_manager_impl.hpp @@ -9,7 +9,7 @@ inline std::string CapioFileManager::getMetadataPath(const std::string &path) { START_LOG(gettid(), "call(path=%s)", path.c_str()); - const std::filesystem::path& metadata_path = get_capio_metadata_path(); + const std::filesystem::path &metadata_path = get_capio_metadata_path(); std::filesystem::path input_path(path); auto metadata_it = metadata_path.begin();