• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

databendlabs / openraft / 26814810383
87%

Build:
DEFAULT BRANCH: main
Ran 02 Jun 2026 10:50AM UTC
Jobs 1
Files 264
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

02 Jun 2026 10:36AM UTC coverage: 86.541% (+0.001%) from 86.54%
26814810383

push

github

drmingdrmer
fix: drain stranded client responders on PurgeLog

# Summary

A former leader's pending client write could be superseded by a snapshot
install on a lagging follower, leaving its responder in the queue. The next
apply then panicked the RaftCore task on a purged log index, permanently
freezing that Raft group. PurgeLog now drains and fails such responders,
mirroring TruncateLog.

# Details

Root cause: when a follower lags past the snapshot's last index,
install_full_snapshot skips the conflict-truncate (the only step that drains
responders) because the local log does not reach that index, and removes the
superseded entries via PurgeLog. PurgeLog did not touch client_responders, so a
responder remained below the new purge boundary; the next apply called
get_log_id(index).unwrap() on a purged index and panicked.

Fix: PurgeLog drains responders up to the purged index and completes each with
ForwardToLeader. In normal operation purge follows apply, so the drained range
is empty and behavior is unchanged; it only fires on the snapshot-strand path.

A regression test reproduces the path: leader accepts a write, loses leadership
with the responder pending, lags, installs a snapshot past its local log, then
applies once.

- Fix: #1761

8 of 8 new or added lines in 1 file covered. (100.0%)

5 existing lines in 2 files now uncovered.

16383 of 18931 relevant lines covered (86.54%)

145291.83 hits per line

Coverage Regressions

Lines Coverage ∆ File
3
81.91
-3.19% openraft/src/replication/snapshot_transmitter.rs
2
81.48
-7.41% openraft/src/core/sm/handle.rs
Jobs
ID Job ID Ran Files Coverage
1 26814810383.1 02 Jun 2026 10:50AM UTC 264
86.54
GitHub Action Run
Source Files on build 26814810383
  • Tree
  • List 264
  • Changed 4
  • Source Changed 1
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26814810383
  • 13df5b32 on github
  • Prev Build on main (#26814307926)
  • Next Build on main (#26823344269)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc