Skip to content

native: fix OOM on Windows#1603

Draft
jpnurmi wants to merge 4 commits intomasterfrom
jpnurmi/fix/native-oom
Draft

native: fix OOM on Windows#1603
jpnurmi wants to merge 4 commits intomasterfrom
jpnurmi/fix/native-oom

Conversation

@jpnurmi
Copy link
Copy Markdown
Collaborator

@jpnurmi jpnurmi commented Mar 27, 2026

With a testcase that triggers similar OOM exceptions UE does. The test passed with crashpad, but failed with the native daemon because OpenProcess failed on OOM.

Fixes: #1590

@jpnurmi jpnurmi changed the title Jpnurmi/fix/native oom [WIP] native: OOM Mar 27, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 27, 2026

Fails
🚫 Please consider adding a changelog entry for the next release.

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

- fix OOM on Windows ([#1603](https://github.com/getsentry/sentry-native/pull/1603))

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 a874c28

jpnurmi and others added 3 commits March 27, 2026 19:00
Add `oom` argument to the example app that triggers out-of-memory by
allocating in a loop until the OS kills the process. Add integration
tests for both native and crashpad backends, skipped on Linux (OOM
killer sends uncatchable SIGKILL), ASAN, and Valgrind.

Refs: #1590

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Raise an exception (Windows) or write to an invalid address (Unix)
when malloc fails, matching how UE terminates on OOM.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
During OOM, OpenProcess fails because kernel pool memory is exhausted,
causing the daemon to incorrectly conclude the parent is dead. Open the
handle once at startup and reuse it for liveness checks.

Fixes: #1590

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@jpnurmi jpnurmi force-pushed the jpnurmi/fix/native-oom branch from 3d8a973 to 895add7 Compare March 27, 2026 18:29
@jpnurmi jpnurmi changed the title [WIP] native: OOM native: fix OOM on Windows Mar 27, 2026
@jpnurmi jpnurmi force-pushed the jpnurmi/fix/native-oom branch 2 times, most recently from 230c553 to c28264c Compare March 27, 2026 19:52
@jpnurmi jpnurmi force-pushed the jpnurmi/fix/native-oom branch from c28264c to a874c28 Compare March 27, 2026 20:02
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.

Native backend doesn't capture out-of-memory errors

1 participant