]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/ThreadMonitor: monitor interval running in seconds and not nanoseconds 69125/head
authorNitzan Mordechai <nmordech@ibm.com>
Wed, 27 May 2026 11:48:14 +0000 (11:48 +0000)
committerNitzan Mordechai <nmordech@ibm.com>
Wed, 27 May 2026 11:53:08 +0000 (11:53 +0000)
The ctor accidently use the mgr_module_monitor_interval as nanoseconds
we need to use it as seconds.
Also, prevent high cpu loop in case read_process_statm failed during
while loop

Fixes: https://tracker.ceph.com/issues/76938
Signed-off-by: Nitzan Mordechai <nmordec@ibm.com>
src/mgr/ThreadMonitor.cc
src/mgr/ThreadMonitor.h

index d26a747ed6ec466d855b1af003affc39f81562a7..46f86f6e8943e0a62fa3be0a388a71da2ab76f4c 100644 (file)
@@ -88,6 +88,7 @@ void ThreadMonitor::monitoring_loop() {
     long long process_rss_pages = 0;
     if (!read_process_statm(process_rss_pages)) {
       derr << "Failed to read process memory info from /proc/self/statm." << dendl;
+      std::this_thread::sleep_for(monitoring_interval);
       continue;
     }
 
index 60a839ae9655b35dbdb0c49625a3f89c7eded832..fe09fd73fd0fb34c2becf54f377a7bdac84bb46a 100644 (file)
@@ -21,7 +21,7 @@ public:
   ThreadMonitor(CephContext *cct)
     : m_cct(cct),
       running(false),
-      monitoring_interval(m_cct->_conf.get_val<int64_t>("mgr_module_monitor_interval"))
+      monitoring_interval(std::chrono::seconds(m_cct->_conf.get_val<int64_t>("mgr_module_monitor_interval")))
   {
     m_cct->_conf.add_observer(this);
     m_clock_ticks_per_sec = sysconf(_SC_CLK_TCK);