Skip to content

fix: harden core onchain sync#1015

Merged
ovitrif merged 2 commits into
masterfrom
fix/android-crash-bionic
Jun 15, 2026
Merged

fix: harden core onchain sync#1015
ovitrif merged 2 commits into
masterfrom
fix/android-crash-bionic

Conversation

@ovitrif

@ovitrif ovitrif commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator

Fixes #982

This PR bumps Android from bitkit-core-android 0.1.67 to 0.1.72 so production builds consume the upstream core hardening that broadened the native on-chain blocking-task error boundary.

Description

The new Play Vitals trace from 2.3.0 still reports the crash from split_config.arm64_v8a.apk. Translating the Play split PCs against the 2.3.0 AAB maps every app frame into libbitkitcore.so, with the top app frame at libbitkitcore.so +0x84b468.

The first mitigation in #989 consumed synonymdev/bitkit-core#95, which guarded the single-address lookup path. bitkit-core 0.1.72 includes that fix plus the follow-up core release chain that applies the same guarded on-chain blocking boundary across account info, transaction history, and transaction detail work. It also comes from the native-symbol release chain being finalized in #988, so future release builds can keep usable native debug metadata once #988 lands.

Note

This PR is a credible interim fix for the likely observed crash path because it pulls in the bitkit-core work that wrapped the account-info/on-chain blocking panic boundary. But it does not let us say rust-side panics from bitkit-core can no longer take down Android. For that stronger claim, the certain fix would be a PR to close:

Preview

N/A

QA Notes

Manual Tests

  • 1. Mainnet wallet → foreground sync: balances and on-chain wallet data load without a native crash.
  • 2. regression: Receive → copy/show on-chain address → Home: receive flow still works.
  • 3. regression: Send → prepare on-chain send with standard fee: fee estimate and confirmation flow still work.

Automated Checks

  • GITHUB_TOKEN=$GITHUB_PAT just compile
  • GITHUB_TOKEN=$GITHUB_PAT just test
  • GITHUB_TOKEN=$GITHUB_PAT just lint
  • just lint completed successfully while printing existing detekt findings in TrezorViewModel, AppViewModel.handleScan, and SupportScreen import ordering.

@ovitrif ovitrif requested a review from piotr-iohk June 15, 2026 12:41
@greptile-apps

greptile-apps Bot commented Jun 15, 2026

Copy link
Copy Markdown

Greptile Summary

Bumps bitkit-core-android from 0.1.67 to 0.1.72 to consume five upstream core releases that broaden the native on-chain blocking-task error boundary, addressing a production crash surfaced in Play Vitals for the 2.3.0 build.

  • Version bump (gradle/libs.versions.toml): increments com.synonym:bitkit-core-android by five patch versions; all other dependencies are unchanged.
  • Changelog entry (changelog.d/next/982.fixed.md): adds a user-facing release note for the on-chain sync hardening.

Confidence Score: 5/5

Safe to merge — this is a targeted dependency bump that brings in upstream crash-fix releases with no other dependency changes.

The change is a single version-string update in the version catalog. The five intermediate patch releases all harden the same on-chain error boundary that was already partially fixed in the prior PR. No API surface in the Android app is changed, no migrations are involved, and the changelog entry is accurate. The QA checklist in the PR description covers the three critical on-chain flows (sync, receive, send).

No files require special attention.

Important Files Changed

Filename Overview
gradle/libs.versions.toml Single-line version bump of bitkit-core-android from 0.1.67 to 0.1.72; no other dependency changes.
changelog.d/next/982.fixed.md New changelog entry accurately describing the on-chain sync hardening improvement.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[On-chain Sync Request] --> B{Core Version?}
    B -- "0.1.67 (before)" --> C[Single-address lookup guarded\nvia bitkit-core#95]
    B -- "0.1.72 (after)" --> D[Single-address lookup guarded\nvia bitkit-core#95]
    C --> E[Account info work\nUnguarded ⚠️]
    C --> F[Transaction history work\nUnguarded ⚠️]
    C --> G[Transaction detail work\nUnguarded ⚠️]
    D --> H[Account info work\nGuarded ✅]
    D --> I[Transaction history work\nGuarded ✅]
    D --> J[Transaction detail work\nGuarded ✅]
    E & F & G --> K[Native crash in libbitkitcore.so\n0x84b468]
    H & I & J --> L[Error boundary catches failure\nNo crash]
Loading

Reviews (1): Last reviewed commit: "chore: rename changelog fragment" | Re-trigger Greptile

@ovitrif ovitrif self-assigned this Jun 15, 2026
@ovitrif ovitrif added this to the 2.4.0 milestone Jun 15, 2026
@ovitrif ovitrif enabled auto-merge June 15, 2026 12:59
@ovitrif ovitrif merged commit 99935dc into master Jun 15, 2026
41 of 45 checks passed
@ovitrif ovitrif deleted the fix/android-crash-bionic branch June 15, 2026 16:47
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.

[Bug]: Production SIGABRT in arm64 native code (Play 2.2.0 / build 181)

2 participants