From 6ee59c70d8036084b43b8e6a09209a5b1e0ddfee Mon Sep 17 00:00:00 2001 From: Andy Lok Date: Mon, 25 Dec 2023 15:37:05 +0800 Subject: [PATCH] fix Signed-off-by: Andy Lok --- src/request/keyspace.rs | 14 ++++++++++++-- src/transaction/lock.rs | 3 +-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/request/keyspace.rs b/src/request/keyspace.rs index 847695a9..118e6fbf 100644 --- a/src/request/keyspace.rs +++ b/src/request/keyspace.rs @@ -151,8 +151,18 @@ impl TruncateKeyspace for Vec { impl TruncateKeyspace for Vec { fn truncate_keyspace(mut self, keyspace: Keyspace) -> Self { - for lock in self.locks.iter_mut() { - lock.key.truncate_keyspace(self.keyspace); + for lock in &mut self { + take_mut::take(&mut lock.key, |key| { + Key::from(key).truncate_keyspace(keyspace).into() + }); + take_mut::take(&mut lock.primary_lock, |primary| { + Key::from(primary).truncate_keyspace(keyspace).into() + }); + for secondary in lock.secondaries.iter_mut() { + take_mut::take(secondary, |secondary| { + Key::from(secondary).truncate_keyspace(keyspace).into() + }); + } } self } diff --git a/src/transaction/lock.rs b/src/transaction/lock.rs index c6c4a52a..efa835d6 100644 --- a/src/transaction/lock.rs +++ b/src/transaction/lock.rs @@ -121,8 +121,7 @@ async fn resolve_lock_with_retry( let store = pd_client.clone().store_for_key(key.into()).await?; let ver_id = store.region_with_leader.ver_id(); let request = requests::new_resolve_lock_request(start_version, commit_version); - let encoded_req = EncodedRequest::new(request, pd_client.get_codec()); - let plan = crate::request::PlanBuilder::new(pd_client.clone(), encoded_req) + let plan = crate::request::PlanBuilder::new(pd_client.clone(), keyspace, request) .single_region_with_store(store) .await? .resolve_lock(Backoff::no_backoff(), keyspace)