From e9cec40b05c94e52f8704c9eae065b52fe12caa3 Mon Sep 17 00:00:00 2001 From: Ruslan Pislari Date: Tue, 4 Nov 2025 12:02:31 +0200 Subject: [PATCH] fix: update Redis dependency to version 0.32 and improve error handling in async item retrieval --- Cargo.lock | 36 ++++++------------------ crates/key-value-store/Cargo.toml | 2 +- crates/key-value-store/src/redis_impl.rs | 4 +-- 3 files changed, 12 insertions(+), 30 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d8236ed..865de31 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1692,7 +1692,7 @@ dependencies = [ "hyper", "libc", "pin-project-lite", - "socket2 0.6.0", + "socket2", "tokio", "tower-service", "tracing", @@ -1906,15 +1906,6 @@ dependencies = [ "either", ] -[[package]] -name = "itertools" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.14.0" @@ -2820,26 +2811,27 @@ checksum = "03251193000f4bd3b042892be858ee50e8b3719f2b08e5833ac4353724632430" [[package]] name = "redis" -version = "0.27.6" +version = "0.32.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09d8f99a4090c89cc489a94833c901ead69bfbf3877b4867d5482e321ee875bc" +checksum = "014cc767fefab6a3e798ca45112bccad9c6e0e218fbd49720042716c73cfef44" dependencies = [ "arc-swap", - "async-trait", "backon", "bytes", + "cfg-if", "combine", - "futures", + "futures-channel", "futures-util", - "itertools 0.13.0", "itoa", + "native-tls", "num-bigint", "percent-encoding", "pin-project-lite", "ryu", "sha1_smol", - "socket2 0.5.10", + "socket2", "tokio", + "tokio-native-tls", "tokio-util", "url", ] @@ -3323,16 +3315,6 @@ dependencies = [ "serde", ] -[[package]] -name = "socket2" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - [[package]] name = "socket2" version = "0.6.0" @@ -3574,7 +3556,7 @@ dependencies = [ "pin-project-lite", "signal-hook-registry", "slab", - "socket2 0.6.0", + "socket2", "tokio-macros", "windows-sys 0.59.0", ] diff --git a/crates/key-value-store/Cargo.toml b/crates/key-value-store/Cargo.toml index 05b2503..76e3d5d 100644 --- a/crates/key-value-store/Cargo.toml +++ b/crates/key-value-store/Cargo.toml @@ -17,7 +17,7 @@ slab = "0.4" async-trait = "0.1" smol_str = {workspace = true} tracing = "0.1" -redis = { version = "0.27.6", features = ["aio", "tokio-comp", "connection-manager"], optional = true} +redis = { version = "0.32", features = ["aio", "tokio-comp", "connection-manager", "tokio-native-tls-comp", "safe_iterators"], optional = true} [lints] workspace = true diff --git a/crates/key-value-store/src/redis_impl.rs b/crates/key-value-store/src/redis_impl.rs index e60acc8..9feb851 100644 --- a/crates/key-value-store/src/redis_impl.rs +++ b/crates/key-value-store/src/redis_impl.rs @@ -57,7 +57,7 @@ impl Store for RedisStore { })?; let mut ret = vec![]; while let Some(element) = it.next_item().await { - ret.push(element); + ret.push(element.map_err(|error| Error::Other(error.to_string()))?); } Ok(ret) } @@ -71,7 +71,7 @@ impl Store for RedisStore { })?; let mut ret = vec![]; while let Some(element) = it.next_item().await { - ret.push(element); + ret.push(element.map_err(|error| Error::Other(error.to_string()))?); } Ok(ret) }