summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOliver Reiche <oliver.reiche@huawei.com>2023-01-24 16:42:02 +0100
committerOliver Reiche <oliver.reiche@huawei.com>2023-01-24 18:06:22 +0100
commitdaa2de1617c4f71e4502be407409150bf2d0467c (patch)
treee7cbb8ba1974b654f42971d805a48ea3274ce618 /src
parent0026331ce0177bd3f902628aadcd1a84f3e2547d (diff)
downloadjustbuild-daa2de1617c4f71e4502be407409150bf2d0467c.tar.gz
BazelMsgFactory: Improve error reporting for creating trees
Diffstat (limited to 'src')
-rw-r--r--src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp b/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp
index 2f3dbc01..1ca23c34 100644
--- a/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp
+++ b/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp
@@ -491,11 +491,15 @@ auto BazelMsgFactory::CreateDirectoryDigestFromLocalTree(
auto dir_reader = [&files, &dirs, &root, &store_file, &store_dir](
auto name, auto type) {
+ const auto full_name = root / name;
if (IsTreeObject(type)) {
// create and store sub directory
auto digest = CreateDirectoryDigestFromLocalTree(
root / name, store_file, store_dir);
if (not digest) {
+ Logger::Log(LogLevel::Error,
+ "failed storing tree {}",
+ full_name.string());
return false;
}
@@ -508,7 +512,6 @@ auto BazelMsgFactory::CreateDirectoryDigestFromLocalTree(
// create and store file
try {
- const auto full_name = root / name;
if (auto digest = store_file(full_name, IsExecutableObject(type))) {
auto file = CreateFileNode(name.string(), type, {});
file.set_allocated_digest(gsl::owner<bazel_re::Digest*>{
@@ -516,6 +519,8 @@ auto BazelMsgFactory::CreateDirectoryDigestFromLocalTree(
files.emplace_back(std::move(file));
return true;
}
+ Logger::Log(
+ LogLevel::Error, "failed storing file {}", full_name.string());
} catch (std::exception const& ex) {
Logger::Log(
LogLevel::Error, "storing file failed with:\n{}", ex.what());
@@ -549,10 +554,11 @@ auto BazelMsgFactory::CreateGitTreeDigestFromLocalTree(
GitRepo::tree_entries_t entries{};
auto dir_reader = [&entries, &root, &store_file, &store_tree](auto name,
auto type) {
+ const auto full_name = root / name;
if (IsTreeObject(type)) {
// create and store sub directory
if (auto digest = CreateGitTreeDigestFromLocalTree(
- root / name, store_file, store_tree)) {
+ full_name, store_file, store_tree)) {
if (auto raw_id = FromHexString(
NativeSupport::Unprefix(digest->hash()))) {
entries[std::move(*raw_id)].emplace_back(name.string(),
@@ -560,12 +566,13 @@ auto BazelMsgFactory::CreateGitTreeDigestFromLocalTree(
return true;
}
}
+ Logger::Log(
+ LogLevel::Error, "failed storing tree {}", full_name.string());
return false;
}
// create and store file
try {
- const auto full_name = root / name;
if (auto digest = store_file(full_name, IsExecutableObject(type))) {
if (auto raw_id = FromHexString(
NativeSupport::Unprefix(digest->hash()))) {
@@ -574,6 +581,8 @@ auto BazelMsgFactory::CreateGitTreeDigestFromLocalTree(
return true;
}
}
+ Logger::Log(
+ LogLevel::Error, "failed storing file {}", full_name.string());
} catch (std::exception const& ex) {
Logger::Log(
LogLevel::Error, "storing file failed with:\n{}", ex.what());