diff options
author | galaxycrab <UgnineSirdis@ydb.tech> | 2023-05-16 23:06:49 +0300 |
---|---|---|
committer | galaxycrab <UgnineSirdis@ydb.tech> | 2023-05-16 23:06:49 +0300 |
commit | e95347322acfd16b2fd57c40f30718d6b3e42631 (patch) | |
tree | 6f0cbde243da1ba1f1bb534683c86f3d4caa1a63 | |
parent | 6273318769e6d741aaa31de686826fd8c091ebe8 (diff) | |
download | ydb-e95347322acfd16b2fd57c40f30718d6b3e42631.tar.gz |
Fix error in renaming udf files
Фикс ошибки при запуске dqrun с udf
```
<main>: Fatal: ydb/library/yql/core/file_storage/storage.cpp:279: Failed to rename file from /home/vartmp/tmpZJvcwn/396539/9efe93e8-2946e964-8f95ea47-3 to /home/vartmp/tmpZJvcwn/ydb/library/yql/udfs/common/re2/libre2_udf.so.stripped_meta. 2: No such file or directory
```
7 files changed, 18 insertions, 4 deletions
diff --git a/ydb/library/yql/core/file_storage/file_storage.cpp b/ydb/library/yql/core/file_storage/file_storage.cpp index 5fbb183566a..c705ae37420 100644 --- a/ydb/library/yql/core/file_storage/file_storage.cpp +++ b/ydb/library/yql/core/file_storage/file_storage.cpp @@ -77,7 +77,7 @@ public: } TFileLinkPtr PutFileStripped(const TString& file, const TString& originalMd5 = {}) final { - YQL_LOG(INFO) << "PutFileStripped to cache: " << file; + YQL_LOG(INFO) << "PutFileStripped to cache: " << file << ". Provided MD5: " << originalMd5; if (originalMd5.empty()) { YQL_LOG(WARN) << "Empty md5 for: " << file; } @@ -101,7 +101,7 @@ public: TShellCommand cmd("strip", {file, "-o", dstPath.GetPath()}); cmd.Run().Wait(); if (*cmd.GetExitCode() != 0) { - ythrow yexception() << "'strip' exited with " << *cmd.GetExitCode() << "code. Stedrr: " << cmd.GetError(); + ythrow yexception() << "'strip' exited with code " << *cmd.GetExitCode() << ". Stderr: " << cmd.GetError(); } md5 = MD5::File(dstPath.GetPath()); size = TFile(dstPath.GetPath(), OpenExisting | RdOnly).GetLength(); diff --git a/ydb/library/yql/core/file_storage/storage.cpp b/ydb/library/yql/core/file_storage/storage.cpp index be25eb42564..a3a39c0dacd 100644 --- a/ydb/library/yql/core/file_storage/storage.cpp +++ b/ydb/library/yql/core/file_storage/storage.cpp @@ -276,7 +276,7 @@ public: const i64 prevFileSize = Max<i64>(0, GetFileLength(dstStorageFile.c_str())); if (!NFs::Rename(src, dstStorageFile)) { - ythrow yexception() << "Failed to rename file from " << src << " to " << dstStorageFile; + ythrow TSystemError() << "Failed to rename file from " << src << " to " << dstStorageFile; } SetCacheFilePermissionsNoThrow(dstStorageFile); diff --git a/ydb/library/yql/providers/common/udf_resolve/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/common/udf_resolve/CMakeLists.darwin-x86_64.txt index cd09e608e61..77ba8d72e5f 100644 --- a/ydb/library/yql/providers/common/udf_resolve/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/common/udf_resolve/CMakeLists.darwin-x86_64.txt @@ -14,6 +14,7 @@ target_compile_options(providers-common-udf_resolve PRIVATE target_link_libraries(providers-common-udf_resolve PUBLIC contrib-libs-cxxsupp yutil + cpp-digest-md5 cpp-protobuf-util yql-core-file_storage library-yql-minikql diff --git a/ydb/library/yql/providers/common/udf_resolve/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/common/udf_resolve/CMakeLists.linux-aarch64.txt index d9beed0ae58..557d2db701f 100644 --- a/ydb/library/yql/providers/common/udf_resolve/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/common/udf_resolve/CMakeLists.linux-aarch64.txt @@ -15,6 +15,7 @@ target_link_libraries(providers-common-udf_resolve PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil + cpp-digest-md5 cpp-protobuf-util yql-core-file_storage library-yql-minikql diff --git a/ydb/library/yql/providers/common/udf_resolve/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/common/udf_resolve/CMakeLists.linux-x86_64.txt index d9beed0ae58..557d2db701f 100644 --- a/ydb/library/yql/providers/common/udf_resolve/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/common/udf_resolve/CMakeLists.linux-x86_64.txt @@ -15,6 +15,7 @@ target_link_libraries(providers-common-udf_resolve PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil + cpp-digest-md5 cpp-protobuf-util yql-core-file_storage library-yql-minikql diff --git a/ydb/library/yql/providers/common/udf_resolve/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/common/udf_resolve/CMakeLists.windows-x86_64.txt index cd09e608e61..77ba8d72e5f 100644 --- a/ydb/library/yql/providers/common/udf_resolve/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/common/udf_resolve/CMakeLists.windows-x86_64.txt @@ -14,6 +14,7 @@ target_compile_options(providers-common-udf_resolve PRIVATE target_link_libraries(providers-common-udf_resolve PUBLIC contrib-libs-cxxsupp yutil + cpp-digest-md5 cpp-protobuf-util yql-core-file_storage library-yql-minikql diff --git a/ydb/library/yql/providers/common/udf_resolve/yql_simple_udf_resolver.cpp b/ydb/library/yql/providers/common/udf_resolve/yql_simple_udf_resolver.cpp index ce190e0f41b..031ab4ddc67 100644 --- a/ydb/library/yql/providers/common/udf_resolve/yql_simple_udf_resolver.cpp +++ b/ydb/library/yql/providers/common/udf_resolve/yql_simple_udf_resolver.cpp @@ -9,6 +9,8 @@ #include <ydb/library/yql/minikql/mkql_utils.h> #include <ydb/library/yql/minikql/computation/mkql_computation_node.h> +#include <library/cpp/digest/md5/md5.h> + #include <util/generic/vector.h> #include <util/generic/hash_set.h> #include <util/generic/hash.h> @@ -31,10 +33,18 @@ public: , UseFakeMD5_(useFakeMD5) {} + TString GetMD5(const TString& path) const { + if (UseFakeMD5_) { + return MD5::Calc(path); + } else { + return {}; + } + } + TMaybe<TFilePathWithMd5> GetSystemModulePath(const TStringBuf& moduleName) const override { with_lock(Lock_) { auto path = FunctionRegistry_->FindUdfPath(moduleName); - return path ? MakeMaybe<TFilePathWithMd5>(*path, UseFakeMD5_ ? *path : TString()) : Nothing(); + return path ? MakeMaybe<TFilePathWithMd5>(*path, GetMD5(*path)) : Nothing(); } } |