Skip to content

fix(fec): release incomplete groups after staging exceptions - #72

Merged
nick2781 merged 1 commit into
mainfrom
fix/rudp-input-boundaries
Nov 4, 2026
Merged

nick2781 merged 1 commit into
mainfrom
fix/rudp-input-boundaries

Conversation

@nick2781

@nick2781 nick2781 commented Nov 4, 2026

Copy link
Copy Markdown
Member

An allocation failure during FEC input staging could leave a shard marked present without complete stored bytes, causing a valid retry to be discarded. Release the incomplete recovery group and its retention accounting when internal staging unwinds, while propagating the original exception.

Preserve user delivery-callback exception behavior, public APIs and ARQ/FEC wire formats. Permanent tests cover systematic/parity allocation failures, legal retries with ordered exactly-once ARQ application delivery, and callback exceptions. English and Chinese FEC guidance states the boundary without promising endpoint retries.

Validation: the permanent regression fails against main. Boost and Standalone Asio 1.38.0 each pass the seven existing related checks (76 cases); FEC passes 21 cases under AddressSanitizer plus UndefinedBehaviorSanitizer. Complete clang-format 18/spacing and Nimbus/HTML/Markdown/AI checks pass. Local macOS validation; hosted cross-platform acceptance remains required.

@nick2781
nick2781 added this pull request to the merge queue Nov 4, 2026
Merged via the queue into main with commit e0a0a32 Nov 4, 2026
10 checks passed
@nick2781
nick2781 deleted the fix/rudp-input-boundaries branch November 4, 2026 09:20
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