Skip to content

Bound Sentry crash-report buffers and drop dead code#1708

Open
summeroff wants to merge 5 commits into
stagingfrom
log_limits
Open

Bound Sentry crash-report buffers and drop dead code#1708
summeroff wants to merge 5 commits into
stagingfrom
log_limits

Conversation

@summeroff
Copy link
Copy Markdown
Contributor

Description

Summary

  • Cap all crash-report buffers — OBS log general (150), Server warnings (50), Last actions (50). Two were previously unbounded.
  • Drop unused OBSLogType::Errors/Warnings paths and the never-called breadcrumbs code; rename ambiguous warningsserverWarnings so it doesn't collide with the libOBS log warning stream.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • Tweak (non-breaking change to improve existing functionality)

Checklist:

  • The code has been tested.
  • All commit messages are properly formatted and commits squashed where appropriate.
  • I have included updates to all appropriate documentation.

summeroff added 5 commits May 22, 2026 10:35
The Errors and Warnings branches of RequestOBSLog were never invoked —
HandleCrash only requests General. The backing deques were filled on
every blog() call but never read, just kept around as dead state.

Collapse the OBSLogType enum, drop getOBSLogErrors/getOBSLogWarnings,
simplify LogReport::push to a single deque, and reduce RequestOBSLog
to its one real path.
The static "warnings" vector and AddWarning/ComputeWarnings shared a
name with libOBS LogReport::warnings (now removed) but held a different
thing: programmatic notes from the server about file-open failures,
encoder failures, and IPC error returns. Rename them to
serverWarnings/AddServerWarning/ComputeServerWarnings and the Sentry
annotation key from "Warnings" to "Server warnings" so a reader can
tell at a glance these are server-detected anomalies, not log lines.

Cap the deque at 50. ProcessPostServerCall fires AddServerWarning on
every IPC error return, so a noisy session could previously grow it
without bound.
AddBreadcrumb, ClearBreadcrumbs, ComputeBreadcrumbs, and the
breadcrumbs static vector were public but never called anywhere — the
"Breadcrumbs" Sentry annotation was always an empty list. Drop the
unused functions, the vector, and the empty annotation.
Spell out what each "log-shaped" annotation represents and where its
cap lives, so a future reader doesn't need to chase three files to
understand what ends up in a crash report.
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