Skip to content

[ci-flake] android-harness-native-crash — off-thread data-binding SIGSEGV #308

Description

@mfazekas

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

Occurrence log

  • 2026-06-29 — test-harness-android — intermittent "App bridge disconnected" = native heap-corruption SIGSEGV (reproduced locally ~1-in-10 runs)
  • 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.

Reproduction

  • Page: example/src/reproducers/Issue297ThreadRace.tsx (toggleable concurrent access).
  • 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    ci-flakeIntermittent CI failure tracked via the flake-triage processci-flake:activeFlake still recurring; no permanent guard yet

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions