HarperFast / HarperFast/harper-pro

Replication can miss an audit-tail wakeup after reconnect

Open
#652 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.