v1.9.1-beta01: Fix synchronizer stop, scan loop, and SQLite isolation

- Fix SdkSynchronizer.stop() race condition: use synchronous scope.cancel()
  instead of async self-cancellation that never completed
- Fix scan loop: scan once after all downloads complete instead of per-batch
- Use fresh SQLiteDatabase connection for getLastScannedHeight() to avoid
  reading stale Room-cached values
- Bump version to 1.9.1-beta01
- Update Cargo dependencies
This commit is contained in:
2026-03-24 16:50:15 -05:00
parent e8a2d3ebc9
commit 939477a7a3
6 changed files with 239 additions and 36 deletions

74
sdk-lib/Cargo.lock generated
View File

@@ -341,10 +341,10 @@ checksum = "69323bff1fb41c635347b8ead484a5ca6c3f11914d784170b158d8449ab07f8e"
dependencies = [
"cfg-if 0.1.10",
"crossbeam-channel",
"crossbeam-deque",
"crossbeam-epoch",
"crossbeam-deque 0.7.4",
"crossbeam-epoch 0.8.2",
"crossbeam-queue",
"crossbeam-utils",
"crossbeam-utils 0.7.2",
]
[[package]]
@@ -353,7 +353,7 @@ version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87"
dependencies = [
"crossbeam-utils",
"crossbeam-utils 0.7.2",
"maybe-uninit",
]
@@ -363,11 +363,21 @@ version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c20ff29ded3204c5106278a81a38f4b482636ed4fa1e6cfbeef193291beb29ed"
dependencies = [
"crossbeam-epoch",
"crossbeam-utils",
"crossbeam-epoch 0.8.2",
"crossbeam-utils 0.7.2",
"maybe-uninit",
]
[[package]]
name = "crossbeam-deque"
version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51"
dependencies = [
"crossbeam-epoch 0.9.18",
"crossbeam-utils 0.8.21",
]
[[package]]
name = "crossbeam-epoch"
version = "0.8.2"
@@ -376,13 +386,22 @@ checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
dependencies = [
"autocfg",
"cfg-if 0.1.10",
"crossbeam-utils",
"crossbeam-utils 0.7.2",
"lazy_static",
"maybe-uninit",
"memoffset",
"scopeguard",
]
[[package]]
name = "crossbeam-epoch"
version = "0.9.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
dependencies = [
"crossbeam-utils 0.8.21",
]
[[package]]
name = "crossbeam-queue"
version = "0.2.3"
@@ -390,7 +409,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570"
dependencies = [
"cfg-if 0.1.10",
"crossbeam-utils",
"crossbeam-utils 0.7.2",
"maybe-uninit",
]
@@ -405,6 +424,12 @@ dependencies = [
"lazy_static",
]
[[package]]
name = "crossbeam-utils"
version = "0.8.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
[[package]]
name = "crypto_api"
version = "0.2.2"
@@ -455,6 +480,12 @@ version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0"
[[package]]
name = "either"
version = "1.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
[[package]]
name = "env_logger"
version = "0.7.1"
@@ -468,7 +499,6 @@ dependencies = [
[[package]]
name = "equihash"
version = "0.1.0"
source = "git+https://git.hush.is/fekt/librustzcash?branch=main#553c3f62b8481234addef7adb8dfa92ecf7934d2"
dependencies = [
"blake2b_simd",
"byteorder",
@@ -999,6 +1029,26 @@ dependencies = [
"rand_core 0.5.1",
]
[[package]]
name = "rayon"
version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
dependencies = [
"either",
"rayon-core",
]
[[package]]
name = "rayon-core"
version = "1.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
dependencies = [
"crossbeam-deque 0.8.6",
"crossbeam-utils 0.8.21",
]
[[package]]
name = "redox_syscall"
version = "0.2.16"
@@ -1552,7 +1602,6 @@ dependencies = [
[[package]]
name = "zcash_client_backend"
version = "0.5.0"
source = "git+https://git.hush.is/fekt/librustzcash?branch=main#553c3f62b8481234addef7adb8dfa92ecf7934d2"
dependencies = [
"base64",
"bech32",
@@ -1569,6 +1618,7 @@ dependencies = [
"protobuf",
"protobuf-codegen-pure",
"rand_core 0.5.1",
"rayon",
"ripemd160",
"secp256k1",
"sha2",
@@ -1581,7 +1631,6 @@ dependencies = [
[[package]]
name = "zcash_client_sqlite"
version = "0.3.0"
source = "git+https://git.hush.is/fekt/librustzcash?branch=main#553c3f62b8481234addef7adb8dfa92ecf7934d2"
dependencies = [
"bech32",
"bs58",
@@ -1600,7 +1649,6 @@ dependencies = [
[[package]]
name = "zcash_note_encryption"
version = "0.0.0"
source = "git+https://git.hush.is/fekt/librustzcash?branch=main#553c3f62b8481234addef7adb8dfa92ecf7934d2"
dependencies = [
"blake2b_simd",
"byteorder",
@@ -1614,7 +1662,6 @@ dependencies = [
[[package]]
name = "zcash_primitives"
version = "0.5.0"
source = "git+https://git.hush.is/fekt/librustzcash?branch=main#553c3f62b8481234addef7adb8dfa92ecf7934d2"
dependencies = [
"aes",
"bitvec 0.18.5",
@@ -1644,7 +1691,6 @@ dependencies = [
[[package]]
name = "zcash_proofs"
version = "0.5.0"
source = "git+https://git.hush.is/fekt/librustzcash?branch=main#553c3f62b8481234addef7adb8dfa92ecf7934d2"
dependencies = [
"bellman",
"blake2b_simd",