From 5189c2e457bbbc0c7f430d3fa810b59896c8bb44 Mon Sep 17 00:00:00 2001
From: zhipeng li <qiuxinyidian@gmail.com>
Date: Mon, 27 Nov 2023 15:24:06 +0800
Subject: [PATCH] add checking result for rgw  frontend init fixes:
 https://tracker.ceph.com/issues/63644

Signed-off-by: zhipeng li <qiuxinyidian@gmail.com>
---
 src/rgw/rgw_lib.cc  | 9 ++++++++-
 src/rgw/rgw_main.cc | 7 ++++++-
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/src/rgw/rgw_lib.cc b/src/rgw/rgw_lib.cc
index f449cce21c0..b105e1dad1f 100644
--- a/src/rgw/rgw_lib.cc
+++ b/src/rgw/rgw_lib.cc
@@ -468,6 +468,7 @@ namespace rgw {
 
   int RGWLib::init(vector<const char*>& args)
   {
+    int r{0};
     /* alternative default for module */
     map<std::string,std::string> defaults = {
       { "debug_rgw", "1/5" },
@@ -524,7 +525,13 @@ namespace rgw {
     register_async_signal_handler(SIGUSR1, rgw::signal::handle_sigterm);
 
     main.init_tracepoints();
-    main.init_frontends2(this /* rgwlib */);
+    r = main.init_frontends2(this /* rgwlib */);
+    if (r != 0) {
+      derr << "ERROR: unable to initialize frontend, r = " << r << dendl;
+      main.shutdown();
+      return r;
+    }
+
     main.init_notification_endpoints();
     main.init_lua();
 
diff --git a/src/rgw/rgw_main.cc b/src/rgw/rgw_main.cc
index 27b02f84195..57407b43481 100644
--- a/src/rgw/rgw_main.cc
+++ b/src/rgw/rgw_main.cc
@@ -157,7 +157,12 @@ int main(int argc, char *argv[])
   main.init_opslog();
   main.init_tracepoints();
   main.init_lua();
-  main.init_frontends2(nullptr /* RGWLib */);
+  r = main.init_frontends2(nullptr /* RGWLib */);
+  if (r != 0) {
+    derr << "ERROR:  initialize frontend fail, r = " << r << dendl;
+    main.shutdown();
+    return r;
+  }
   main.init_notification_endpoints();
 
 #if defined(HAVE_SYS_PRCTL_H)
-- 
2.47.2