]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: ignore SIGXFSZ, which apparently can triggered by heavy ops-log traffic 55381/head
authorMatt Benjamin <mbenjamin@redhat.com>
Tue, 30 Jan 2024 20:35:07 +0000 (15:35 -0500)
committerMatt Benjamin <mbenjamin@redhat.com>
Mon, 8 Apr 2024 11:45:27 +0000 (07:45 -0400)
Fixes: https://tracker.ceph.com/issues/64244
That is, it causes radosgw to ignore SIGXFSZ, which in the apparent
reproducer should not cause radosgw to terminate.

Updated to call unregister_async_signal_handler (frees a structure).

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
src/rgw/rgw_main.cc
src/rgw/rgw_signal.cc
src/rgw/rgw_signal.h

index be211e28c92ad394bef75bb51b4246477ddc3832..6d0dab8245af7b07facc850e0f3b073e19645aa8 100644 (file)
@@ -134,6 +134,7 @@ int main(int argc, char *argv[])
   register_async_signal_handler(SIGTERM, rgw::signal::handle_sigterm);
   register_async_signal_handler(SIGINT, rgw::signal::handle_sigterm);
   register_async_signal_handler(SIGUSR1, rgw::signal::handle_sigterm);
+  register_async_signal_handler(SIGXFSZ, rgw::signal::sig_handler_noop);
   sighandler_alrm = signal(SIGALRM, godown_alarm);
 
   main.init_perfcounters();
@@ -184,6 +185,7 @@ int main(int argc, char *argv[])
     unregister_async_signal_handler(SIGTERM, rgw::signal::handle_sigterm);
     unregister_async_signal_handler(SIGINT, rgw::signal::handle_sigterm);
     unregister_async_signal_handler(SIGUSR1, rgw::signal::handle_sigterm);
+    unregister_async_signal_handler(SIGXFSZ, rgw::signal::sig_handler_noop);
     shutdown_async_signal_handler();
   };
 
index 4bb29d0df6835f792b2722fb9f539fb7d55e7112..e7a6de5190c66a3df8bb02069ed3e326d97bf6b6 100644 (file)
@@ -33,6 +33,10 @@ static int signal_fd[2] = {0, 0};
 namespace rgw {
 namespace signal {
 
+void sig_handler_noop(int signum) {
+  /* NOP */
+} /* sig_handler_noop */
+
 void sighup_handler(int signum) {
     if (rgw::AppMain::ops_log_file != nullptr) {
         rgw::AppMain::ops_log_file->reopen();
index 68fc4f614a394feab0ecc4a6bd766ea20315a596..3cd09e7645eb5d952e671663691ad1346bf4a972 100644 (file)
@@ -19,6 +19,7 @@
 namespace rgw {
 namespace signal {
 
+void sig_handler_noop(int signum);
 void signal_shutdown();
 void wait_shutdown();
 int signal_fd_init();