From ea59c42528900d7630cbf405d3f63bdcadd5fc26 Mon Sep 17 00:00:00 2001 From: "jiasheng.yu" Date: Mon, 29 Dec 2025 10:16:12 +0800 Subject: [PATCH] fix: avoid SIGSEGV in read_proc_io during static initialization Signed-off-by: jiasheng.yu --- src/bvar/default_variables.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/bvar/default_variables.cpp b/src/bvar/default_variables.cpp index 395d05e1f7..a84c3ab08b 100644 --- a/src/bvar/default_variables.cpp +++ b/src/bvar/default_variables.cpp @@ -22,6 +22,8 @@ #include // getrusage #include // dirent #include // setw +#include +#include #if defined(__APPLE__) #include #include @@ -430,7 +432,12 @@ static bool read_proc_io(ProcIO* s) { #if defined(OS_LINUX) butil::ScopedFILE fp("/proc/self/io", "r"); if (NULL == fp) { - PLOG_ONCE(WARNING) << "Fail to open /proc/self/io"; + static bool ever_printed_io_err = false; + if (!ever_printed_io_err) { + fprintf(stderr, "WARNING: Fail to open /proc/self/io, errno=%d. " + "I/O related bvars will be unavailable.\n", errno); + ever_printed_io_err = true; + } return false; } errno = 0;