Skip to content

Commit 405535c

Browse files
authored
Merge pull request #248 from ekexium/reduce-panic
Reduce some panics
2 parents 6000f66 + 1af4717 commit 405535c

File tree

4 files changed

+16
-16
lines changed

4 files changed

+16
-16
lines changed

src/region.rs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,6 @@ pub struct Region {
2828
}
2929

3030
impl Region {
31-
#[allow(dead_code)]
32-
pub fn switch_peer(&mut self, _to: StoreId) -> Result<()> {
33-
unimplemented!()
34-
}
35-
3631
pub fn contains(&self, key: &Key) -> bool {
3732
let key: &[u8] = key.into();
3833
let start_key = self.region.get_start_key();

src/request/plan.rs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,18 @@ impl<Req: KvRequest> Plan for Dispatch<Req> {
4040
let result = self
4141
.kv_client
4242
.as_ref()
43-
.expect("Unreachable: kv_client has not been initialised in Dispatch")
43+
.ok_or_else(|| {
44+
Error::StringError(
45+
"Unreachable: kv_client has not been initialised in Dispatch".to_owned(),
46+
)
47+
})?
4448
.dispatch(&self.request)
4549
.await;
4650
let result = stats.done(result);
47-
result.map(|r| *r.downcast().expect("Downcast failed"))
51+
result.map(|r| {
52+
*r.downcast()
53+
.expect("Downcast failed: request and response type mismatch")
54+
})
4855
}
4956
}
5057

src/transaction/transaction.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -628,7 +628,7 @@ impl Transaction {
628628
let first_key = keys[0].clone();
629629
let primary_lock = self.buffer.get_primary_key_or(&first_key).await;
630630
let lock_ttl = DEFAULT_LOCK_TTL;
631-
let for_update_ts = self.rpc.clone().get_timestamp().await.unwrap();
631+
let for_update_ts = self.rpc.clone().get_timestamp().await?;
632632
self.options.push_for_update_ts(for_update_ts.clone());
633633
let request = new_pessimistic_lock_request(
634634
keys.clone().into_iter(),
@@ -843,6 +843,7 @@ impl Committer {
843843
}
844844

845845
let commit_ts = if self.options.async_commit {
846+
// FIXME: min_commit_ts == 0 => fallback to normal 2PC
846847
min_commit_ts.unwrap()
847848
} else {
848849
match self.commit_primary().await {

tikv-client-pd/src/cluster.rs

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ impl PdMessage for pdpb::GetRegionRequest {
290290
type Response = pdpb::GetRegionResponse;
291291

292292
async fn rpc(&self, client: &pdpb::PdClient, opt: CallOption) -> GrpcResult<Self::Response> {
293-
client.get_region_async_opt(self, opt).unwrap().await
293+
client.get_region_async_opt(self, opt)?.await
294294
}
295295
}
296296

@@ -299,7 +299,7 @@ impl PdMessage for pdpb::GetRegionByIdRequest {
299299
type Response = pdpb::GetRegionResponse;
300300

301301
async fn rpc(&self, client: &pdpb::PdClient, opt: CallOption) -> GrpcResult<Self::Response> {
302-
client.get_region_by_id_async_opt(self, opt).unwrap().await
302+
client.get_region_by_id_async_opt(self, opt)?.await
303303
}
304304
}
305305

@@ -308,7 +308,7 @@ impl PdMessage for pdpb::GetStoreRequest {
308308
type Response = pdpb::GetStoreResponse;
309309

310310
async fn rpc(&self, client: &pdpb::PdClient, opt: CallOption) -> GrpcResult<Self::Response> {
311-
client.get_store_async_opt(self, opt).unwrap().await
311+
client.get_store_async_opt(self, opt)?.await
312312
}
313313
}
314314

@@ -317,7 +317,7 @@ impl PdMessage for pdpb::GetAllStoresRequest {
317317
type Response = pdpb::GetAllStoresResponse;
318318

319319
async fn rpc(&self, client: &pdpb::PdClient, opt: CallOption) -> GrpcResult<Self::Response> {
320-
client.get_all_stores_async_opt(self, opt).unwrap().await
320+
client.get_all_stores_async_opt(self, opt)?.await
321321
}
322322
}
323323

@@ -326,10 +326,7 @@ impl PdMessage for pdpb::UpdateGcSafePointRequest {
326326
type Response = pdpb::UpdateGcSafePointResponse;
327327

328328
async fn rpc(&self, client: &pdpb::PdClient, opt: CallOption) -> GrpcResult<Self::Response> {
329-
client
330-
.update_gc_safe_point_async_opt(self, opt)
331-
.unwrap()
332-
.await
329+
client.update_gc_safe_point_async_opt(self, opt)?.await
333330
}
334331
}
335332

0 commit comments

Comments
 (0)