You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Signature:android-harness-native-crash Regex: (SIGSEGV | bridge disconnected | global reference table overflow) in the harness test step Category: product-bug First seen: 2026-06-29 · Last seen: 2026-07-06
2026-07-06 — production (Discord, Sentry DISCORD-ANDROID-3NFN) — SIGSEGV in rive::DataBindContainer::updateDataBinds via cppAdvance; fixed on their side by rive-android 11.6.2 (see comment below; mitigation fix(android): bump rive-android to 11.6.2 #317)
Hypothesis
This is a real bug, not infra — do not just re-run it. The Rive data-binding runtime is accessed off the main thread (via Promise.async / the JS thread) without synchronization, corrupting the native heap. #298 fixed only the Java listener-map ConcurrentModificationException, not the underlying off-thread native access. Related: #297 / #298.
Run the Android harness under stress; reproduces ~1-in-10. Confirm on iOS under TSan (rn-harness.config.mjs sets TSAN_OPTIONS halt_on_error=0) — 25 races observed previously.
Mitigation
Serialize all Rive runtime access to a single thread (or add native locking) so data-binding reads/writes never run off-main concurrently.
Closing criterion (guard)
Native access is made thread-safe and a *.harness.tsx stress guard reproduces the old crash on an unfixed build / passes on the fixed one → move to ci-flake:resolved.
Tracked via CI Flake Triage. This issue is intentionally closed — it is a ledger entry, not open work.
Signature:
android-harness-native-crashRegex: (
SIGSEGV|bridge disconnected|global reference table overflow) in the harness test stepCategory: product-bug
First seen: 2026-06-29 · Last seen: 2026-07-06
Occurrence log
test-harness-android— intermittent "App bridge disconnected" = native heap-corruption SIGSEGV (reproduced locally ~1-in-10 runs)rive::DataBindContainer::updateDataBindsviacppAdvance; fixed on their side by rive-android 11.6.2 (see comment below; mitigation fix(android): bump rive-android to 11.6.2 #317)Hypothesis
This is a real bug, not infra — do not just re-run it. The Rive data-binding runtime is accessed off the main thread (via
Promise.async/ the JS thread) without synchronization, corrupting the native heap. #298 fixed only the Java listener-mapConcurrentModificationException, not the underlying off-thread native access. Related: #297 / #298.Reproduction
example/src/reproducers/Issue297ThreadRace.tsx(toggleable concurrent access).rn-harness.config.mjssetsTSAN_OPTIONS halt_on_error=0) — 25 races observed previously.Mitigation
Closing criterion (guard)
Native access is made thread-safe and a
*.harness.tsxstress guard reproduces the old crash on an unfixed build / passes on the fixed one → move toci-flake:resolved.Tracked via CI Flake Triage. This issue is intentionally closed — it is a ledger entry, not open work.