Repository navigation
fix(storage): signed module maintenance and paged file traversal - #58
Merged
Merged
Conversation
Feargin
marked this pull request as ready for review
October 22, 2026 18:54
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
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Signed stores are now available for scrub and rehome planning. The file listing uses a bounded paginated traversal preserving order and cursors.
The initial full recount of module-data no longer blocks opening the store: reading is available during recovery. An unknown usage is returned as busy. Writes wait for the protected restoration of the durable ledger and go through the previous quotas; a preparation failure closes writing. Shutdown cancels the traversal and waits for operations already started. ADR 0090 and the documentation with translations describe the contract.
On 0eac6db, static/typechecks, 1251 unit tests, docs and 6 PostgreSQL resource-catalog scenarios (including pins, fencing and unlink retry) were checked. A real signed module on the preserved set of 4 million chunks passed core-scale-startup: backup 10.85 s, worker 2.50 s including reading and SHA-256; both processes stopped cleanly. The standard 30 s budget was not increased. Writing on a large set remains closed until the full background recovery completes.
Earlier, on 631f3d9, integration (449), the Pro operational scenarios and a physical pass over 4 million chunks passed. These heavy checks were not run again. A full verify/release after the current fix is not claimed; the current CI is running. The owner permitted merging #58 after the checks.
The protected Windows Pro core-e2e on 0eac6db — passed, including the shared GC, licences, delta recovery and restoring a backup into an installation without modules.
CI for 0eac6db revealed a startup contention in the accounting of two hosts. Fixed in 43176ff: bounded cancellable retries only before entering the lock, without repeating mutations. The targeted module-data-recovery gate — 9/9; formatting/typecheck passed, the lint finding is resolved and the file was checked. New CI: 39835468506. The previous CI with the failure was cancelled as stale, successful jobs were not manually restarted.
Final commit bde1a3e: a separate step of the new gate preserves the verifiable integration command. The targeted gate together with the policy — 22/22. The product code matches 43176ff; current CI 39836514685. The owner's permission to merge #58 was received in chat.
Result: CI 39836514685 completed with success, including all HA and the final merge gate. The second attempt repeated only the two unfinished HA jobs after a slow download of Ubuntu packages; the 24 successful results were kept. The PR was merged with the owner's permission, merge 2ff0bf6.