CheckHealth()导致服务崩溃
- Dominant language
- C++
- Stars
- 17.6k
- Forks
- 4.1k
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 69
Description
压测时,服务出现crash,跟踪日志发现是CheckHealth()导致的,想问下什么情况下CheckHealth()会出现崩溃的风险。crash日志如下:
ERROR: 2024-04-16 23:14:37.221456 [1904:0]line=32||trace_back=bin/xxxx(logging::LogStream::FlushWithoutReset()+0xde) [0xdc862e]||
ERROR: 2024-04-16 23:14:37.221460 [1904:0]line=33||trace_back=bin/xxxx(logging::LogMessage::~LogMessage()+0x2b) [0xdc8a8b]||
ERROR: 2024-04-16 23:14:37.221463 [1904:0]line=34||trace_back=bin/xxxx(brpc::Socket::CheckHealth()+0x154) [0xd718b4]||
ERROR: 2024-04-16 23:14:37.221467 [1904:0]line=35||trace_back=bin/xxxx(brpc::HealthCheckTask::OnTriggeringTask(timespec*)+0x73) [0xe05913]||
ERROR: 2024-04-16 23:14:37.221470 [1904:0]line=36||trace_back=bin/xxxx() [0xe1c9bb]||
ERROR: 2024-04-16 23:14:37.221474 [1904:0]line=37||trace_back=bin/xxxx(bthread::TaskGroup::task_runner(long)+0xfa) [0xdfd3ca]||
ERROR: 2024-04-16 23:14:37.221478 [1904:0]line=38||trace_back=bin/xxxx(bthread_make_fcontext+0x21) [0xde7b51]||
Contributor guide
Research direction
Start with the supplied stress-test crash log and trace the CheckHealth() call from HealthCheckTask::OnTriggeringTask. Determine which condition causes the crash and document the finding or fix the underlying issue; done means the triggering condition is understood and the crash is prevented or explained.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend, networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100