Skip to content

chore: integrate deterministic ldk runtime shutdown#1206

Description

@ovitrif

Summary

Integrate the reviewed ldk-node release that deterministically owns and shuts down its Tokio runtime, then validate the production fix for #982.

Blocked by synonymdev/ldk-node#110 and its reviewed release. Keep this issue in 馃搵 To do until that release is available.

Parent epic: #986.

Integration scope

  • Update only the ldk-node-android dependency to the reviewed release.
  • Keep the current LightningService.stop(), explicit destroy(), and node-release gate.
  • Preserve all public mobile APIs and wire formats.
  • Add or update LightningServiceTest coverage for successful release, delayed release, and rebuild gating if the released artifact changes observable teardown timing.
  • Add one Android hotfix changelog fragment for the user-facing crash fix.
  • Run just compile, just test, and just lint.
  • Stress a release build for at least 100 start/background/foreground/stop/rebuild cycles under network loss and delayed Electrum/VSS responses.
  • Verify the APK native Build ID matches the uploaded symbol archive.

Production acceptance

Keep #982 open through a staged rollout. Monitor the fixed version separately from builds 187/188 and require at least seven days with exposure comparable to 2.4.1's initial observation window:

  • Zero occurrences of Cannot drop a runtime in a context where blocking is not allowed.
  • Zero occurrences of A Tokio 1.x context was found, but it is being shutdown.
  • No increase in node-release timeouts.
  • No increase in startup or overlapping-node prevention failures.

Acceptance criteria

  • The reviewed ldk-node release from fix: make owned runtime shutdown deterministic聽ldk-node#110 is available.
  • Android consumes only the new ldk-node-android artifact.
  • Required unit, compile, lint, and release stress checks pass.
  • The native Build ID and symbol archive match.
  • The staged production observation window meets the criteria above.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions