apache / apache/brpc

开启 backup request 和 retry times 以及自定义 retry policy时会触发 CHECK_EQ 失败

Offen
#2,001 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
bug
Vorherrschende Sprache
C++
Sterne
17.6k
Forks
4.1k
Ø Merge
2 T. 20 Std.
Gemergte PRs (30 T.)
64

Beschreibung

**Describe the bug (描述bug)**
当重试次数>=3时, 开启 backup request 以及 retry policy 时,
会触发 CHECK_EQ(current_id(), info.id) << "error_code=" << _error_code;

**To Reproduce (复现方法)**
1) 发送一次rpc: 记作 RPC_1. 假设在 backup request time 后返回, 且 retry policy 必定为真.
2) 触发 backup request, 记作 RPC_2. 且返回在 RPC_1 之后.
3) RPC_1 返回后, 重试时触发 CHECK_EQ(current_id(), info.id) << "error_code=" << _error_code;

**Expected behavior (期望行为)**
不触发 CHECK_EQ(current_id(), info.id) << "error_code=" << _error_code;

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Reproduziere die beschriebene RPC_1/RPC_2-Sequenz mit Backup-Anfragen, mindestens drei Wiederholungsversuchen und einer benutzerdefinierten Wiederholungsrichtlinie. Verfolge die Verarbeitung von Backup-Anfragen und Wiederholungsversuchen rund um die Assertion CHECK_EQ(current_id(), info.id); abgeschlossen ist die Aufgabe, wenn diese Sequenz die Assertion nicht mehr auslöst und das bestehende Verhalten, sofern verfügbar, weiterhin durch Tests abgedeckt ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
cpp
Bereich
backend-api-design, distributed-systems
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.