Skip to content

test: verify DynamoDB snapshot seals with real Raft - #1290

Merged
bootjp merged 8 commits into
mainfrom
feature/dynamodb-snapshot-seal-acceptance
Oct 22, 2026
Merged

bootjp merged 8 commits into
mainfrom
feature/dynamodb-snapshot-seal-acceptance

Conversation

@bootjp

@bootjp bootjp commented Oct 22, 2026 •

Copy link
Copy Markdown
Owner

Current disposition

Current HEAD 4c512215c53c43382f4845776d221108ce26efa9 incorporates reviewed main through b086203e, including #1286, #1293, #1279 and #1233. The final merge commit is signed/GitHub Verified as bootjp contact@bootjp.me. Snapshot-seal/write-error and encryption-budget race tests passed twice (adapter 10.612s, encryption 1.882s); differential lint reports zero issues after integration. Final-head CI and the explicitly requested post-push code review are required before ready/merge; prior-head approvals are not treated as current approval. The acceptance-specific runtime changes remain those already described below. The managed CodeQL check on the previous head remained in progress despite its workflow reporting success, and GitHub rejected both job/workflow retry requests; no check-status override or empty commit was used.

This is not a design-completion or production-stability claim. Additional encrypted snapshot-interval-20 stress found a consistency failure outside the short successful historical CI. Exact committed-WAL replay identified the same-key/same-commitTS false-replay bug fixed by #1286; #1293 separately fixes the compacted-log encryption startup guard using verified snapshot evidence. Both prerequisite fixes are now merged and included through main. The historical failures and bounded integration results below are retained; recovery of legacy snapshots without witnesses and operational rollout remain separate work.

Scope and dependency

The documentation prerequisite #1287 and seal protocol #1259 are merged. The base is now main; this PR does not reimplement their protocol. The runtime prerequisites #1286 and #1293 are also merged and incorporated through main.

Rechecked all 36 open PRs and the 35 most recent merged PRs before publishing. No other seal acceptance PR exists. #1229 touches a different item-write section; its admin implementation is unchanged. Parent/other work in #1090/#1222/#1224/#1232/#1245/#1280 and shared test support is not modified.

Changes

  • Add real three-voter Raft delayed-write/leader-transfer regression with follower HTTP ingress and no HTTP leader map. Pause the second transaction after seal/plan but before commit. Separately require old-commit rejection and seal-key rejection of a stale read plan with a fresh post-seal commit timestamp, so Fix lost Redis appends during Raft leader handoff #1286's global timestamp fence cannot mask the seal assertion. Preserve both appends in both cases.
  • Repeat with two independent durable data groups at table-route granularity and assert both groups seal at the same R.
  • Force durable Raft snapshot, reopen the same directory with an empty FSM, verify exact seal restoration, reject stale planning, then accept a fresh append. This is an in-process cold engine/FSM restart; an OS-process restart remains separate evidence.
  • Add an opt-in local Jepsen workload reusing the existing append workload and a recorded/verified leadership-transfer nemesis. Reject zero verified transfers or any nemesis failure. Run it without HTTP leader maps in encryption on/off CI and retain its history/revision artifact even on success.
  • Add constant-size real-Raft single-voter benchmarks for independent buckets, hot item and actual digest collisions.
  • Fix two gaps reproduced by those tests: restore known forwarded OCC conflict/transaction-lock classification at DynamoDB dispatch boundaries (retain exact-ts dedup), and keep an omitted DynamoDB HTTP map empty instead of synthesizing a broken self-only map. Explicit maps are unchanged; Redis/S3/SQS map generation and shared retry predicates are unchanged.
  • Addressed review P1 in 2205e678: reset jepsen_append once in DB setup before any clients recreate it, so preceding append histories cannot contaminate the seal check. Reset failures fail setup closed. Addressed P2 with strict forwarded-lock recognition and actual item/transaction retry regressions.
  • Follow-up 8db0155d addresses seal-dispatch normalization and the encrypted CI CreateTable conflict: all eleven DynamoDB write dispatch sites now normalize known wire failures, including schema/migration/cleanup. Eight read-timestamp calls share one wrapper without changing voucher behavior; leader-issued seals and raw cleanup retain their original dispatch paths. Added wire seal conflict/lock retries, injected CreateTable conflict recovery, and nine-client real-Raft follower table setup (five race-enabled repetitions passed).

Audited all callers using rg: three commitItemWrite callers, one runTransactWriteAttempt caller, and runtime configuration's buildLeaderDynamo caller.
The follow-up audit covers every DynamoDB write dispatch: eight read-timestamp calls, one leader-issued seal, and two direct cleanup calls. No shared SQS predicate or Raft timestamp semantics were changed.

Verified locally

  • go test -race ./adapter -run '^TestDynamoDBSnapshotSealRealRaft': three regressions passed; five-repeat run passed. The leader-change test subsequently passed ten race-enabled repeats after fixing its wait for leader propagation.
  • go test -race ./adapter -run 'Test(ItemWriteDedup|DynamoDB|OnePhaseDedup)' -count=1: passed.
  • go test . -run '^TestBuildLeaderDynamoWithoutHTTPMap$' -count=1: passed.
  • Scoped main/adapter lint under the repository's Go 1.26.6: zero issues.
  • lein -o test: 209 tests, 586 assertions, zero failures/errors after initializing the existing Redis submodule, including table-reset regressions.
  • Local separate-process 3-node Jepsen, HTTP leader map disabled, 15 seconds/rate 30/concurrency 9/max txn 4/transfer interval 2s: append valid, five verified leader changes, zero failed transfers, overall valid? true. History: 20261022T231204.299+0900 retained in the acceptance worktree's Jepsen store.
  • Benchmark (100 operations/sample, three samples, four frontends): independent 9.75-10.27ms/op and 1 seal/op; hot item 21.10-22.90ms/op and 2.46-2.72 seals/op; collisions 21.70-23.05ms/op and 2.59-2.62 seals/op. All measured operations completed. Single-voter/in-memory MVCC plus durable Raft, not production throughput or a before/after seal-free delta.
  • OS-process snapshot/restart at 69f2d932: snapshots 401/402/402 retained across all three processes reopening from their original directories; term 8 -> 9, all 17 items unchanged.
  • Review-fix validation: prior 5-second append -> 15-second seal acceptance on the same three processes passed with six verified leader changes / zero failures / overall valid; subsequent same-directory process restart preserved all 30 items. Histories: 20261022T233318.774+0900 and 20261022T233334.075+0900. The new reset setup prevents history contamination.
  • Latest dispatch-fix validation: complete DynamoDB/dedup race selection passed (18.816s); real follower concurrent CreateTable passed five race repetitions (8.309s); targeted wire seal/schema cases passed (3.217s); main/adapter lint has zero issues.

Not claimed / pending

  • Full local Go suite is not a pass: existing macOS FUSE Statfs_t.Namelen compile failure, an unrelated backup renewal deadline failure, and a transient vet failure from editing the test during that broad run. The latter is corrected and covered by subsequent target execution. Full Linux CI is required.
  • The default commit hook uses a locally incompatible Go 1.27 lint invocation. It was bypassed for this signed commit only after scoped lint passed with Go 1.26.6; no hook/configuration files were changed. Full lint remains a CI gate.
  • Initial stress attempts and the first nemesis run failed; those are not counted as passes. The final ten-repeat test and verified-transfer Jepsen run above are separate, successful executions.
  • Prior-head code/security reviews and all required CI were successful. Historical CI evidence at f432933c: Ubuntu race tests, Jepsen off/on, lint, build. These short runs do not override the additional stress failure below.
  • The first local Linux full-suite attempt ran as root and failed an existing permission-denial test whose chmod assumption requires an unprivileged user; it is not counted as a pass. The current immutable-commit Linux execution uses a non-root UID. No unrelated test was changed to make the environment pass.
  • The non-root local Linux full run at 8db0155d also is not a pass: an unchanged SQS FIFO visibility test failed under the full load. It passed 20 isolated Linux repetitions (32.077s). The full Ubuntu CI separately passed. SQS code was not changed to hide this result.

Outstanding acceptance findings

  • Local encrypted three-process stress at 8db0155d, snapshot interval 20, preceding append history followed by a fresh table reset, 15-second seal workload / rate 30 / concurrency 9 / six verified transfers: overall valid? false, G-single-item-realtime / G1c-realtime. History 20261022T235149.907+0900 is retained with logs under the acceptance Jepsen store and /private/tmp/elastickv-seal-jepsen-FpXSbX/. An acknowledged append 37 to key 16 was absent from a later successful read that included 46. No success is claimed for this run.
  • A diagnostic build combining the existing Fix lost Redis appends during Raft leader handoff #1286 (78cab1ba) with 8db0155d passed one identical encrypted workload with six verified transfers. This suggests overlap, not a causal proof or completed stress campaign. It was built in a separate uncommitted diagnostic worktree; no Fix lost Redis appends during Raft leader handoff #1286 implementation was copied into this PR or modified. Evidence shared on #1286.
  • That combined run's subsequent same-directory encrypted restart failed: the encryption startup guard tried to scan Raft entries (6, 877] from MemoryStorage after compaction and refused startup. The final 8db0155d binary also reproduces that startup-guard failure on the retained diagnostic data, without the Fix lost Redis appends during Raft leader handoff #1286 patch. Logs remain under /private/tmp/elastickv-seal-jepsen-dscUKN/. Plaintext restart successes above must not be generalized to this encrypted case.

Follow-up diagnosis and bounded integration

  • Exact retained-WAL replay from index1/term1 proves the original missing37: entry371 writes list ending43; distinct entry372 attempts list ending37 at the same key and commitTS117485124856709124. Baseline8db returns nil without storing37; existing Fix lost Redis appends during Raft leader handoff #1286 rejects the same entry with WriteConflict. Signed regression-only commit d23ab8a on Fix lost Redis appends during Raft leader handoff #1286 covers plaintext/encrypted stores, legitimate replay, and fresh retry; baseline fails and fixed race count10 passes. Original failure histories above remain valid failures.
  • fix: verify encryption snapshot checkpoints before gap scans #1293 is separate and does not disable the guard: snapshot-header/state witness and full physical payload verification cover only proven compacted state; authenticated retained-tail scans, epoch checks, stale/mismatched metadata negative controls, and fail-closed legacy handling remain. Actual DEK rotation strictly after the snapshot passed both a cold-start-skip restart and a subsequent compacted restart, preserving26 items. No legacy recovery or safe old-binary downgrade is claimed.
  • Isolated integration of Fix lost Redis appends during Raft leader handoff #1286 d23ab8a + this acceptance + fix: verify encryption snapshot checkpoints before gap scans #1293 753e121 passed three encrypted 3-process runs, each45s/rate60/concurrency12/maxTxn4/snapshot20/no HTTP leader map, each20 verified leader transfers/zero nemesis failures/append valid. Each subsequent all-three-process same-directory restart preserved exact contents (39/63/32 items). Evidence: /private/tmp/elastickv-seal-stability-UySI2q/{results.jsonl,1.log,2.log,3.log}. Seeds were not recorded; this is parameter-matched stochastic evidence, not identical-seed replay or production stability proof.
  • Two extended runs at120s with the same remaining parameters passed consistency,51/49 verified transfers, zero nemesis failures, and all-process in-place restart preserving62/79 items. Evidence: /private/tmp/elastickv-seal-stability-OEaJJg/{results.jsonl,1.log,2.log}. Five successful local integration stress/restart repetitions total160 verified transfers; no production long-term stability claim follows.
  • The integrated Go race test initially failed the old seal-key-only assertion because the global fence correctly rejected the old commit first. a0f5506 retains that conflict assertion and adds a distinct fresh-commit/stale-read case that must fail on the seal key. Standalone leader-change race count5, standalone SnapshotSeal race count3, and integrated targeted cross-package race tests passed; scoped adapter lint reports zero issues. No Fix lost Redis appends during Raft leader handoff #1286/fix: verify encryption snapshot checkpoints before gap scans #1293 runtime implementation or PR base dependency was copied here.

Historical acceptance and #1293 code/security reviews and CI were successful. Runtime fix integration through their normal PR prerequisites is now complete. Final-head review/CI must still pass before merging this PR; operational rollout and legacy recovery remain separately unproven. The overall design/operational acceptance is not complete.

Author: bootjp

@coderabbitai

coderabbitai Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 32 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: f1417687-9073-427f-894a-9488eebe4933
📥 Commits

Reviewing files that changed from the base of the PR and between b086203 and 4c51221.

📒 Files selected for processing: 15
  • .github/workflows/jepsen-test.yml
  • adapter/dynamodb_item_write.go
  • adapter/dynamodb_locks.go
  • adapter/dynamodb_migration.go
  • adapter/dynamodb_schema.go
  • adapter/dynamodb_snapshot_seal_benchmark_test.go
  • adapter/dynamodb_snapshot_seal_raft_test.go
  • adapter/dynamodb_transact.go
  • adapter/dynamodb_write_error.go
  • adapter/dynamodb_write_error_test.go
  • docs/design/2026_10_11_partial_dynamodb_snapshot_seal.md
  • jepsen/src/elastickv/dynamodb_seal_workload.clj
  • jepsen/test/elastickv/dynamodb_seal_workload_test.clj
  • main.go
  • main_dynamodb_follower_test.go
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@bootjp

bootjp commented Oct 22, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-22T19:59:44.494679Z 4c51221 Draft marked ready
🔒 Security Review ✅ Completed 2026-10-22T20:00:00.308706Z 4c51221 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review · Automatically triggered

Security review completed. No security issues were found in this pull request.

Reviewed commit: 69f2d932d0

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@bootjp

bootjp commented Oct 22, 2026

Copy link
Copy Markdown
Owner Author

Additional execution evidence at 69f2d93: the final three real-Raft regressions passed five race-enabled repetitions (27.061s). A second three-process Jepsen run with ELASTICKV_RAFT_SNAPSHOT_COUNT=20 passed with six verified leader changes and no failed transfers. All three processes were then stopped and reopened from the same data directories: snapshot indices 401/402/402 survived, the term advanced from 8 to 9, and all 17 DynamoDB items matched the pre-restart scan. Raw histories/results and before/after status+items are retained locally. These are local execution results, not a claim that the queued Linux CI has passed. The unchanged backup renewal test also passed five isolated repetitions after the broad-run deadline failure.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 69f2d932d0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread adapter/dynamodb_write_error.go Resolved
Comment thread .github/workflows/jepsen-test.yml Resolved
@bootjp

bootjp commented Oct 22, 2026

Copy link
Copy Markdown
Owner Author

Addressed P1 history contamination and P2 forwarded transaction locks in signed/verified commit 2205e67. Added isolated-table DB setup, strict reset error handling, wire lock recognition, and item/transaction retry regressions. Target race tests and scoped lint passed; full Jepsen unit suite: 209 tests / 586 assertions passed. Existing append -> seal acceptance on the same three processes passed with six verified transfers; subsequent same-directory process restart preserved all 30 items. Current-HEAD Linux CI remains the merge gate. @codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review · Automatically triggered

Security review completed. No security issues were found in this pull request.

Reviewed commit: 2205e678f7

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2205e678f7

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread main.go Resolved
@bootjp

bootjp commented Oct 22, 2026

Copy link
Copy Markdown
Owner Author

Signed follow-up 8db0155 normalizes all eleven DynamoDB write dispatch sites: first/subsequent seals, item/transaction commits, schema/migration, and cleanup. This addresses the additional seal-conflict review and the old encrypted CI CreateTable failure. Read-voucher and timestamp selection paths are preserved. Audited all callers; shared SQS predicates unchanged. Full DynamoDB/dedup race tests passed (18.816s); concurrent follower CreateTable with nine clients passed five race repetitions (8.309s); targeted seal/schema wire-retry tests passed; scoped lint: zero issues. @codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Another round soon, please!

Reviewed commit: 8db0155d63

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review · Automatically triggered

Security review completed. No security issues were found in this pull request.

Reviewed commit: 8db0155d63

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@bootjp

bootjp commented Oct 22, 2026

Copy link
Copy Markdown
Owner Author

Additional stress result, not a pass: at 8db0155, a local encrypted three-process run with snapshot interval 20 and six verified leader changes returned append valid? false (G-single-item-realtime/G1c-realtime), history 20261022T235149.907+0900. The preceding append history and reset completed successfully. Existing PR #1286 addresses a potentially overlapping Raft apply/timestamp issue; I am comparing its existing patch in an isolated diagnostic worktree rather than creating a duplicate implementation. No causal conclusion yet. This PR remains draft and the design remains Partial despite the short CI and current-head review successes.

@bootjp

bootjp commented Oct 22, 2026

Copy link
Copy Markdown
Owner Author

Final bounded review-loop checkpoint: HEAD 8db0155 is signed/Verified, code+security review have no findings, and all required CI succeeded, including Ubuntu full tests and encryption off/on Jepsen. Keep draft: the additional encrypted snapshot-20 stress failed; the #1286 diagnostic combination passed one workload but failed encrypted restart. Baseline 8db0155 also reproduces that restart refusal on the retained compacted-log data: startup guard scans (6,877] below MemoryStorage first index. PR body now distinguishes all successes, failures, and remaining acceptance. No duplicate core fix or unrelated PR branch change was made.

@bootjp

bootjp commented Oct 22, 2026

Copy link
Copy Markdown
Owner Author

Final documentation-only commit f432933 records the additional encrypted consistency and compacted-log restart failures in the design itself. Runtime code is unchanged from 8db0155, whose complete CI and code/security review passed. Design remains Partial; no safe-merge/design-complete claim and no duplicate #1286 core implementation. Please review this final evidence reconciliation. @codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. More of your lovely PRs please.

Reviewed commit: f432933c8c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review · Automatically triggered

Security review completed. No security issues were found in this pull request.

Reviewed commit: f432933c8c

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@bootjp

bootjp commented Oct 22, 2026

Copy link
Copy Markdown
Owner Author

Additional stress evidence (no acceptance implementation changes): three alternating pairs at the original 15s/rate30/concurrency9 parameters passed the append checker on both 8db0155 and 8db0155+78cab1ba; all six process restarts still failed on the compacted-history guard. A longer two-pair encrypted matrix (45s/rate60/concurrency12/maxTxn4/leader interval2s, snapshot interval20, no HTTP map) then reproduced consistency failure on one of two baseline runs (G-single-item-realtime/G0-realtime, 20 verified leader changes/no nemesis failures); both combined runs passed their append checkers. Seed was not recorded; these are parameter-matched stochastic repetitions, not identical-seed replay or causal proof. Original append37/key16 failure remains a full-goal blocker. The separate startup guard fix is being developed from main on feature/encryption-compacted-restart-checkpoint; it does not copy #1286 into this PR or authorize skipping legacy compacted history without snapshot evidence.

@bootjp

bootjp commented Oct 22, 2026

Copy link
Copy Markdown
Owner Author

The original append37/key16 failure now has causal evidence, not just one passing comparison: ReadOnly decoding of all three retained Pebble databases found no version containing37. Replaying the exact committed WAL from its valid index1/term1 anchor into fresh Pebble+real FSMs showed entry371/term5 writes list ending43 at commitTS117485124856709124; distinct entry372 attempts list ending37 at the same key/commitTS, StartTS117485124856709122, PrevCommitTS0. Baseline8db returns nil without storing37; the same replay with #1286 rejects372 with WriteConflict. A minimized regression is added ONLY to existing #1286 (signed d23ab8a), fails plaintext/encrypted baseline and passes -race -count10 with the fix, including legitimate replay and fresh retry. No #1286 implementation/dependency change was copied into #1290. Separate guard PR #1293 preserves fail-closed legacy handling and negative controls. The original fatal stress histories remain retained; this is not a claim that the full design/operational goal or all historical recovery work is complete.

@bootjp

bootjp commented Oct 22, 2026

Copy link
Copy Markdown
Owner Author

Signed test-only follow-up a0f5506 separates two real-Raft delayed-write checks: an old commit watermark must conflict (global fence may reject it), and a stale read plan with a fresh post-seal commit timestamp must specifically conflict on the seal key. Neither assertion is removed. This catches seals independently after #1286 integration; no runtime implementation or dependency was copied. Standalone leader-change regression passed five race repetitions; full SnapshotSeal selection passed three race repetitions; isolated #1286+#1290+#1293 targeted race suite passed and scoped adapter lint has zero issues. Separately, three encrypted process stress runs (45s/rate60/concurrency12/maxTxn4, snapshot20, no HTTP leader map) each passed append checking with 20 verified transfers/zero failures, then all-three-process in-place restart preserved 39/63/32 items respectively. Evidence: /private/tmp/elastickv-seal-stability-UySI2q/{results.jsonl,1.log,2.log,3.log}. These bounded integration runs do not erase original failing histories or prove production stability/legacy snapshot recovery. @codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Keep it up!

Reviewed commit: a0f55065ac

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review · Automatically triggered

Security review completed. No security issues were found in this pull request.

Reviewed commit: a0f55065ac

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@bootjp

bootjp commented Oct 22, 2026

Copy link
Copy Markdown
Owner Author

Extended bounded integration campaign also passed: two encrypted 3-process runs at 120s/rate60/concurrency12/maxTxn4/snapshot20/no HTTP map, with 51 and49 verified transfers respectively, zero nemesis failures, append valid, then same-directory all-process restart preserving62 and79 items. Combined with the previous three45s runs this is five successful local stress/restart repetitions and160 verified transfers, not proof of production long-term stability. Runtime combination remains isolated (#1286 d23ab8a + acceptance + #1293 753e121); no base/dependency changes. Seed not recorded. Evidence: /private/tmp/elastickv-seal-stability-OEaJJg/results.jsonl, /private/tmp/elastickv-seal-jepsen-kLFC9P/jepsen.log, /private/tmp/elastickv-seal-jepsen-hfgaOD/jepsen.log. Original red histories remain retained.

Base automatically changed from feature/dynamodb-snapshot-seal-status to main October 22, 2026 17:27
@bootjp

bootjp commented Oct 22, 2026

Copy link
Copy Markdown
Owner Author

Dependency #1287 is now merged. Integrated current main, including the merged Redis handoff and shared test changes, into this branch. New HEAD is f1d02b0; CI has been restarted. Only a review passing on this post-integration HEAD will count for merge. @codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 👍

Reviewed commit: f1d02b0e98

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review · Automatically triggered

Security review completed. No security issues were found in this pull request.

Reviewed commit: f1d02b0e98

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@bootjp

bootjp commented Oct 22, 2026

Copy link
Copy Markdown
Owner Author

@codex review

Integrated the reviewed checkpoint fixes from main into dcd7bf9. Focused snapshot-seal and write-error race tests passed twice; diff lint reports 0 issues. Please review this final pushed HEAD.

@bootjp

bootjp commented Oct 22, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Another round soon, please!

Reviewed commit: dcd7bf960e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review · Automatically triggered

Security review completed. No security issues were found in this pull request.

Reviewed commit: dcd7bf960e

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@bootjp

bootjp commented Oct 22, 2026

Copy link
Copy Markdown
Owner Author

Final signed HEAD 4c51221 incorporates main b086203, including the reviewed encryption write budget and FUSE create/open fixes. This is an actual main merge; no empty CI-refresh commit or check-status override was used. Snapshot seal/write-error and encryption budget race tests passed twice (adapter 10.612s, encryption 1.882s); diff lint reports 0 issues. GitHub verifies bootjp/contact@bootjp.me. Previous dcd7bf9 review is stale for this HEAD.

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Keep them coming!

Reviewed commit: 4c512215c5

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review · Automatically triggered

Security review completed. No security issues were found in this pull request.

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@bootjp
bootjp marked this pull request as ready for review October 22, 2026 19:56
@bootjp
bootjp merged commit accae94 into main Oct 22, 2026
10 checks passed
@bootjp
bootjp deleted the feature/dynamodb-snapshot-seal-acceptance branch October 22, 2026 19:57
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.

1 participant