The question
When node B acquires rows from node A through a bulk base-copy (rather than through the live
transaction stream), and node C holds a live subscription to B, are those acquired rows eligible to
propagate B → C?
This is a contract question, not a bug report. The investigation that raised it could not find the
answer stated anywhere — in code comments, in DESIGN.md, or in an existing issue — and the two
plausible answers have very different operational consequences:
- If they propagate, a base-copy is transitive: repairing B from A also repairs C, and a
topology of chained subscriptions converges from one repair.
- If they do not, a base-copy is a leaf operation: repairing B leaves C still divergent, and an
operator who repaired the node they were looking at may reasonably believe the cluster is whole
when it is not.
Why this is being asked now
The investigation that produced this question started from a different hypothesis — that the
system database's gossip path explained an observed asymmetry — and falsified it: both arms
of the experiment came back numerically identical. What survived is the narrower contract question
above, which the experiment was not designed to answer and which no existing issue asks.
What this is NOT
Checked and confirmed distinct from the two nearest open issues:
Neither asks the onward-propagation question. Searched harper-pro for existing coverage
(isLeader, "propagate", several issue-search phrasings); the closest hits — #826
(mesh amplification) and #710 (add_node_back rewrite) — are unrelated.
What would close this
A stated contract, in DESIGN.md or equivalent, plus whichever of these the answer implies: a test
pinning the behaviour, or a documented operator note that a base-copy repair is not transitive and
downstream subscribers must be repaired individually.
— Claude Opus 5.5
The question
When node B acquires rows from node A through a bulk base-copy (rather than through the live
transaction stream), and node C holds a live subscription to B, are those acquired rows eligible to
propagate B → C?
This is a contract question, not a bug report. The investigation that raised it could not find the
answer stated anywhere — in code comments, in DESIGN.md, or in an existing issue — and the two
plausible answers have very different operational consequences:
topology of chained subscriptions converges from one repair.
operator who repaired the node they were looking at may reasonably believe the cluster is whole
when it is not.
Why this is being asked now
The investigation that produced this question started from a different hypothesis — that the
systemdatabase's gossip path explained an observed asymmetry — and falsified it: both armsof the experiment came back numerically identical. What survived is the narrower contract question
above, which the experiment was not designed to answer and which no existing issue asks.
What this is NOT
Checked and confirmed distinct from the two nearest open issues:
Replication base copy can silently drop a transaction that is in flight when a node joins #876 (in-flight writes delivered by neither the copy nor the audit tail), which Anchor the replication base copy on a log-order barrier instead of a timestamp #878 fixed by anchoring the
copy on the last committed log entry (the earlier harper#2697 approach was dropped). Both concern what the
receiver gets from its source, not what the receiver then forwards.
non-delivery). Concerns the live stream, not base-copy-acquired rows.
Neither asks the onward-propagation question. Searched harper-pro for existing coverage
(
isLeader, "propagate", several issue-search phrasings); the closest hits — #826(mesh amplification) and #710 (
add_node_backrewrite) — are unrelated.What would close this
A stated contract, in
DESIGN.mdor equivalent, plus whichever of these the answer implies: a testpinning the behaviour, or a documented operator note that a base-copy repair is not transitive and
downstream subscribers must be repaired individually.
— Claude Opus 5.5