HarperFast / HarperFast/harper-pro
Replication can miss an audit-tail wakeup after reconnect
- Dominant language
- JavaScript
- Stars
- 3
- Forks
- 0
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 80
Description
## Problem
The connected-bit churn test exposed a real false-green: `cluster_status` reported a recovered database socket as connected while a new audit record was not sent to the follower.
The sender scanned the live audit log, reached its end, and only then requested the next transaction promise. A commit in that narrow interval resolved and replaced the prior generation, leaving the sender asleep until a later write despite the open socket.
## Scope
This is in harper-pro's outbound replication loop. `blockCacheEviction.test.mjs` has a similar post-restart symptom but a different root cause: its regression covers the RocksDB cross-column-family cache-read issue.
## Fix and coverage
Capture the transaction wake promise before the live scan, then await that captured generation after draining. The churn test also verifies writes issued while reconnection is in flight before it sends its existing post-convergence marker.
Co-Authored-By: GPT-5 Codex
Contributor guide
Research direction
Start in harper-pro's outbound replication loop and inspect how the live audit-log scan obtains and awaits transaction wake promises. Use the connected-bit churn regression described in the issue to cover writes during reconnection. Done means the captured wake generation is awaited after draining and the recovered follower receives the new audit record.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, node.js
- Domain
- databases, distributed-systems
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100