This is an automated email from the ASF dual-hosted git repository.

twice pushed a commit to branch 2.11
in repository https://gitbox.apache.org/repos/asf/kvrocks.git

commit d97f03c76d14027058b640624aa61d4a10f6de1a
Author: Twice <[email protected]>
AuthorDate: Sat Feb 1 17:17:48 2025 +0800

    fix(tls): remove SSL_sendfile path to avoid errors in replication fullsync 
(#2757)
---
 src/commands/cmd_replication.cc | 13 ++++++++-----
 src/common/io_util.cc           |  5 +----
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/src/commands/cmd_replication.cc b/src/commands/cmd_replication.cc
index 290b1261..ab288ca8 100644
--- a/src/commands/cmd_replication.cc
+++ b/src/commands/cmd_replication.cc
@@ -240,10 +240,10 @@ class CommandFetchMeta : public Commander {
         return;
       }
       // Send full data file info
-      if (util::SockSend(repl_fd, files + CRLF, bev).IsOK()) {
+      if (auto s = util::SockSend(repl_fd, files + CRLF, bev)) {
         LOG(INFO) << "[replication] Succeed sending full data file info to " 
<< ip;
       } else {
-        LOG(WARNING) << "[replication] Fail to send full data file info " << 
ip << ", error: " << strerror(errno);
+        LOG(WARNING) << "[replication] Fail to send full data file info " << 
ip << ", error: " << s.Msg();
       }
       auto now_secs = static_cast<time_t>(util::GetTimeStamp());
       srv->storage->SetCheckpointAccessTimeSecs(now_secs);
@@ -295,11 +295,14 @@ class CommandFetchFile : public Commander {
         if (!fd) break;
 
         // Send file size and content
-        if (util::SockSend(repl_fd, std::to_string(file_size) + CRLF, 
bev).IsOK() &&
-            util::SockSendFile(repl_fd, *fd, file_size, bev).IsOK()) {
+        auto s = util::SockSend(repl_fd, std::to_string(file_size) + CRLF, 
bev);
+        if (s) {
+          s = util::SockSendFile(repl_fd, *fd, file_size, bev);
+        }
+        if (s) {
           LOG(INFO) << "[replication] Succeed sending file " << file << " to " 
<< ip;
         } else {
-          LOG(WARNING) << "[replication] Fail to send file " << file << " to " 
<< ip << ", error: " << strerror(errno);
+          LOG(WARNING) << "[replication] Fail to send file " << file << " to " 
<< ip << ", error: " << s.Msg();
           break;
         }
         fd.Close();
diff --git a/src/common/io_util.cc b/src/common/io_util.cc
index 23cccc69..1136dbb1 100644
--- a/src/common/io_util.cc
+++ b/src/common/io_util.cc
@@ -274,11 +274,8 @@ Status SockSendFile(int out_fd, int in_fd, size_t size) { 
return SockSendFileImp
 Status SockSendFile(int out_fd, int in_fd, size_t size, [[maybe_unused]] 
ssl_st *ssl) {
 #ifdef ENABLE_OPENSSL
   if (ssl) {
-#if OPENSSL_VERSION_NUMBER >= 0x30000000L
-    return SockSendFileImpl<SSL_sendfile>(ssl, in_fd, size, 0);
-#else
+    // NOTE: SockSendFileImpl<SSL_sendfile> will cause errors, refer to #2756
     return SockSendFileImpl<SendFileSSLImpl>(ssl, in_fd, size);
-#endif
   }
 #endif
   return SockSendFile(out_fd, in_fd, size);

Reply via email to