Repository navigation
Bound NE inbox replay and continue acknowledged catch-up - #220
Merged
Merged
Conversation
Contributor
|
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.
An accumulated durable event inbox can kill the Network Extension during startup: replay reads every pending row, then expands the entire batch across Python and Swift JSON representations. A captured 12,604-event backlog repeatedly exceeded the kernel's 50 MB limit before acknowledgment, leaving the same backlog to replay on every restart.
Bound each page to 128 events and 256 KiB of event JSON, then continue catch-up after acknowledgment until the inbox is empty. Failed acknowledgments retry after a delay, and generation checks prevent stopped workers from continuing or disturbing a restarted worker. Malformed or oversized rows retain their original payloads in SQLite quarantine and return small cursor-bearing markers so they cannot block the queue.
Validation: