Skip to content

test(e2e): disable GWP-ASan in AndroidApp to avoid Hermes x86_64 crash - #504

Merged
hurali97 merged 1 commit into
callstack:mainfrom
KisaneNeko:fix/android-e2e-disable-gwp-asan
Oct 19, 2026
Merged

hurali97 merged 1 commit into
callstack:mainfrom
KisaneNeko:fix/android-e2e-disable-gwp-asan

Conversation

@KisaneNeko

@KisaneNeko KisaneNeko commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Refs #499

Problem

The Android Expo E2E jobs sometimes crash with a native SIGSEGV. Over the last week this happened in 2 of 36 completed Expo jobs, and the failure shows up as "Detox can't connect to the app". Both crashes have the same stack:

#00 libc.so  android_unsafe_frame_pointer_chase
#01 libc.so  gwp_asan::AllocationMetadata::CallSiteInfo::RecordBacktrace
#02 libc.so  gwp_asan::GuardedPoolAllocator::deallocate
#03..       libhermesvm.so
#12         libhermesvm.so (hoost_make_fcontext)

This is a known Hermes V1 issue on x86_64: facebook/hermes#1873 and facebook/hermes#2225. GWP-ASan samples a free() that runs on a Hermes fiber stack. Its stack walker then follows a bad frame pointer into unmapped memory and crashes. It isn't a memory bug in the app.

The upstream fix (facebook/hermes@73f9af39) is in Hermes 260318099.x. Our Expo 58 build already ships 260318099.0.3 (I matched the Build ID from the crash log) and still crashed, so upgrading Hermes isn't enough.

Change

Set android:gwpAsanMode="never" on the AndroidApp <application>, with a comment linking the Hermes issues. This only turns off GWP-ASan sampling for the example app.

Notes

  • This is separate from test(e2e): hide ANR dialogs on the Android E2E emulator #501, which fixes the ANR dialog failures.
  • The crash rate is ~6%, so a few green runs won't prove much on their own. This PR rests on the upstream analysis, not on a CI A/B test.
  • Revisit once Hermes ships a fix that also covers 260318099.x.

Expo E2E jobs sometimes crash with SIGSEGV inside GWP-ASan's frame-pointer
walker (android_unsafe_frame_pointer_chase) while Hermes frees memory on a
fiber stack. This is a known Hermes V1 issue on x86_64
(facebook/hermes#1873, facebook/hermes#2225), not a memory bug in the app.
The upstream fix (73f9af39) is in Hermes 260318099.x, but Expo 58 already
ships 260318099.0.3 and still crashed, so disable GWP-ASan for the example app.

Refs callstack#499
@KisaneNeko
KisaneNeko marked this pull request as ready for review October 19, 2026 08:23
@hurali97
hurali97 merged commit 5aa76a4 into callstack:main Oct 19, 2026
13 checks passed
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