From 0d66f5aa7a2f68a3be376204714e78286944577d Mon Sep 17 00:00:00 2001 From: OlivierDehaene <23298448+OlivierDehaene@users.noreply.github.com> Date: Thu, 22 Feb 2024 11:17:41 +0100 Subject: [PATCH 1/2] fix: use mimalloc to solve memory "leak" --- Cargo.lock | 329 +++++++++++++++++++++++++++++--------- load_tests/load.js | 3 +- router/Cargo.toml | 13 +- router/src/http/server.rs | 5 +- router/src/lib.rs | 2 +- router/src/main.rs | 4 + 6 files changed, 268 insertions(+), 88 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 41d9d1af..7245da15 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -162,13 +162,42 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" dependencies = [ "async-trait", - "axum-core", + "axum-core 0.3.4", "bitflags 1.3.2", "bytes", "futures-util", "http 0.2.11", - "http-body", - "hyper", + "http-body 0.4.6", + "hyper 0.14.28", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1236b4b292f6c4d6dc34604bb5120d85c3fe1d1aa596bd5cc52ca054d13e7b9e" +dependencies = [ + "async-trait", + "axum-core 0.4.3", + "bytes", + "futures-util", + "http 1.0.0", + "http-body 1.0.0", + "http-body-util", + "hyper 1.1.0", + "hyper-util", "itoa", "matchit", "memchr", @@ -185,6 +214,7 @@ dependencies = [ "tower", "tower-layer", "tower-service", + "tracing", ] [[package]] @@ -197,28 +227,49 @@ dependencies = [ "bytes", "futures-util", "http 0.2.11", - "http-body", + "http-body 0.4.6", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http 1.0.0", + "http-body 1.0.0", + "http-body-util", "mime", + "pin-project-lite", "rustversion", + "sync_wrapper", "tower-layer", "tower-service", + "tracing", ] [[package]] name = "axum-tracing-opentelemetry" -version = "0.14.1" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06985105829f176e9a3f113b1c71cc24e08f600ef0df4e70cd90d144f889e19f" +checksum = "7ef984673aba9ba21603ebf1b609822ef6152016a7ad31c443f5d5bf69c88eec" dependencies = [ - "axum", + "axum 0.7.4", "futures-core", "futures-util", - "http 0.2.11", - "opentelemetry 0.20.0", + "http 1.0.0", + "opentelemetry 0.21.0", "pin-project-lite", "tower", "tracing", - "tracing-opentelemetry 0.21.0", + "tracing-opentelemetry 0.22.0", "tracing-opentelemetry-instrumentation-sdk", ] @@ -1260,6 +1311,25 @@ dependencies = [ "tracing", ] +[[package]] +name = "h2" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31d030e59af851932b72ceebadf4a2b5986dba4c3b99dd2493f8273a0f151943" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 1.0.0", + "indexmap 2.1.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "half" version = "2.3.1" @@ -1371,10 +1441,27 @@ dependencies = [ ] [[package]] -name = "http-range-header" -version = "0.3.1" +name = "http-body" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" +checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" +dependencies = [ + "bytes", + "http 1.0.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41cb79eb393015dadd30fc252023adb0b2400a0caee0fa2a077e6e21a551e840" +dependencies = [ + "bytes", + "futures-util", + "http 1.0.0", + "http-body 1.0.0", + "pin-project-lite", +] [[package]] name = "httparse" @@ -1398,9 +1485,9 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2", + "h2 0.3.22", "http 0.2.11", - "http-body", + "http-body 0.4.6", "httparse", "httpdate", "itoa", @@ -1412,13 +1499,32 @@ dependencies = [ "want", ] +[[package]] +name = "hyper" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5aa53871fc917b1a9ed87b683a5d86db645e23acb32c2e0785a353e522fb75" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2 0.4.2", + "http 1.0.0", + "http-body 1.0.0", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "tokio", +] + [[package]] name = "hyper-timeout" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" dependencies = [ - "hyper", + "hyper 0.14.28", "pin-project-lite", "tokio", "tokio-io-timeout", @@ -1431,12 +1537,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ "bytes", - "hyper", + "hyper 0.14.28", "native-tls", "tokio", "tokio-native-tls", ] +[[package]] +name = "hyper-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa" +dependencies = [ + "bytes", + "futures-util", + "http 1.0.0", + "http-body 1.0.0", + "hyper 1.1.0", + "pin-project-lite", + "socket2", + "tokio", +] + [[package]] name = "iana-time-zone" version = "0.1.59" @@ -1601,6 +1723,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.10" @@ -1780,7 +1911,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d4fa7ce7c4862db464a37b0b31d89bca874562f034bd7993895572783d02950" dependencies = [ "base64 0.21.5", - "hyper", + "hyper 0.14.28", "indexmap 1.9.3", "ipnet", "metrics", @@ -2136,15 +2267,19 @@ dependencies = [ ] [[package]] -name = "opentelemetry-http" -version = "0.9.0" +name = "opentelemetry" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7594ec0e11d8e33faf03530a4c49af7064ebba81c1480e01be67d90b356508b" +checksum = "1e32339a5dc40459130b3bd269e9892439f55b33e772d2a9d402a789baaf4e8a" dependencies = [ - "async-trait", - "bytes", - "http 0.2.11", - "opentelemetry_api 0.20.0", + "futures-core", + "futures-sink", + "indexmap 2.1.0", + "js-sys", + "once_cell", + "pin-project-lite", + "thiserror", + "urlencoding", ] [[package]] @@ -2252,7 +2387,7 @@ dependencies = [ "futures-util", "once_cell", "opentelemetry_api 0.20.0", - "ordered-float", + "ordered-float 3.9.2", "percent-encoding", "rand", "regex", @@ -2262,6 +2397,26 @@ dependencies = [ "tokio-stream", ] +[[package]] +name = "opentelemetry_sdk" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f16aec8a98a457a52664d69e0091bac3a0abd18ead9b641cb00202ba4e0efe4" +dependencies = [ + "async-trait", + "crossbeam-channel", + "futures-channel", + "futures-executor", + "futures-util", + "glob", + "once_cell", + "opentelemetry 0.21.0", + "ordered-float 4.2.0", + "percent-encoding", + "rand", + "thiserror", +] + [[package]] name = "option-ext" version = "0.2.0" @@ -2277,6 +2432,15 @@ dependencies = [ "num-traits", ] +[[package]] +name = "ordered-float" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a76df7075c7d4d01fdcb46c912dd17fba5b60c78ea480b475f2b6ab6f666584e" +dependencies = [ + "num-traits", +] + [[package]] name = "overload" version = "0.1.1" @@ -2726,12 +2890,6 @@ version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" -[[package]] -name = "regex-syntax" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" - [[package]] name = "regex-syntax" version = "0.8.2" @@ -2749,10 +2907,10 @@ dependencies = [ "encoding_rs", "futures-core", "futures-util", - "h2", + "h2 0.3.22", "http 0.2.11", - "http-body", - "hyper", + "http-body 0.4.6", + "hyper 0.14.28", "hyper-tls", "ipnet", "js-sys", @@ -2816,7 +2974,6 @@ dependencies = [ "proc-macro2", "quote", "rust-embed-utils", - "shellexpand", "syn 2.0.47", "walkdir", ] @@ -3087,15 +3244,6 @@ dependencies = [ "lazy_static", ] -[[package]] -name = "shellexpand" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da03fa3b94cc19e3ebfc88c4229c49d8f08cdbd1228870a45f0ffdf84988e14b" -dependencies = [ - "dirs", -] - [[package]] name = "signal-hook-registry" version = "1.4.1" @@ -3351,7 +3499,7 @@ version = "0.6.0" dependencies = [ "anyhow", "async-stream", - "axum", + "axum 0.7.4", "axum-tracing-opentelemetry", "clap", "futures", @@ -3467,15 +3615,15 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokenizers" -version = "0.15.0" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "062b8a9613d6017633b80fb55fbb33f1aff006c36225a3025630753398034b3c" +checksum = "3dd47962b0ba36e7fd33518fbf1754d136fd1474000162bbf2a8b5fcb2d3654d" dependencies = [ "aho-corasick", "derive_builder 0.12.0", "esaxx-rs", "getrandom", - "itertools 0.11.0", + "itertools 0.12.1", "lazy_static", "log", "macro_rules_attribute", @@ -3486,7 +3634,7 @@ dependencies = [ "rayon", "rayon-cond", "regex", - "regex-syntax 0.7.5", + "regex-syntax 0.8.2", "serde", "serde_json", "spm_precompiled", @@ -3587,15 +3735,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a" dependencies = [ "async-trait", - "axum", + "axum 0.6.20", "base64 0.21.5", "bytes", "futures-core", "futures-util", - "h2", + "h2 0.3.22", "http 0.2.11", - "http-body", - "hyper", + "http-body 0.4.6", + "hyper 0.14.28", "hyper-timeout", "percent-encoding", "pin-project", @@ -3616,13 +3764,13 @@ checksum = "d560933a0de61cf715926b9cac824d4c883c2c43142f787595e48280c40a1d0e" dependencies = [ "async-stream", "async-trait", - "axum", + "axum 0.6.20", "base64 0.21.5", "bytes", - "h2", + "h2 0.3.22", "http 0.2.11", - "http-body", - "hyper", + "http-body 0.4.6", + "hyper 0.14.28", "hyper-timeout", "percent-encoding", "pin-project", @@ -3709,17 +3857,15 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.4.4" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" +checksum = "0da193277a4e2c33e59e09b5861580c33dd0a637c3883d0fa74ba40c0374af2e" dependencies = [ "bitflags 2.4.1", "bytes", - "futures-core", - "futures-util", - "http 0.2.11", - "http-body", - "http-range-header", + "http 1.0.0", + "http-body 1.0.0", + "http-body-util", "pin-project-lite", "tower-layer", "tower-service", @@ -3822,17 +3968,34 @@ dependencies = [ "tracing-subscriber", ] +[[package]] +name = "tracing-opentelemetry" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c67ac25c5407e7b961fafc6f7e9aa5958fd297aada2d20fa2ae1737357e55596" +dependencies = [ + "js-sys", + "once_cell", + "opentelemetry 0.21.0", + "opentelemetry_sdk 0.21.2", + "smallvec", + "tracing", + "tracing-core", + "tracing-log 0.2.0", + "tracing-subscriber", + "web-time", +] + [[package]] name = "tracing-opentelemetry-instrumentation-sdk" -version = "0.14.2" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f523eba1b52bb854b804d43a039aafeaee5a623015065adbfef8016825319c15" +checksum = "41912afd0d6eab101c41db36397464801dbeeb546eb8b4038820dddb741689e3" dependencies = [ - "http 0.2.11", - "opentelemetry-http", - "opentelemetry_api 0.20.0", + "http 1.0.0", + "opentelemetry 0.21.0", "tracing", - "tracing-opentelemetry 0.21.0", + "tracing-opentelemetry 0.22.0", ] [[package]] @@ -3998,9 +4161,9 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] name = "utoipa" -version = "4.1.0" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ff05e3bac2c9428f57ade702667753ca3f5cf085e2011fe697de5bfd49aa72d" +checksum = "272ebdfbc99111033031d2f10e018836056e4d2c8e2acda76450ec7974269fa7" dependencies = [ "indexmap 2.1.0", "serde", @@ -4010,9 +4173,9 @@ dependencies = [ [[package]] name = "utoipa-gen" -version = "4.1.0" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0b6f4667edd64be0e820d6631a60433a269710b6ee89ac39525b872b76d61d" +checksum = "d3c9f4d08338c1bfa70dde39412a040a884c6f318b3d09aaaf3437a1e52027fc" dependencies = [ "proc-macro-error", "proc-macro2", @@ -4023,11 +4186,11 @@ dependencies = [ [[package]] name = "utoipa-swagger-ui" -version = "4.0.0" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "154517adf0d0b6e22e8e1f385628f14fcaa3db43531dc74303d3edef89d6dfe5" +checksum = "0b39868d43c011961e04b41623e050aedf2cc93652562ff7935ce0f819aaf2da" dependencies = [ - "axum", + "axum 0.7.4", "mime_guess", "regex", "rust-embed", @@ -4206,6 +4369,16 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "web-time" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa30049b1c872b72c89866d458eae9f20380ab280ffd1b1e18df2d3e2d98cfe0" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + [[package]] name = "webpki-roots" version = "0.25.3" diff --git a/load_tests/load.js b/load_tests/load.js index c5146791..b7e4524e 100644 --- a/load_tests/load.js +++ b/load_tests/load.js @@ -36,7 +36,8 @@ export const options = { export default function () { const payload = JSON.stringify({ - inputs: inputs, + query: inputs, + texts: [inputs], truncate: true, }); diff --git a/router/Cargo.toml b/router/Cargo.toml index a1e018cf..9ff5ecd4 100644 --- a/router/Cargo.toml +++ b/router/Cargo.toml @@ -32,19 +32,20 @@ reqwest = { version = "0.11.14", features = [] } serde = "1.0.152" serde_json = "1.0.93" thiserror = "1.0.38" -tokenizers = { version = "0.15.0", default-features=false, features=["onig", "esaxx_fast"] } +tokenizers = { version = "0.15.2", default-features=false, features=["onig", "esaxx_fast"] } tokio = { version = "1.25.0", features = ["rt", "rt-multi-thread", "parking_lot", "signal", "sync"] } tracing = "0.1.37" tracing-opentelemetry = "0.21.0" tracing-subscriber = { version = "0.3.16", features = ["json", "env-filter"] } veil = "0.1.6" +mimalloc = { version = "*", default-features = false } # HTTP dependencies -axum = { version = "0.6.4", features = ["json"], optional = true } -axum-tracing-opentelemetry = { version = "0.14.1", optional = true } -tower-http = { version = "0.4.0", features = ["cors"], optional = true } -utoipa = { version = "4.0.0", features = ["axum_extras"], optional = true } -utoipa-swagger-ui = { version = "4.0.0", features = ["axum"], optional = true } +axum = { version = "0.7.4", features = ["json"], optional = true } +axum-tracing-opentelemetry = { version = "0.17.0", optional = true } +tower-http = { version = "0.5.1", features = ["cors"], optional = true } +utoipa = { version = "4.2", features = ["axum_extras"], optional = true } +utoipa-swagger-ui = { version = "6.0", features = ["axum"], optional = true } # gRPC dependencies async-stream = { version = "0.3.5", optional = true } diff --git a/router/src/http/server.rs b/router/src/http/server.rs index e1c62a22..dd14a7a4 100644 --- a/router/src/http/server.rs +++ b/router/src/http/server.rs @@ -1143,8 +1143,9 @@ pub async fn run( .layer(cors_layer); // Run server - axum::Server::bind(&addr) - .serve(app.into_make_service()) + let listener = tokio::net::TcpListener::bind(&addr).await.unwrap(); + + axum::serve(listener, app) // Wait until all requests are finished to shut down .with_graceful_shutdown(shutdown::shutdown_signal()) .await?; diff --git a/router/src/lib.rs b/router/src/lib.rs index 26a7a7a7..44db1dbc 100644 --- a/router/src/lib.rs +++ b/router/src/lib.rs @@ -9,7 +9,7 @@ mod http; mod grpc; mod shutdown; -use ::http::HeaderMap; +use axum::http::HeaderMap; use anyhow::{anyhow, Context, Result}; use hf_hub::api::tokio::ApiBuilder; use hf_hub::{Repo, RepoType}; diff --git a/router/src/main.rs b/router/src/main.rs index 7323cb34..c4312ea4 100644 --- a/router/src/main.rs +++ b/router/src/main.rs @@ -3,6 +3,10 @@ use clap::Parser; use opentelemetry::global; use text_embeddings_backend::DType; use veil::Redact; +use mimalloc::MiMalloc; + +#[global_allocator] +static GLOBAL: MiMalloc = MiMalloc; /// App Configuration #[derive(Parser, Redact)] From feea6347e543c05fb671e4aaafa3cf606a748d37 Mon Sep 17 00:00:00 2001 From: OlivierDehaene <23298448+OlivierDehaene@users.noreply.github.com> Date: Thu, 22 Feb 2024 11:43:13 +0100 Subject: [PATCH 2/2] fix build --- Cargo.lock | 52 +++++++++++++++++++++++++++------------ router/Cargo.toml | 8 +++--- router/src/http/server.rs | 3 ++- router/src/lib.rs | 6 ++++- 4 files changed, 47 insertions(+), 22 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7245da15..5d86ca0a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1294,9 +1294,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.22" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178" +checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" dependencies = [ "bytes", "fnv", @@ -1485,7 +1485,7 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2 0.3.22", + "h2 0.3.24", "http 0.2.11", "http-body 0.4.6", "httparse", @@ -1765,6 +1765,16 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +[[package]] +name = "libmimalloc-sys" +version = "0.1.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3979b5c37ece694f1f5e51e7ecc871fdb0f517ed04ee45f88d15d6d553cb9664" +dependencies = [ + "cc", + "libc", +] + [[package]] name = "libredox" version = "0.0.1" @@ -1948,6 +1958,15 @@ dependencies = [ "sketches-ddsketch", ] +[[package]] +name = "mimalloc" +version = "0.1.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa01922b5ea280a911e323e4d2fd24b7fe5cc4042e0d2cda3c40775cdc4bdc9c" +dependencies = [ + "libmimalloc-sys", +] + [[package]] name = "mime" version = "0.3.17" @@ -2907,7 +2926,7 @@ dependencies = [ "encoding_rs", "futures-core", "futures-util", - "h2 0.3.22", + "h2 0.3.24", "http 0.2.11", "http-body 0.4.6", "hyper 0.14.28", @@ -3504,12 +3523,13 @@ dependencies = [ "clap", "futures", "hf-hub", - "http 0.2.11", + "http 1.0.0", "init-tracing-opentelemetry", "insta", "is_close", "metrics", "metrics-exporter-prometheus", + "mimalloc", "num_cpus", "opentelemetry 0.20.0", "opentelemetry-otlp", @@ -3523,7 +3543,7 @@ dependencies = [ "tokenizers", "tokio", "tokio-stream", - "tonic 0.10.2", + "tonic 0.11.0", "tonic-build 0.10.2", "tonic-health", "tonic-reflection", @@ -3740,7 +3760,7 @@ dependencies = [ "bytes", "futures-core", "futures-util", - "h2 0.3.22", + "h2 0.3.24", "http 0.2.11", "http-body 0.4.6", "hyper 0.14.28", @@ -3758,16 +3778,16 @@ dependencies = [ [[package]] name = "tonic" -version = "0.10.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d560933a0de61cf715926b9cac824d4c883c2c43142f787595e48280c40a1d0e" +checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13" dependencies = [ "async-stream", "async-trait", "axum 0.6.20", "base64 0.21.5", "bytes", - "h2 0.3.22", + "h2 0.3.24", "http 0.2.11", "http-body 0.4.6", "hyper 0.14.28", @@ -3811,28 +3831,28 @@ dependencies = [ [[package]] name = "tonic-health" -version = "0.10.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f80db390246dfb46553481f6024f0082ba00178ea495dbb99e70ba9a4fafb5e1" +checksum = "2cef6e24bc96871001a7e48e820ab240b3de2201e59b517cf52835df2f1d2350" dependencies = [ "async-stream", "prost 0.12.3", "tokio", "tokio-stream", - "tonic 0.10.2", + "tonic 0.11.0", ] [[package]] name = "tonic-reflection" -version = "0.10.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fa37c513df1339d197f4ba21d28c918b9ef1ac1768265f11ecb6b7f1cba1b76" +checksum = "548c227bd5c0fae5925812c4ec6c66ffcfced23ea370cb823f4d18f0fc1cb6a7" dependencies = [ "prost 0.12.3", "prost-types 0.12.3", "tokio", "tokio-stream", - "tonic 0.10.2", + "tonic 0.11.0", ] [[package]] diff --git a/router/Cargo.toml b/router/Cargo.toml index 9ff5ecd4..1f6226ef 100644 --- a/router/Cargo.toml +++ b/router/Cargo.toml @@ -22,7 +22,7 @@ clap = { version = "4.1.4", features = ["derive", "env"] } futures = "^0.3" init-tracing-opentelemetry = { version = "0.14.1", features = ["opentelemetry-otlp"] } hf-hub = { version = "0.3.0", features = ["tokio"] } -http = "0.2.9" +http = "1.0.0" num_cpus = "1.16.0" metrics = "0.21.0" metrics-exporter-prometheus = { version = "0.12.1", features = [] } @@ -50,9 +50,9 @@ utoipa-swagger-ui = { version = "6.0", features = ["axum"], optional = true } # gRPC dependencies async-stream = { version = "0.3.5", optional = true } prost = { version = "0.12.1", optional = true } -tonic = { version = "0.10.2", optional = true } -tonic-health = { version = "0.10.2", optional = true } -tonic-reflection = { version = "0.10.2", optional = true } +tonic = { version = "0.11.0", optional = true } +tonic-health = { version = "0.11.0", optional = true } +tonic-reflection = { version = "0.11.0", optional = true } tokio-stream = { version = "0.1.14", optional = true } [dev-dependencies] diff --git a/router/src/http/server.rs b/router/src/http/server.rs index dd14a7a4..e9497139 100644 --- a/router/src/http/server.rs +++ b/router/src/http/server.rs @@ -12,7 +12,8 @@ use crate::{ use anyhow::Context; use axum::extract::Extension; use axum::http::HeaderValue; -use axum::http::{HeaderMap, Method, StatusCode}; +use ::http::HeaderMap; +use axum::http::{Method, StatusCode}; use axum::routing::{get, post}; use axum::{http, Json, Router}; use axum_tracing_opentelemetry::middleware::OtelAxumLayer; diff --git a/router/src/lib.rs b/router/src/lib.rs index 44db1dbc..54e93cae 100644 --- a/router/src/lib.rs +++ b/router/src/lib.rs @@ -4,12 +4,16 @@ mod prometheus; #[cfg(feature = "http")] mod http; +#[cfg(feature = "http")] +use ::http::HeaderMap; #[cfg(feature = "grpc")] mod grpc; +#[cfg(feature = "grpc")] +use tonic::codegen::http::HeaderMap; + mod shutdown; -use axum::http::HeaderMap; use anyhow::{anyhow, Context, Result}; use hf_hub::api::tokio::ApiBuilder; use hf_hub::{Repo, RepoType};