Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Add raft scenarios for uncovered retirement and reconfiguration branches in raft.h

Chiusa
#8,464 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@achamayou ci sta già lavorando.

Dal 5/10/2026.

  • #8507 di @achamayou — aperta

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
38/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
cpp

Direzione di ricerca

Start by reading src/consensus/raft/raft.h and the existing tests in tests/raft_scenarios/, especially scenarios added by #8433. Trace the three retirement, vote, and rollback branches and model the required multi-node interleavings. Done means scenarios cover all three branches and pass the CI trace validation against the TLA+ specification.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

NOTE: This type of issue is reserved for the project team. If you are not a member of the team, please use either the bug or feature templates.

What is the motivation for this task
#8433 adds negative-path raft_test cases for src/consensus/aft/raft.h. Its description lists three retirement and reconfiguration interleavings that are reachable, but whose branches are still not covered by raft_test or raft_scenario_test:

  • commit(): a node whose retirement is Signed commits an index below retirement_committable_idx, so idx >= retirement_committable is false.
  • recv_propose_request_vote(): a ProposeRequestVote reaches a node whose retirement is committed, so !is_retired_committed() is false.
  • rollback(): a rollback removes every configuration, so the configuration rollback loop ends because configurations is empty.

These need multi-node interleavings, so they are better written as scenarios in tests/raft_scenarios/, which CI also trace-validates against the TLA+ spec, than as more raft_test fixtures. This was raised in review of #8433 and deferred from it.

Dependencies
None blocking. Measuring the coverage gain is simplest once #8433 has merged.

Describe impact if task is not completed
These raft.h branches stay untested by the consensus unit and scenario tests, so a regression in them would not be caught there, and they keep counting as missed branches in raft.h coverage.

Lingua principale
C++
Stelle
875
Fork
264
Merge medio
1g 14h
PR unite (30g)
161

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di microsoft/CCF

Tutte le issue di microsoft/CCF

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.