This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push:
new c099ccdbd02 branch-2.1: [improve](load) print error string in local fs
error messages #47918 (#48010)
c099ccdbd02 is described below
commit c099ccdbd026d91fb407b5fa4029b535fab51941
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Wed Feb 19 09:25:41 2025 +0800
branch-2.1: [improve](load) print error string in local fs error messages
#47918 (#48010)
Cherry-picked from #47918
Co-authored-by: Kaijie Chen <[email protected]>
---
be/src/io/fs/err_utils.cpp | 28 +++++++++++++++-------------
be/src/io/fs/err_utils.h | 1 +
2 files changed, 16 insertions(+), 13 deletions(-)
diff --git a/be/src/io/fs/err_utils.cpp b/be/src/io/fs/err_utils.cpp
index fbae0ff927d..d4c5c7ad3e0 100644
--- a/be/src/io/fs/err_utils.cpp
+++ b/be/src/io/fs/err_utils.cpp
@@ -78,36 +78,38 @@ std::string glob_err_to_str(int code) {
}
Status localfs_error(const std::error_code& ec, std::string_view msg) {
+ auto message = fmt::format("{}: {}", msg, ec.message());
if (ec == std::errc::io_error) {
- return Status::Error<IO_ERROR, false>(msg);
+ return Status::Error<IO_ERROR, false>(message);
} else if (ec == std::errc::no_such_file_or_directory) {
- return Status::Error<NOT_FOUND, false>(msg);
+ return Status::Error<NOT_FOUND, false>(message);
} else if (ec == std::errc::file_exists) {
- return Status::Error<ALREADY_EXIST, false>(msg);
+ return Status::Error<ALREADY_EXIST, false>(message);
} else if (ec == std::errc::no_space_on_device) {
- return Status::Error<DISK_REACH_CAPACITY_LIMIT, false>(msg);
+ return Status::Error<DISK_REACH_CAPACITY_LIMIT, false>(message);
} else if (ec == std::errc::permission_denied) {
- return Status::Error<PERMISSION_DENIED, false>(msg);
+ return Status::Error<PERMISSION_DENIED, false>(message);
} else {
- return Status::Error<ErrorCode::INTERNAL_ERROR, false>("{}: {}", msg,
ec.message());
+ return Status::Error<ErrorCode::INTERNAL_ERROR, false>(message);
}
}
Status localfs_error(int posix_errno, std::string_view msg) {
+ char buf[1024];
+ auto message = fmt::format("{}: {}", msg, strerror_r(errno, buf, 1024));
switch (posix_errno) {
case EIO:
- return Status::Error<IO_ERROR, false>(msg);
+ return Status::Error<IO_ERROR, false>(message);
case ENOENT:
- return Status::Error<NOT_FOUND, false>(msg);
+ return Status::Error<NOT_FOUND, false>(message);
case EEXIST:
- return Status::Error<ALREADY_EXIST, false>(msg);
+ return Status::Error<ALREADY_EXIST, false>(message);
case ENOSPC:
- return Status::Error<DISK_REACH_CAPACITY_LIMIT, false>(msg);
+ return Status::Error<DISK_REACH_CAPACITY_LIMIT, false>(message);
case EACCES:
- return Status::Error<PERMISSION_DENIED, false>(msg);
+ return Status::Error<PERMISSION_DENIED, false>(message);
default:
- return Status::Error<ErrorCode::INTERNAL_ERROR, false>("{}: {}", msg,
-
std::strerror(posix_errno));
+ return Status::Error<ErrorCode::INTERNAL_ERROR, false>(message);
}
}
diff --git a/be/src/io/fs/err_utils.h b/be/src/io/fs/err_utils.h
index 18a6727c4ff..4a7c597879a 100644
--- a/be/src/io/fs/err_utils.h
+++ b/be/src/io/fs/err_utils.h
@@ -31,6 +31,7 @@ namespace io {
std::string errno_to_str();
std::string errcode_to_str(const std::error_code& ec);
+int error_code_to_errno(const std::error_code& ec);
std::string hdfs_error();
std::string glob_err_to_str(int code);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]