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

Reply via email to