From 44cb4d9ded36eef59dcc12275676e0b35abd4bc7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E8=83=A1=E7=8E=AE=E6=96=87?= Date: Tue, 3 May 2022 17:35:48 +0800 Subject: [PATCH] mon/LogMonitor: reopen log files on SIGHUP MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Fixes: https://tracker.ceph.com/issues/55383 Signed-off-by: 胡玮文 (cherry picked from commit ee80f9fe766fe765d79051ff59a1bcc94fc1f9e7) --- src/mon/LogMonitor.cc | 4 ++++ src/mon/LogMonitor.h | 5 +++++ src/mon/Monitor.cc | 1 + 3 files changed, 10 insertions(+) diff --git a/src/mon/LogMonitor.cc b/src/mon/LogMonitor.cc index 9103ddf7c5b5d..eb489e5dfc734 100644 --- a/src/mon/LogMonitor.cc +++ b/src/mon/LogMonitor.cc @@ -387,6 +387,10 @@ void LogMonitor::log_external(const LogEntry& le) } if (g_conf()->mon_cluster_log_to_file) { + if (this->log_rotated.exchange(false)) { + this->log_external_close_fds(); + } + auto p = channel_fds.find(channel); int fd; if (p == channel_fds.end()) { diff --git a/src/mon/LogMonitor.h b/src/mon/LogMonitor.h index 715f380af6a4e..01909264ae3b7 100644 --- a/src/mon/LogMonitor.h +++ b/src/mon/LogMonitor.h @@ -15,6 +15,7 @@ #ifndef CEPH_LOGMONITOR_H #define CEPH_LOGMONITOR_H +#include #include #include @@ -51,6 +52,7 @@ private: std::map channel_fds; fmt::memory_buffer file_log_buffer; + std::atomic log_rotated = false; struct log_channel_info { @@ -167,6 +169,9 @@ private: void check_subs(); void check_sub(Subscription *s); + void reopen_logs() { + this->log_rotated.store(true); + } void log_external_close_fds(); void log_external(const LogEntry& le); void log_external_backlog(); diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index d647316e9e5c1..ac6d6632c39a3 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -501,6 +501,7 @@ void Monitor::handle_signal(int signum) derr << "*** Got Signal " << sig_str(signum) << " ***" << dendl; if (signum == SIGHUP) { sighup_handler(signum); + logmon()->reopen_logs(); } else { ceph_assert(signum == SIGINT || signum == SIGTERM); shutdown(); -- 2.39.5