apache / apache/brpc

偶现调用下游服务coredump

Open
#2,291 2 comments 0 reactions 0 assignees View on GitHub
usage
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.