Skip to content

Commit e8c74b4

Browse files
committed
rgw: ignore SIGXFSZ, which apparently can triggered by heavy ops-log traffic
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 <[email protected]>
1 parent bbe3040 commit e8c74b4

File tree

3 files changed

+7
-0
lines changed

3 files changed

+7
-0
lines changed

src/rgw/rgw_main.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ int main(int argc, char *argv[])
134134
register_async_signal_handler(SIGTERM, rgw::signal::handle_sigterm);
135135
register_async_signal_handler(SIGINT, rgw::signal::handle_sigterm);
136136
register_async_signal_handler(SIGUSR1, rgw::signal::handle_sigterm);
137+
register_async_signal_handler(SIGXFSZ, rgw::signal::sig_handler_noop);
137138
sighandler_alrm = signal(SIGALRM, godown_alarm);
138139

139140
main.init_perfcounters();
@@ -184,6 +185,7 @@ int main(int argc, char *argv[])
184185
unregister_async_signal_handler(SIGTERM, rgw::signal::handle_sigterm);
185186
unregister_async_signal_handler(SIGINT, rgw::signal::handle_sigterm);
186187
unregister_async_signal_handler(SIGUSR1, rgw::signal::handle_sigterm);
188+
unregister_async_signal_handler(SIGXFSZ, rgw::signal::sig_handler_noop);
187189
shutdown_async_signal_handler();
188190
};
189191

src/rgw/rgw_signal.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ static int signal_fd[2] = {0, 0};
3333
namespace rgw {
3434
namespace signal {
3535

36+
void sig_handler_noop(int signum) {
37+
/* NOP */
38+
} /* sig_handler_noop */
39+
3640
void sighup_handler(int signum) {
3741
if (rgw::AppMain::ops_log_file != nullptr) {
3842
rgw::AppMain::ops_log_file->reopen();

src/rgw/rgw_signal.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
namespace rgw {
2020
namespace signal {
2121

22+
void sig_handler_noop(int signum);
2223
void signal_shutdown();
2324
void wait_shutdown();
2425
int signal_fd_init();

0 commit comments

Comments
 (0)