62 lines
2.7 KiB
Diff
62 lines
2.7 KiB
Diff
From 411e0fe141efdf02d73aa15c2576214af1be787e Mon Sep 17 00:00:00 2001
|
|
From: zhuofeng <1107893276@qq.com>
|
|
Date: Wed, 12 Mar 2025 02:27:12 +0000
|
|
Subject: [PATCH] fix the sentryCollector service can't be stopped for a long
|
|
time
|
|
|
|
Signed-off-by: zhuofeng <1107893276@qq.com>
|
|
---
|
|
src/python/sentryCollector/collect_io.py | 13 +++++++++++--
|
|
src/python/syssentry/global_values.py | 2 +-
|
|
2 files changed, 12 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/src/python/sentryCollector/collect_io.py b/src/python/sentryCollector/collect_io.py
|
|
index 4cf6534..622e0b4 100644
|
|
--- a/src/python/sentryCollector/collect_io.py
|
|
+++ b/src/python/sentryCollector/collect_io.py
|
|
@@ -322,6 +322,8 @@ class CollectIo():
|
|
if curr_io_dump > 0:
|
|
logging.info(f"ebpf io_dump info : {disk_name}, {stage}, {io_type}, {curr_io_dump}")
|
|
IO_GLOBAL_DATA[disk_name][stage][io_type].insert(0, [curr_lat, curr_io_dump, curr_io_length, curr_iops])
|
|
+ if curr_lat > 0:
|
|
+ logging.info(f"ebpf info : {disk_name}, {stage}, {io_type}, {curr_lat}, {curr_iops}")
|
|
|
|
elapsed_time = time.time() - start_time
|
|
sleep_time = self.period_time - elapsed_time
|
|
@@ -405,10 +407,17 @@ class CollectIo():
|
|
self
|
|
) -> None:
|
|
global EBPF_PROCESS
|
|
- if EBPF_PROCESS:
|
|
+ if not EBPF_PROCESS:
|
|
+ logging.debug("No eBPF process to stop")
|
|
+ return
|
|
+ try:
|
|
EBPF_PROCESS.terminate()
|
|
+ EBPF_PROCESS.wait(timeout=3)
|
|
+ except subprocess.TimeoutExpired:
|
|
+ logging.debug("eBPF process did not exit within timeout. Forcing kill.")
|
|
+ EBPF_PROCESS.kill()
|
|
EBPF_PROCESS.wait()
|
|
- logging.info("ebpf collector thread exit")
|
|
+ logging.info("ebpf collector thread exit")
|
|
|
|
def main_loop(self):
|
|
global IO_GLOBAL_DATA
|
|
diff --git a/src/python/syssentry/global_values.py b/src/python/syssentry/global_values.py
|
|
index b123b2d..9c7800b 100644
|
|
--- a/src/python/syssentry/global_values.py
|
|
+++ b/src/python/syssentry/global_values.py
|
|
@@ -114,7 +114,7 @@ class InspectTask:
|
|
try:
|
|
child = subprocess.Popen(cmd_list, stdout=logfile, stderr=subprocess.STDOUT, close_fds=True)
|
|
except OSError:
|
|
- logging.error("task %s start Popen error, invalid cmd")
|
|
+ logging.error("task %s start Popen error, invalid cmd", cmd_list)
|
|
self.result_info["result"] = ResultLevel.FAIL.name
|
|
self.result_info["error_msg"] = RESULT_LEVEL_ERR_MSG_DICT.get(ResultLevel.FAIL.name)
|
|
self.runtime_status = "FAILED"
|
|
--
|
|
2.43.0
|
|
|