diff --git a/Cargo.toml b/Cargo.toml index 09f60afe..4a74f2e3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,6 +26,7 @@ failure = "0.1" [dependencies.kvproto] git = "https://github.com/pingcap/kvproto.git" +rev = "f9b9e7d362c7cc2c90202fc7c300b2e466cbfbf2" [dependencies.prometheus] version = "0.4.2" diff --git a/src/rpc/tikv/client.rs b/src/rpc/tikv/client.rs index 49be25cb..b1f468fb 100644 --- a/src/rpc/tikv/client.rs +++ b/src/rpc/tikv/client.rs @@ -46,14 +46,14 @@ impl From for Error { } else if e.has_region_not_found() { Error::region_not_found(e.get_region_not_found().get_region_id(), Some(message)) } else if e.has_key_not_in_region() { - Error::key_not_in_region(e.take_key_not_in_region()) - } else if e.has_stale_epoch() { - let message = format!( + let mut e = e.take_key_not_in_region(); + Error::key_not_in_region(e) + } else if e.has_epoch_not_match() { + Error::stale_epoch(Some(format!( "{}. New epoch: {:?}", message, - e.get_stale_epoch().get_new_regions() - ); - Error::stale_epoch(Some(message)) + e.get_epoch_not_match().get_current_regions() + ))) } else if e.has_server_is_busy() { Error::server_is_busy(e.take_server_is_busy()) } else if e.has_stale_command() {