From 10d5a222ec623ad2a95f20b8dd9fd88736440ece Mon Sep 17 00:00:00 2001 From: ygd58 Date: Thu, 6 Aug 2026 20:04:36 +0200 Subject: [PATCH] fix(deps): bump malachite pin to 5cd137fb to fix follower sync wedge (#214) Follower nodes running v0.7.3 can deadlock permanently: a batched sync fetch that partially fails advances sync_height past the whole failed range, but the retry only re-requests the first height. The stranded height is never re-requested; consensus stalls at that height while sync's 5 parallel slots fill with later heights that can never be delivered. Root cause is in crates/sync/src/handle.rs upstream: the unconditional forward set_sync_height() at the end of send_and_track_request_to_peer() clobbers the rewind performed by re_request_values_from_peer_except() on a partial-range failure. Already fixed upstream in circlefin/malachite#1567 (merged 2026-06-22, "fix(sync): preserve rewound sync_height after concurrent re-request"). The related circlefin/malachite#1543 (reject non-contiguous sync responses) was already covered by the current pin. This bumps the malachitebft-* git rev from 8ee5d998 (2026-05-22, predates #1567) to 5cd137fb, the current tip of circlefin/malachite main, which includes the fix. Fixes #214 --- Cargo.lock | 38 +++++++++++++++++++------------------- Cargo.toml | 26 +++++++++++++------------- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 47d70219..4fd6b6c2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1448,7 +1448,7 @@ dependencies = [ [[package]] name = "arc-malachitebft-app" version = "0.7.0-pre" -source = "git+https://github.com/circlefin/malachite.git?rev=8ee5d998#8ee5d998545087e73710c37e457cc03cb56b1463" +source = "git+https://github.com/circlefin/malachite.git?rev=5cd137fb#5cd137fb158fc52b55044eee9b090fd0d34996b0" dependencies = [ "arc-malachitebft-codec", "arc-malachitebft-config", @@ -1476,7 +1476,7 @@ dependencies = [ [[package]] name = "arc-malachitebft-app-channel" version = "0.7.0-pre" -source = "git+https://github.com/circlefin/malachite.git?rev=8ee5d998#8ee5d998545087e73710c37e457cc03cb56b1463" +source = "git+https://github.com/circlefin/malachite.git?rev=5cd137fb#5cd137fb158fc52b55044eee9b090fd0d34996b0" dependencies = [ "arc-malachitebft-app", "arc-malachitebft-config", @@ -1494,7 +1494,7 @@ dependencies = [ [[package]] name = "arc-malachitebft-codec" version = "0.7.0-pre" -source = "git+https://github.com/circlefin/malachite.git?rev=8ee5d998#8ee5d998545087e73710c37e457cc03cb56b1463" +source = "git+https://github.com/circlefin/malachite.git?rev=5cd137fb#5cd137fb158fc52b55044eee9b090fd0d34996b0" dependencies = [ "bytes", ] @@ -1502,7 +1502,7 @@ dependencies = [ [[package]] name = "arc-malachitebft-config" version = "0.7.0-pre" -source = "git+https://github.com/circlefin/malachite.git?rev=8ee5d998#8ee5d998545087e73710c37e457cc03cb56b1463" +source = "git+https://github.com/circlefin/malachite.git?rev=5cd137fb#5cd137fb158fc52b55044eee9b090fd0d34996b0" dependencies = [ "arc-malachitebft-core-types", "bytesize", @@ -1516,7 +1516,7 @@ dependencies = [ [[package]] name = "arc-malachitebft-core-consensus" version = "0.7.0-pre" -source = "git+https://github.com/circlefin/malachite.git?rev=8ee5d998#8ee5d998545087e73710c37e457cc03cb56b1463" +source = "git+https://github.com/circlefin/malachite.git?rev=5cd137fb#5cd137fb158fc52b55044eee9b090fd0d34996b0" dependencies = [ "arc-malachitebft-core-driver", "arc-malachitebft-core-types", @@ -1536,7 +1536,7 @@ dependencies = [ [[package]] name = "arc-malachitebft-core-driver" version = "0.7.0-pre" -source = "git+https://github.com/circlefin/malachite.git?rev=8ee5d998#8ee5d998545087e73710c37e457cc03cb56b1463" +source = "git+https://github.com/circlefin/malachite.git?rev=5cd137fb#5cd137fb158fc52b55044eee9b090fd0d34996b0" dependencies = [ "arc-malachitebft-core-state-machine", "arc-malachitebft-core-types", @@ -1549,7 +1549,7 @@ dependencies = [ [[package]] name = "arc-malachitebft-core-state-machine" version = "0.7.0-pre" -source = "git+https://github.com/circlefin/malachite.git?rev=8ee5d998#8ee5d998545087e73710c37e457cc03cb56b1463" +source = "git+https://github.com/circlefin/malachite.git?rev=5cd137fb#5cd137fb158fc52b55044eee9b090fd0d34996b0" dependencies = [ "arc-malachitebft-core-types", "derive-where", @@ -1559,7 +1559,7 @@ dependencies = [ [[package]] name = "arc-malachitebft-core-types" version = "0.7.0-pre" -source = "git+https://github.com/circlefin/malachite.git?rev=8ee5d998#8ee5d998545087e73710c37e457cc03cb56b1463" +source = "git+https://github.com/circlefin/malachite.git?rev=5cd137fb#5cd137fb158fc52b55044eee9b090fd0d34996b0" dependencies = [ "arc-malachitebft-peer", "async-trait", @@ -1572,7 +1572,7 @@ dependencies = [ [[package]] name = "arc-malachitebft-core-votekeeper" version = "0.7.0-pre" -source = "git+https://github.com/circlefin/malachite.git?rev=8ee5d998#8ee5d998545087e73710c37e457cc03cb56b1463" +source = "git+https://github.com/circlefin/malachite.git?rev=5cd137fb#5cd137fb158fc52b55044eee9b090fd0d34996b0" dependencies = [ "arc-malachitebft-core-types", "derive-where", @@ -1583,7 +1583,7 @@ dependencies = [ [[package]] name = "arc-malachitebft-discovery" version = "0.7.0-pre" -source = "git+https://github.com/circlefin/malachite.git?rev=8ee5d998#8ee5d998545087e73710c37e457cc03cb56b1463" +source = "git+https://github.com/circlefin/malachite.git?rev=5cd137fb#5cd137fb158fc52b55044eee9b090fd0d34996b0" dependencies = [ "arc-malachitebft-metrics", "either", @@ -1598,7 +1598,7 @@ dependencies = [ [[package]] name = "arc-malachitebft-engine" version = "0.7.0-pre" -source = "git+https://github.com/circlefin/malachite.git?rev=8ee5d998#8ee5d998545087e73710c37e457cc03cb56b1463" +source = "git+https://github.com/circlefin/malachite.git?rev=5cd137fb#5cd137fb158fc52b55044eee9b090fd0d34996b0" dependencies = [ "arc-malachitebft-codec", "arc-malachitebft-config", @@ -1631,7 +1631,7 @@ dependencies = [ [[package]] name = "arc-malachitebft-metrics" version = "0.7.0-pre" -source = "git+https://github.com/circlefin/malachite.git?rev=8ee5d998#8ee5d998545087e73710c37e457cc03cb56b1463" +source = "git+https://github.com/circlefin/malachite.git?rev=5cd137fb#5cd137fb158fc52b55044eee9b090fd0d34996b0" dependencies = [ "arc-malachitebft-core-state-machine", "prometheus-client", @@ -1640,7 +1640,7 @@ dependencies = [ [[package]] name = "arc-malachitebft-network" version = "0.7.0-pre" -source = "git+https://github.com/circlefin/malachite.git?rev=8ee5d998#8ee5d998545087e73710c37e457cc03cb56b1463" +source = "git+https://github.com/circlefin/malachite.git?rev=5cd137fb#5cd137fb158fc52b55044eee9b090fd0d34996b0" dependencies = [ "arc-malachitebft-discovery", "arc-malachitebft-metrics", @@ -1669,7 +1669,7 @@ dependencies = [ [[package]] name = "arc-malachitebft-peer" version = "0.7.0-pre" -source = "git+https://github.com/circlefin/malachite.git?rev=8ee5d998#8ee5d998545087e73710c37e457cc03cb56b1463" +source = "git+https://github.com/circlefin/malachite.git?rev=5cd137fb#5cd137fb158fc52b55044eee9b090fd0d34996b0" dependencies = [ "bs58", "multihash", @@ -1680,7 +1680,7 @@ dependencies = [ [[package]] name = "arc-malachitebft-proto" version = "0.7.0-pre" -source = "git+https://github.com/circlefin/malachite.git?rev=8ee5d998#8ee5d998545087e73710c37e457cc03cb56b1463" +source = "git+https://github.com/circlefin/malachite.git?rev=5cd137fb#5cd137fb158fc52b55044eee9b090fd0d34996b0" dependencies = [ "prost 0.13.5", "prost-types 0.13.5", @@ -1690,7 +1690,7 @@ dependencies = [ [[package]] name = "arc-malachitebft-signing" version = "0.7.0-pre" -source = "git+https://github.com/circlefin/malachite.git?rev=8ee5d998#8ee5d998545087e73710c37e457cc03cb56b1463" +source = "git+https://github.com/circlefin/malachite.git?rev=5cd137fb#5cd137fb158fc52b55044eee9b090fd0d34996b0" dependencies = [ "arc-malachitebft-core-types", "async-trait", @@ -1700,7 +1700,7 @@ dependencies = [ [[package]] name = "arc-malachitebft-signing-ed25519" version = "0.7.0-pre" -source = "git+https://github.com/circlefin/malachite.git?rev=8ee5d998#8ee5d998545087e73710c37e457cc03cb56b1463" +source = "git+https://github.com/circlefin/malachite.git?rev=5cd137fb#5cd137fb158fc52b55044eee9b090fd0d34996b0" dependencies = [ "arc-malachitebft-core-types", "base64 0.22.1", @@ -1713,7 +1713,7 @@ dependencies = [ [[package]] name = "arc-malachitebft-sync" version = "0.7.0-pre" -source = "git+https://github.com/circlefin/malachite.git?rev=8ee5d998#8ee5d998545087e73710c37e457cc03cb56b1463" +source = "git+https://github.com/circlefin/malachite.git?rev=5cd137fb#5cd137fb158fc52b55044eee9b090fd0d34996b0" dependencies = [ "arc-malachitebft-core-types", "arc-malachitebft-metrics", @@ -1735,7 +1735,7 @@ dependencies = [ [[package]] name = "arc-malachitebft-wal" version = "0.7.0-pre" -source = "git+https://github.com/circlefin/malachite.git?rev=8ee5d998#8ee5d998545087e73710c37e457cc03cb56b1463" +source = "git+https://github.com/circlefin/malachite.git?rev=5cd137fb#5cd137fb158fc52b55044eee9b090fd0d34996b0" dependencies = [ "advisory-lock", "bytes", diff --git a/Cargo.toml b/Cargo.toml index f4e7ac89..3ab5cab9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -269,67 +269,67 @@ wiremock = "0.6" [workspace.dependencies.malachitebft-app] package = "arc-malachitebft-app" git = "https://github.com/circlefin/malachite.git" -rev = "8ee5d998" +rev = "5cd137fb" [workspace.dependencies.malachitebft-app-channel] package = "arc-malachitebft-app-channel" git = "https://github.com/circlefin/malachite.git" -rev = "8ee5d998" +rev = "5cd137fb" [workspace.dependencies.malachitebft-codec] package = "arc-malachitebft-codec" git = "https://github.com/circlefin/malachite.git" -rev = "8ee5d998" +rev = "5cd137fb" [workspace.dependencies.malachitebft-config] package = "arc-malachitebft-config" git = "https://github.com/circlefin/malachite.git" -rev = "8ee5d998" +rev = "5cd137fb" [workspace.dependencies.malachitebft-core-consensus] package = "arc-malachitebft-core-consensus" git = "https://github.com/circlefin/malachite.git" -rev = "8ee5d998" +rev = "5cd137fb" [workspace.dependencies.malachitebft-core-state-machine] package = "arc-malachitebft-core-state-machine" git = "https://github.com/circlefin/malachite.git" -rev = "8ee5d998" +rev = "5cd137fb" [workspace.dependencies.malachitebft-core-types] package = "arc-malachitebft-core-types" git = "https://github.com/circlefin/malachite.git" -rev = "8ee5d998" +rev = "5cd137fb" [workspace.dependencies.malachitebft-network] package = "arc-malachitebft-network" git = "https://github.com/circlefin/malachite.git" -rev = "8ee5d998" +rev = "5cd137fb" [workspace.dependencies.malachitebft-peer] package = "arc-malachitebft-peer" git = "https://github.com/circlefin/malachite.git" -rev = "8ee5d998" +rev = "5cd137fb" [workspace.dependencies.malachitebft-proto] package = "arc-malachitebft-proto" git = "https://github.com/circlefin/malachite.git" -rev = "8ee5d998" +rev = "5cd137fb" [workspace.dependencies.malachitebft-signing] package = "arc-malachitebft-signing" git = "https://github.com/circlefin/malachite.git" -rev = "8ee5d998" +rev = "5cd137fb" [workspace.dependencies.malachitebft-signing-ed25519] package = "arc-malachitebft-signing-ed25519" git = "https://github.com/circlefin/malachite.git" -rev = "8ee5d998" +rev = "5cd137fb" [workspace.dependencies.malachitebft-sync] package = "arc-malachitebft-sync" git = "https://github.com/circlefin/malachite.git" -rev = "8ee5d998" +rev = "5cd137fb" [profile.dev] # enable basic optimizations (otherwise reth can't process txs)