fix(native): cache parent process handle to survive OOM crashes on Windows#1603
Merged
fix(native): cache parent process handle to survive OOM crashes on Windows#1603
Conversation
3d8a973 to
895add7
Compare
8b84370 to
56da312
Compare
jpnurmi
added a commit
to getsentry/sentry-unreal
that referenced
this pull request
Mar 30, 2026
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>
22ab77e to
5e12871
Compare
5e12871 to
b6d7dc4
Compare
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
mujacica
approved these changes
Mar 31, 2026
tustanivsky
approved these changes
Mar 31, 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 free
to 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.
On Windows, the crash daemon polled
OpenProcess()each iteration to check if the parent is still alive. During OOM,OpenProcess()failed because kernel pool memory is exhausted, causing the daemon to incorrectly conclude the parent has exited - and shut down before it can capture the crash.Fix: open the parent process handle once at daemon startup and reuse it for liveness checks via
WaitForSingleObject().Tested with sentry-unreal:
Fixes: #1590