开启 backup request 和 retry times 以及自定义 retry policy时会触发 CHECK_EQ 失败
- 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
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