Uh oh!
There was an error while loading. Please reload this page.
fix(codecs): [OBE-11235] bound GELF chunked reassembly by default - #141
Merged
ajayshekar-s1 merged 2 commits intoAug 11, 2026
Merged
Conversation
The chunked GELF framer tracked incomplete messages with no cap on either the number of concurrent message ids or the size of one reassembled message, so a sender could grow the reassembly map without limit. Defaults are chosen above what the wire format can produce, so a well-formed sender never reaches them: - max_length 8 MiB. The protocol caps a message at 128 chunks (GELF_MAX_TOTAL_CHUNKS) x the 65507-byte max UDP payload, so no valid message can exceed ~8.4 MB. Graylog's own decompress_size_limit default is also 8 MiB. - pending_messages_limit 10000. Graylog Server has no cap here at all, relying purely on its 5s reassembly timeout, so this is sized well above what a legitimate sender holds in flight inside that window. Both errors are per-message and keep can_continue() == true, so one bad sender cannot drop messages multiplexed over the same connection. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
ajayshekar-s1
approved these changes
Aug 11, 2026
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 freeto 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.
What
pending_messages_limitnow defaults to 10000 andmax_lengthto 8 MiB. Both were unlimited, so a sender could grow the reassembly map without bound.Why these values
Both sit above what the wire format can produce, so a well-formed sender never reaches them:
GELF_MAX_TOTAL_CHUNKS) × the 65507-byte max UDP payload, so no valid message exceeds ~8.4 MB. Graylog's owndecompress_size_limitdefault is also 8 MiB.Both errors are per-message and keep
can_continue() == true, so one bad sender cannot drop messages multiplexed over the same connection.Testing
cargo test -p codecs --lib decoding::framing::chunked_gelf— 34 passing.Jira: OBE-11235