Skip to content

Conversation

@JoshuaMoelans
Copy link
Member

@JoshuaMoelans JoshuaMoelans commented Dec 5, 2025

Heavily Work In Progress/exploratory

Current Implementation

For now, we just add an option to write .dmp files to disk for Breakpad, allowing easier local debugging (since we only store up to 20 dumps per issue on Sentry, and to be useful these need debug symbols uploaded which during development doesn't happen).

Tried Approaches

'developer caching'

Although this seems versatile, this opens up more complexity (without adding that much value).

  • For inproc/breakpad, we write .run directories into .sentry-native/cache upon restart (while processing old runs) instead of removing them. We periodically clean this folder based on size/age, similar to how Crashpad does this
  • Additionally, whenever breakpad would write a minidump (which otherwise gets merged into the envelope), we keep this on disk too.
  • We provide cache_max_age and cache_max_size for controlling the periodic cleanup.

TODO

  • look into caching for Crashpad .dmp file (not getting stored in the .run directory)
    -> currently seems like one could look into .sentry-native (or other configured database_path) and look at the completed folder to see previous crash dump files.
  • add tests
  • think about offline caching for offline devices; we currently try to send, but if we fail there is no backup sending (except for Crashpad); in inproc/breakpad, we just hand the envelope to the transport and say GLHF... . How could we (/should we?) provide feedback for failed sends (and make these actionable)? -> maybe out of scope for this first implementation.

@github-actions
Copy link

github-actions bot commented Dec 5, 2025

Fails
🚫 Please consider adding a changelog entry for the next release.
Messages
📖 Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Instructions and example for changelog

Please add an entry to CHANGELOG.md to the "Unreleased" section. Make sure the entry includes this PR's number.

Example:

## Unreleased

### Features

- (POC) offline caching ([#1461](https://github.com/getsentry/sentry-native/pull/1461))

If none of the above apply, you can opt out of this check by adding #skip-changelog to the PR description or adding a skip-changelog label.

Generated by 🚫 dangerJS against 85ccfea

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.

2 participants