偶现调用下游服务coredump
- Dominant language
- C++
- Stars
- 17.6k
- Forks
- 4.1k
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 69
Description
**Describe the bug (描述bug)**
brpc半同步方式调用下游thrift server
**To Reproduce (复现方法)**
线下服务持续运行一段时间会偶现
**Expected behavior (期望行为)**
**Versions (各种版本)**
OS:
Compiler:
brpc:
protobuf:
**Additional context/screenshots (更多上下文/截图)**
(gdb) bt
#0 brpc::Controller::Call::OnComplete (this=this@entry=0x7f22687568b0, c=c@entry=0x7f22687567a0, error_code=error_code@entry=125, responded=responded@entry=false, end_of_rpc=end_of_rpc@entry=false)
at incubator-brpc/src/brpc/controller.cpp:703
#1 0x0000000001316614 in brpc::Controller::EndRPC (this=0x7f22687567a0, info=...) at incubator-brpc/src/brpc/controller.cpp:835
#2 0x0000000001316b80 in brpc::Controller::RunEndRPC (arg=) at incubator-brpc/src/brpc/controller.cpp:682
#3 0x00000000012fc54a in bthread::TaskGroup::task_runner (skip_remained=) at incubator-brpc/src/bthread/task_group.cpp:297
#4 0x0000000001487a71 in bthread_make_fcontext ()
Cannot access memory at address 0x7f226b5ac000
(gdb) quit
Contributor guide
Research direction
Start by examining brpc/controller.cpp around Controller::Call::OnComplete (line 703), EndRPC (835), and RunEndRPC (682), then review bthread/task_group.cpp around task_runner (297). Use the supplied gdb backtrace and investigate the intermittent crash during long-running synchronous calls to a downstream Thrift server. Done means the coredump is reproduced and its cause is identified or fixed with evidence that the call path no longer crashes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend-api-design
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100