Requested by: @runningcode
Merge target: (default)
Quick links:
Assign the accepted label to this issue to approve the release.
Targets
Checked targets will be skipped (either already published or user-requested skip). Uncheck to retry a target.
📋 Changelog
Fixes
- Restore the interrupt flag when cached envelope processing is interrupted between files (#5884)
- Prevent inflated cold app start when the OS spawns the process in the background (e.g. FCM push) on API 35+ (#5841, #5880)
- Preserve single-sample ANR profile chunks so profiles remain available on ANR events (#5872)
- Avoid a CPU busy-loop when recording discarded log or metric envelopes under rate limiting (#5835)
ClientReportRecorder now reads the item count from the envelope item header instead of deserializing the payload, which under sustained rate limiting could pin CPU cores while repeatedly throwing exceptions
- Report tasks handed to a no-op
ISentryExecutorService as cancelled (#5874)
NoOpSentryExecutorService previously returned a Future that was never run and never cancelled, so callers could not tell a dropped task from a queued one and get() would block until its timeout
Performance
- Defer
Choreographer reflection for frame metrics collection to avoid blocking the main thread during Sentry.init (#5886)
- Avoid waiting up to
shutdownTimeoutMillis when closing the SDK with a pending transaction timeout or session-end task (#5851)
- Use
RGB_565 instead of ARGB_8888 for screenshot and replay capture bitmaps, halving per-frame memory usage (#5821)
- Remove an unused lock from
SentryPerformanceProvider, which was allocated on every cold start in ContentProvider.onCreate without ever being acquired (#5871)
- Reduce main-thread allocations when parsing the app start profiling config (#5867)
- Batch and coalesce scope-persistence disk writes to reduce startup cost (#5791)
- Scope mutations are now coalesced (latest value per field) and breadcrumbs are appended in batches behind a single fsync, instead of one synchronous disk write per mutation.
- Reduce the number of SDK threads: the
HostnameCache worker thread now times out while idle instead of staying alive for the whole process lifetime (#5817)
Dependencies
- Bump Native SDK from v0.16.0 to v0.16.1 (#5879)
Requested by: @runningcode
Merge target: (default)
Quick links:
Assign the accepted label to this issue to approve the release.
Targets
Checked targets will be skipped (either already published or user-requested skip). Uncheck to retry a target.
📋 Changelog
Fixes
ClientReportRecordernow reads the item count from the envelope item header instead of deserializing the payload, which under sustained rate limiting could pin CPU cores while repeatedly throwing exceptionsISentryExecutorServiceas cancelled (#5874)NoOpSentryExecutorServicepreviously returned aFuturethat was never run and never cancelled, so callers could not tell a dropped task from a queued one andget()would block until its timeoutPerformance
Choreographerreflection for frame metrics collection to avoid blocking the main thread duringSentry.init(#5886)shutdownTimeoutMilliswhen closing the SDK with a pending transaction timeout or session-end task (#5851)RGB_565instead ofARGB_8888for screenshot and replay capture bitmaps, halving per-frame memory usage (#5821)SentryPerformanceProvider, which was allocated on every cold start inContentProvider.onCreatewithout ever being acquired (#5871)HostnameCacheworker thread now times out while idle instead of staying alive for the whole process lifetime (#5817)Dependencies