Bump prost, prost-types, and tonic (backport #18537) (#18558)

* Bump prost, prost-types, and tonic (#18537)

* Bump prost+tonic and accommodate generated service changes

* Unignore advisory

* Fixup .proto error list

(cherry picked from commit 761de8b1a3)

# Conflicts:
#	Cargo.lock
#	storage-bigtable/Cargo.toml
#	storage-proto/Cargo.toml

* Fix conflicts

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
This commit is contained in:
mergify[bot]
2021-07-09 19:54:29 +00:00
committed by GitHub
parent c2320fceab
commit 6c99c1ae13
12 changed files with 145 additions and 97 deletions

91
Cargo.lock generated
View File

@ -1807,12 +1807,13 @@ dependencies = [
[[package]]
name = "http-body"
version = "0.4.0"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2861bd27ee074e5ee891e8b539837a9430012e249d7f0ca2d795650f579c1994"
checksum = "60daa14be0e0786db0f03a9e57cb404c9d756eed2b6c62b9ea98ec5743ec75a9"
dependencies = [
"bytes 1.0.1",
"http",
"pin-project-lite 0.2.4",
]
[[package]]
@ -1888,7 +1889,7 @@ dependencies = [
"futures-util",
"h2 0.3.0",
"http",
"http-body 0.4.0",
"http-body 0.4.2",
"httparse",
"httpdate",
"itoa",
@ -1915,6 +1916,18 @@ dependencies = [
"webpki",
]
[[package]]
name = "hyper-timeout"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1"
dependencies = [
"hyper 0.14.3",
"pin-project-lite 0.2.4",
"tokio 1.8.1",
"tokio-io-timeout",
]
[[package]]
name = "hyper-tls"
version = "0.5.0"
@ -2024,6 +2037,15 @@ dependencies = [
"either",
]
[[package]]
name = "itertools"
version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "69ddb889f9d0d08a67338271fa9b62996bc788c7796a5c18cf057420aaed5eaf"
dependencies = [
"either",
]
[[package]]
name = "itoa"
version = "0.4.5"
@ -3109,9 +3131,9 @@ dependencies = [
[[package]]
name = "prost"
version = "0.7.0"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e6984d2f1a23009bd270b8bb56d0926810a3d483f59c987d77969e9d8e840b2"
checksum = "de5e2533f59d08fcf364fd374ebda0692a70bd6d7e66ef97f306f45c6c5d8020"
dependencies = [
"bytes 1.0.1",
"prost-derive",
@ -3119,12 +3141,12 @@ dependencies = [
[[package]]
name = "prost-derive"
version = "0.7.0"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "169a15f3008ecb5160cba7d37bcd690a7601b6d30cfb87a117d45e59d52af5d4"
checksum = "600d2f334aa05acb02a755e217ef1ab6dea4d51b58b7846588b747edec04efba"
dependencies = [
"anyhow",
"itertools",
"itertools 0.10.1",
"proc-macro2 1.0.24",
"quote 1.0.6",
"syn 1.0.60",
@ -3132,9 +3154,9 @@ dependencies = [
[[package]]
name = "prost-types"
version = "0.7.0"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b518d7cdd93dab1d1122cf07fa9a60771836c668dde9d9e2a139f957f0d9f1bb"
checksum = "603bbd6394701d13f3f25aada59c7de9d35a6a5887cfc156181234a44002771b"
dependencies = [
"bytes 1.0.1",
"prost",
@ -3495,7 +3517,7 @@ dependencies = [
"futures-core",
"futures-util",
"http",
"http-body 0.4.0",
"http-body 0.4.2",
"hyper 0.14.3",
"hyper-rustls",
"hyper-tls",
@ -4115,7 +4137,7 @@ name = "solana-bench-exchange"
version = "1.7.5"
dependencies = [
"clap",
"itertools",
"itertools 0.9.0",
"log 0.4.11",
"num-derive",
"num-traits",
@ -4382,7 +4404,7 @@ dependencies = [
"flate2",
"fs_extra",
"indexmap",
"itertools",
"itertools 0.9.0",
"jsonrpc-core",
"jsonrpc-core-client",
"libc",
@ -4645,7 +4667,7 @@ dependencies = [
"clap",
"flate2",
"indexmap",
"itertools",
"itertools 0.9.0",
"log 0.4.11",
"lru",
"matches",
@ -4743,7 +4765,7 @@ dependencies = [
"fs_extra",
"futures 0.3.8",
"futures-util",
"itertools",
"itertools 0.9.0",
"lazy_static",
"libc",
"log 0.4.11",
@ -4794,7 +4816,7 @@ dependencies = [
"futures 0.3.8",
"futures-util",
"histogram",
"itertools",
"itertools 0.9.0",
"log 0.4.11",
"regex",
"serde",
@ -4825,7 +4847,7 @@ dependencies = [
"crossbeam-channel 0.4.4",
"fs_extra",
"gag",
"itertools",
"itertools 0.9.0",
"log 0.4.11",
"rand 0.7.3",
"rayon",
@ -5061,7 +5083,7 @@ dependencies = [
"bv",
"curve25519-dalek 2.1.0",
"hex",
"itertools",
"itertools 0.9.0",
"lazy_static",
"log 0.4.11",
"num-derive",
@ -5094,7 +5116,7 @@ dependencies = [
"bv",
"curve25519-dalek 2.1.0",
"hex",
"itertools",
"itertools 0.9.0",
"lazy_static",
"libsecp256k1 0.5.0",
"log 0.4.11",
@ -5177,7 +5199,7 @@ dependencies = [
"bincode",
"bs58",
"crossbeam-channel 0.4.4",
"itertools",
"itertools 0.9.0",
"jsonrpc-core",
"jsonrpc-core-client",
"jsonrpc-derive",
@ -5232,7 +5254,7 @@ dependencies = [
"dir-diff",
"flate2",
"fnv",
"itertools",
"itertools 0.9.0",
"lazy_static",
"libc",
"libloading 0.6.2",
@ -5293,7 +5315,7 @@ dependencies = [
"generic-array 0.14.3",
"hex",
"hmac 0.10.1",
"itertools",
"itertools 0.9.0",
"lazy_static",
"libsecp256k1 0.3.5",
"log 0.4.11",
@ -6193,6 +6215,16 @@ dependencies = [
"log 0.4.11",
]
[[package]]
name = "tokio-io-timeout"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "90c49f106be240de154571dd31fbe48acb10ba6c6dd6f6517ad603abffa42de9"
dependencies = [
"pin-project-lite 0.2.4",
"tokio 1.8.1",
]
[[package]]
name = "tokio-macros"
version = "0.2.6"
@ -6418,9 +6450,9 @@ dependencies = [
[[package]]
name = "tonic"
version = "0.4.0"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ba8f479158947373b6df40cf48f4779bb25c99ca3c661bd95e0ab1963ad8b0e"
checksum = "b584f064fdfc50017ec39162d5aebce49912f1eb16fd128e04b7f4ce4907c7e5"
dependencies = [
"async-stream",
"async-trait",
@ -6430,8 +6462,9 @@ dependencies = [
"futures-util",
"h2 0.3.0",
"http",
"http-body 0.4.0",
"http-body 0.4.2",
"hyper 0.14.3",
"hyper-timeout",
"percent-encoding 2.1.0",
"pin-project 1.0.1",
"prost",
@ -6441,6 +6474,7 @@ dependencies = [
"tokio-stream",
"tokio-util 0.6.3",
"tower",
"tower-layer",
"tower-service",
"tracing",
"tracing-futures",
@ -6448,9 +6482,9 @@ dependencies = [
[[package]]
name = "tower"
version = "0.4.4"
version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5fd7b451959622e21de79261673d658a0944b835012c58c51878ea55957fb51a"
checksum = "f60422bc7fefa2f3ec70359b8ff1caff59d785877eb70595904605bcc412470f"
dependencies = [
"futures-core",
"futures-util",
@ -6460,6 +6494,7 @@ dependencies = [
"slab",
"tokio 1.8.1",
"tokio-stream",
"tokio-util 0.6.3",
"tower-layer",
"tower-service",
"tracing",
@ -7049,6 +7084,6 @@ checksum = "b89249644df056b522696b1bb9e7c18c87e8ffa3e2f0dc3b0155875d6498f01b"
dependencies = [
"cc",
"glob",
"itertools",
"itertools 0.9.0",
"libc",
]

View File

@ -39,10 +39,5 @@ cargo_audit_ignores=(
# https://github.com/paritytech/libsecp256k1/issues/66
--ignore RUSTSEC-2020-0146
# prost-types: Conversion from `prost_types::Timestamp` to `SystemTime` can cause an overflow and panic
#
# Blocked on googleapi protobuf build errors
--ignore RUSTSEC-2021-0073
)
scripts/cargo-for-all-lock-files.sh stable audit "${cargo_audit_ignores[@]}"

View File

@ -26,7 +26,7 @@ lazy_static = "1.4.0"
libc = "0.2.81"
log = { version = "0.4.11" }
num_cpus = "1.13.0"
prost = "0.7.0"
prost = "0.8.0"
rand = "0.7.0"
rand_chacha = "0.2.2"
rayon = "1.5.0"

View File

@ -18,8 +18,8 @@ enum-iterator = "0.6.0"
flate2 = "1.0.14"
goauth = "0.10.0"
log = "0.4.11"
prost = "0.7.0"
prost-types = "0.7.0"
prost = "0.8.0"
prost-types = "0.8.0"
rand_core = "0.6.2"
serde = "1.0.122"
serde_derive = "1.0.103"
@ -29,7 +29,7 @@ solana-storage-proto = { path = "../storage-proto", version = "=1.7.5" }
solana-transaction-status = { path = "../transaction-status", version = "=1.7.5" }
thiserror = "1.0"
futures = "0.3.8"
tonic = { version = "0.4.0", features = ["tls", "transport"] }
tonic = { version = "0.5.0", features = ["tls", "transport"] }
zstd = "0.5.1"
[lib]

View File

@ -79,9 +79,9 @@ dependencies = [
[[package]]
name = "itertools"
version = "0.9.0"
version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
checksum = "69ddb889f9d0d08a67338271fa9b62996bc788c7796a5c18cf057420aaed5eaf"
dependencies = [
"either",
]
@ -134,9 +134,9 @@ dependencies = [
[[package]]
name = "prost"
version = "0.7.0"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e6984d2f1a23009bd270b8bb56d0926810a3d483f59c987d77969e9d8e840b2"
checksum = "de5e2533f59d08fcf364fd374ebda0692a70bd6d7e66ef97f306f45c6c5d8020"
dependencies = [
"bytes",
"prost-derive",
@ -144,9 +144,9 @@ dependencies = [
[[package]]
name = "prost-build"
version = "0.7.0"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32d3ebd75ac2679c2af3a92246639f9fcc8a442ee420719cc4fe195b98dd5fa3"
checksum = "355f634b43cdd80724ee7848f95770e7e70eefa6dcf14fea676216573b8fd603"
dependencies = [
"bytes",
"heck",
@ -162,9 +162,9 @@ dependencies = [
[[package]]
name = "prost-derive"
version = "0.7.0"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "169a15f3008ecb5160cba7d37bcd690a7601b6d30cfb87a117d45e59d52af5d4"
checksum = "600d2f334aa05acb02a755e217ef1ab6dea4d51b58b7846588b747edec04efba"
dependencies = [
"anyhow",
"itertools",
@ -175,9 +175,9 @@ dependencies = [
[[package]]
name = "prost-types"
version = "0.7.0"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b518d7cdd93dab1d1122cf07fa9a60771836c668dde9d9e2a139f957f0d9f1bb"
checksum = "603bbd6394701d13f3f25aada59c7de9d35a6a5887cfc156181234a44002771b"
dependencies = [
"bytes",
"prost",
@ -302,9 +302,9 @@ dependencies = [
[[package]]
name = "tonic-build"
version = "0.4.0"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c1e8546fd40d56d28089835c0a81bb396848103b00f888aea42d46eb5974df07"
checksum = "25db9a497663a9a779693ef67b6e6aef8345b3d3ff8d50ef92eae6c88cb1e386"
dependencies = [
"proc-macro2",
"prost-build",

View File

@ -12,4 +12,4 @@ version = "1.7.5"
[workspace]
[dependencies]
tonic-build = "0.4.0"
tonic-build = "0.5.0"

View File

@ -898,6 +898,7 @@ pub mod bigtable_client {
#![allow(unused_variables, dead_code, missing_docs)]
use tonic::codegen::*;
#[doc = " Service for reading from and writing to existing Bigtable tables."]
#[derive(Debug, Clone)]
pub struct BigtableClient<T> {
inner: tonic::client::Grpc<T>,
}
@ -915,17 +916,43 @@ pub mod bigtable_client {
impl<T> BigtableClient<T>
where
T: tonic::client::GrpcService<tonic::body::BoxBody>,
T::ResponseBody: Body + HttpBody + Send + 'static,
T::ResponseBody: Body + Send + Sync + 'static,
T::Error: Into<StdError>,
<T::ResponseBody as HttpBody>::Error: Into<StdError> + Send,
<T::ResponseBody as Body>::Error: Into<StdError> + Send,
{
pub fn new(inner: T) -> Self {
let inner = tonic::client::Grpc::new(inner);
Self { inner }
}
pub fn with_interceptor(inner: T, interceptor: impl Into<tonic::Interceptor>) -> Self {
let inner = tonic::client::Grpc::with_interceptor(inner, interceptor);
Self { inner }
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> BigtableClient<InterceptedService<T, F>>
where
F: FnMut(tonic::Request<()>) -> Result<tonic::Request<()>, tonic::Status>,
T: Service<
http::Request<tonic::body::BoxBody>,
Response = http::Response<
<T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
>,
>,
<T as Service<http::Request<tonic::body::BoxBody>>>::Error:
Into<StdError> + Send + Sync,
{
BigtableClient::new(InterceptedService::new(inner, interceptor))
}
#[doc = r" Compress requests with `gzip`."]
#[doc = r""]
#[doc = r" This requires the server to support it otherwise it might respond with an"]
#[doc = r" error."]
pub fn send_gzip(mut self) -> Self {
self.inner = self.inner.send_gzip();
self
}
#[doc = r" Enable decompressing responses with `gzip`."]
pub fn accept_gzip(mut self) -> Self {
self.inner = self.inner.accept_gzip();
self
}
#[doc = " Streams back the contents of all requested rows in key order, optionally"]
#[doc = " applying the same Reader filter to each. Depending on their size,"]
@ -1053,16 +1080,4 @@ pub mod bigtable_client {
self.inner.unary(request.into_request(), path, codec).await
}
}
impl<T: Clone> Clone for BigtableClient<T> {
fn clone(&self) -> Self {
Self {
inner: self.inner.clone(),
}
}
}
impl<T> std::fmt::Debug for BigtableClient<T> {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "BigtableClient {{ ... }}")
}
}
}

View File

@ -8,7 +8,10 @@ use crate::{
use log::*;
use std::time::{Duration, Instant};
use thiserror::Error;
use tonic::{metadata::MetadataValue, transport::ClientTlsConfig, Request};
use tonic::{
codegen::InterceptedService, metadata::MetadataValue, transport::ClientTlsConfig, Request,
Status,
};
mod google {
mod rpc {
@ -93,6 +96,7 @@ impl std::convert::From<tonic::Status> for Error {
}
pub type Result<T> = std::result::Result<T, Error>;
type InterceptedRequestResult = std::result::Result<Request<()>, Status>;
#[derive(Clone)]
pub struct BigTableConnection {
@ -177,12 +181,12 @@ impl BigTableConnection {
///
/// Clients require `&mut self`, due to `Tonic::transport::Channel` limitations, however
/// creating new clients is cheap and thus can be used as a work around for ease of use.
pub fn client(&self) -> BigTable {
let client = if let Some(access_token) = &self.access_token {
let access_token = access_token.clone();
bigtable_client::BigtableClient::with_interceptor(
pub fn client(&self) -> BigTable<impl FnMut(Request<()>) -> InterceptedRequestResult> {
let access_token = self.access_token.clone();
let client = bigtable_client::BigtableClient::with_interceptor(
self.channel.clone(),
move |mut req: Request<()>| {
if let Some(access_token) = &access_token {
match MetadataValue::from_str(&access_token.get()) {
Ok(authorization_header) => {
req.metadata_mut()
@ -192,12 +196,10 @@ impl BigTableConnection {
warn!("Failed to set authorization header: {}", err);
}
}
}
Ok(req)
},
)
} else {
bigtable_client::BigtableClient::new(self.channel.clone())
};
);
BigTable {
access_token: self.access_token.clone(),
client,
@ -239,14 +241,14 @@ impl BigTableConnection {
}
}
pub struct BigTable {
pub struct BigTable<F: FnMut(Request<()>) -> InterceptedRequestResult> {
access_token: Option<AccessToken>,
client: bigtable_client::BigtableClient<tonic::transport::Channel>,
client: bigtable_client::BigtableClient<InterceptedService<tonic::transport::Channel, F>>,
table_prefix: String,
timeout: Option<Duration>,
}
impl BigTable {
impl<F: FnMut(Request<()>) -> InterceptedRequestResult> BigTable<F> {
async fn decode_read_rows_response(
&self,
mut rrr: tonic::codec::Streaming<ReadRowsResponse>,

View File

@ -12,7 +12,7 @@ edition = "2018"
[dependencies]
bincode = "1.2.1"
bs58 = "0.3.1"
prost = "0.7.0"
prost = "0.8.0"
serde = "1.0.122"
serde_derive = "1.0.103"
solana-account-decoder = { path = "../account-decoder", version = "=1.7.5" }

View File

@ -76,9 +76,9 @@ dependencies = [
[[package]]
name = "itertools"
version = "0.9.0"
version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
checksum = "69ddb889f9d0d08a67338271fa9b62996bc788c7796a5c18cf057420aaed5eaf"
dependencies = [
"either",
]
@ -131,9 +131,9 @@ dependencies = [
[[package]]
name = "prost"
version = "0.7.0"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e6984d2f1a23009bd270b8bb56d0926810a3d483f59c987d77969e9d8e840b2"
checksum = "de5e2533f59d08fcf364fd374ebda0692a70bd6d7e66ef97f306f45c6c5d8020"
dependencies = [
"bytes",
"prost-derive",
@ -141,9 +141,9 @@ dependencies = [
[[package]]
name = "prost-build"
version = "0.7.0"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32d3ebd75ac2679c2af3a92246639f9fcc8a442ee420719cc4fe195b98dd5fa3"
checksum = "355f634b43cdd80724ee7848f95770e7e70eefa6dcf14fea676216573b8fd603"
dependencies = [
"bytes",
"heck",
@ -159,9 +159,9 @@ dependencies = [
[[package]]
name = "prost-derive"
version = "0.7.0"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "169a15f3008ecb5160cba7d37bcd690a7601b6d30cfb87a117d45e59d52af5d4"
checksum = "600d2f334aa05acb02a755e217ef1ab6dea4d51b58b7846588b747edec04efba"
dependencies = [
"anyhow",
"itertools",
@ -172,9 +172,9 @@ dependencies = [
[[package]]
name = "prost-types"
version = "0.7.0"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b518d7cdd93dab1d1122cf07fa9a60771836c668dde9d9e2a139f957f0d9f1bb"
checksum = "603bbd6394701d13f3f25aada59c7de9d35a6a5887cfc156181234a44002771b"
dependencies = [
"bytes",
"prost",
@ -299,9 +299,9 @@ dependencies = [
[[package]]
name = "tonic-build"
version = "0.4.0"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c1e8546fd40d56d28089835c0a81bb396848103b00f888aea42d46eb5974df07"
checksum = "25db9a497663a9a779693ef67b6e6aef8345b3d3ff8d50ef92eae6c88cb1e386"
dependencies = [
"proc-macro2",
"prost-build",

View File

@ -12,4 +12,4 @@ version = "1.7.5"
[workspace]
[dependencies]
tonic-build = "0.4.0"
tonic-build = "0.5.0"

View File

@ -99,6 +99,7 @@ enum InstructionErrorType {
INVALID_ACCOUNT_OWNER = 46;
ARITHMETIC_OVERFLOW = 47;
UNSUPPORTED_SYSVAR = 48;
ILLEGAL_OWNER = 49;
}
message UnixTimestamp {