FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

fix(postgres-source): stop pgjdbc confirming the slot, and rebound the confirmation test by jarohen · Pull Request #5976 · xtdb/xtdb · GitHub

/ xtdb Public

fix(postgres-source): stop pgjdbc confirming the slot, and rebound the confirmation test - #5976

Merged
jarohen merged 2 commits into
xtdb:mainfrom
jarohen:pgsrc-confirmation-5974
Sep 1, 2026
Merged

fix(postgres-source): stop pgjdbc confirming the slot, and rebound the confirmation test#5976
jarohen merged 2 commits into
xtdb:mainfrom
jarohen:pgsrc-confirmation-5974

Conversation

jarohen commented Aug 28, 2026

Copy link
Copy Markdown
Member

Resolves #5974 and #5975.

slot is confirmed only as far as the last durable block failed twice on main in one day with a green run between them, leaving the Integration Test job intermittently red for every branch rebasing onto it. #5975 was found while investigating that, in the same keepalive path.

jarohen and others added 2 commits September 1, 2026 16:44
…, not the block (resolves xtdb#5974)

Why the block token was the wrong bound, and the measurement behind the new one, are on xtdb#5974.

- **The regression the test exists for still fails it.** Confirmation tracking apply, which is what xtdb#5867 fixed, reaches the third row's commit — comfortably past the sample.

- **The closing assertion moves from `> blockLsn` to `>= persisted`.** It read as "the slot advances once the block is durable", but the quiet advance had already made it true before the second block existed, so it asserted nothing. Comparing against the new block's own token is the claim that was meant.

Refs xtdb#5974

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…esolves xtdb#5975)

The mechanism, and the loss it opens at stream open, are on xtdb#5975.

- **The spec gains a line on `SoleConfirmer` rather than a new obligation.** "At most one party confirms a given slot" already covers this; what it did not say is that a driver advancing the flush position on its own schedule counts as a party. A second invariant naming the driver case would oblige the same thing twice, and a reader checking coverage would count it twice.

- **No regression test comes with it.** Reproducing the loss needs a keepalive to land between stream open and the first data message, on a source resuming with an un-blocked range behind it; that timing is not constructible from the client. What is testable is the other direction, and `slot advances before the first block is cut` still passes with automatic flush off — so the quiet advance is `confirm()`'s alone, and no guarantee was resting on the driver.

Refs xtdb#5975

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
jarohen force-pushed the pgsrc-confirmation-5974 branch from 174df88 to 2016b35 Compare September 1, 2026 15:44
jarohen merged commit 2016b35 into xtdb:main Sep 1, 2026
7 checks passed
jarohen deleted the pgsrc-confirmation-5974 branch September 1, 2026 15:48
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

the slot-confirmation test should bound confirmation by the transaction, not by the block

1 participant


Back | FazBrowse Home | New Git URL