apache / apache/brpc

rpc半同步模式访问, 自定义retry policy, 偶发FATAL日志, A previous non-backed-up call responded

Open
#1,081 2 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
C++
Stars
17.6k
Forks
4.1k
Avg merge
2d 12h
Merged PRs (30d)
69

Description

**Describe the bug (描述bug)**

**To Reproduce (复现方法)**
![image](https://user-images.githubusercontent.com/19187765/78261340-b5132700-7531-11ea-810e-9253e17c992a.png)
半同步访问 + 自定义的retry_policy,client发压,很容易复现, 服务不会挂掉。
FATAL日志:controller.cpp:609] Check failed: current_id() == info.id (9925669421080 vs 9925669421077). error_code=1008
controller.cpp:844] Check failed: false. A previous non-backed-up call responded

**Expected behavior (期望行为)**
rpc半同步模式访问 + 自定义retry policy, 不出现偶发FATAL日志,是否在使用retry policy时候需要注意什么参数。

**Versions (各种版本)**
OS:
Compiler:
brpc:
protobuf:

**Additional context/screenshots (更多上下文/截图)**

Contributor guide

Open the contributing guide

Research direction

Start by inspecting controller.cpp around lines 609 and 844, then reproduce the reported failure with semisynchronous RPC access and a custom retry policy. Check the available issue context and retry-policy parameters while investigating the FATAL logs; done means the scenario no longer emits these failures.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend-api-design, distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.