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 <chenkai...@selectdb.com> --- 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: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org