diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index c37cd33dd4..6494daf6dc 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -3,7 +3,7 @@ "build": { "dockerfile": "Dockerfile", "args": { - "DEV_VERSION": "v42", + "DEV_VERSION": "v43", "http_proxy": "${localEnv:http_proxy}", "https_proxy": "${localEnv:https_proxy}" } diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml index 5c3357b6d4..f423f8c5bc 100644 --- a/.github/workflows/actions.yml +++ b/.github/workflows/actions.yml @@ -14,13 +14,13 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 10 steps: - - uses: linkerd/dev/actions/setup-tools@v42 + - uses: linkerd/dev/actions/setup-tools@v43 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 - run: just action-lint devcontainer-versions: runs-on: ubuntu-latest steps: - - uses: linkerd/dev/actions/setup-tools@v42 + - uses: linkerd/dev/actions/setup-tools@v43 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 - run: just action-dev-check diff --git a/.github/workflows/beta.yml b/.github/workflows/beta.yml index d1efbfe861..4a165c97bb 100644 --- a/.github/workflows/beta.yml +++ b/.github/workflows/beta.yml @@ -22,7 +22,7 @@ permissions: jobs: build: runs-on: ubuntu-latest - container: ghcr.io/linkerd/dev:v42-rust + container: ghcr.io/linkerd/dev:v43-rust timeout-minutes: 20 continue-on-error: true steps: diff --git a/.github/workflows/check-all.yml b/.github/workflows/check-all.yml index 41d50df468..531a1b0a02 100644 --- a/.github/workflows/check-all.yml +++ b/.github/workflows/check-all.yml @@ -32,7 +32,7 @@ jobs: check-all: timeout-minutes: 20 runs-on: ubuntu-latest - container: ghcr.io/linkerd/dev:v42-rust + container: ghcr.io/linkerd/dev:v43-rust steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 - run: git config --global --add safe.directory "$PWD" # actions/runner#2033 diff --git a/.github/workflows/check-each.yml b/.github/workflows/check-each.yml index b30f92d118..6e5a274038 100644 --- a/.github/workflows/check-each.yml +++ b/.github/workflows/check-each.yml @@ -37,7 +37,7 @@ jobs: list-changed-crates: timeout-minutes: 10 runs-on: ubuntu-latest - container: docker://ghcr.io/linkerd/dev:v42-rust + container: docker://ghcr.io/linkerd/dev:v43-rust steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 - run: git config --global --add safe.directory "$PWD" # actions/runner#2033 @@ -58,7 +58,7 @@ jobs: needs: list-changed-crates timeout-minutes: 20 runs-on: ubuntu-latest - container: ghcr.io/linkerd/dev:v42-rust + container: ghcr.io/linkerd/dev:v43-rust strategy: matrix: crate: ${{ fromJson(needs.list-changed-crates.outputs.crates) }} diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 197bd28aff..8505c37be0 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -41,7 +41,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 30 container: - image: docker://ghcr.io/linkerd/dev:v42-rust + image: docker://ghcr.io/linkerd/dev:v43-rust options: --security-opt seccomp=unconfined # 🤷 env: CXX: "/usr/bin/clang++-14" diff --git a/.github/workflows/deps.yml b/.github/workflows/deps.yml index 0adca6f80e..7565eb29c8 100644 --- a/.github/workflows/deps.yml +++ b/.github/workflows/deps.yml @@ -46,7 +46,7 @@ jobs: deprecated: timeout-minutes: 20 runs-on: ubuntu-latest - container: ghcr.io/linkerd/dev:v42-rust + container: ghcr.io/linkerd/dev:v43-rust steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 - run: git config --global --add safe.directory "$PWD" # actions/runner#2033 diff --git a/.github/workflows/fuzzers.yml b/.github/workflows/fuzzers.yml index 76d928e510..bd0ee2650a 100644 --- a/.github/workflows/fuzzers.yml +++ b/.github/workflows/fuzzers.yml @@ -27,7 +27,7 @@ jobs: list-changed: timeout-minutes: 3 runs-on: ubuntu-latest - container: docker://rust:1.73.0 + container: docker://rust:1.76.0 steps: - run: apt update && apt install -y jo - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 @@ -48,7 +48,7 @@ jobs: needs: [list-changed] timeout-minutes: 40 runs-on: ubuntu-latest - container: docker://rust:1.73.0 + container: docker://rust:1.76.0 strategy: matrix: dir: ${{ fromJson(needs.list-changed.outputs.dirs) }} diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 4d4bb2b6fa..0c6f38117e 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -36,7 +36,7 @@ jobs: test: timeout-minutes: 20 runs-on: ubuntu-latest - container: ghcr.io/linkerd/dev:v42-rust + container: ghcr.io/linkerd/dev:v43-rust steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 - run: git config --global --add safe.directory "$PWD" # actions/runner#2033 diff --git a/.github/workflows/k8s.yml b/.github/workflows/k8s.yml index b358aaad1a..a2a8808ba8 100644 --- a/.github/workflows/k8s.yml +++ b/.github/workflows/k8s.yml @@ -29,7 +29,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: linkerd/dev/actions/setup-tools@v42 + - uses: linkerd/dev/actions/setup-tools@v43 - name: Install linkerd CLI (edge) id: linkerd diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index e3d641c3fa..39d49e4def 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -21,7 +21,7 @@ jobs: clippy: timeout-minutes: 10 runs-on: ubuntu-latest - container: ghcr.io/linkerd/dev:v42-rust + container: ghcr.io/linkerd/dev:v43-rust steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 - run: git config --global --add safe.directory "$PWD" # actions/runner#2033 @@ -31,7 +31,7 @@ jobs: fmt: timeout-minutes: 10 runs-on: ubuntu-latest - container: ghcr.io/linkerd/dev:v42-rust + container: ghcr.io/linkerd/dev:v43-rust steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 - run: git config --global --add safe.directory "$PWD" # actions/runner#2033 @@ -40,7 +40,7 @@ jobs: docs: timeout-minutes: 10 runs-on: ubuntu-latest - container: ghcr.io/linkerd/dev:v42-rust + container: ghcr.io/linkerd/dev:v43-rust steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 - run: git config --global --add safe.directory "$PWD" # actions/runner#2033 diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 18a09b08cf..300d8d39bc 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -22,7 +22,7 @@ permissions: jobs: build: runs-on: ubuntu-latest - container: ghcr.io/linkerd/dev:v42-rust + container: ghcr.io/linkerd/dev:v43-rust timeout-minutes: 20 continue-on-error: true steps: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1611a1eb0a..29be8dbfcc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -74,7 +74,7 @@ jobs: continue-on-error: ${{ !needs.meta.outputs.publish }} runs-on: ubuntu-latest timeout-minutes: 40 - container: docker://ghcr.io/linkerd/dev:v42-rust-musl + container: docker://ghcr.io/linkerd/dev:v43-rust-musl env: LINKERD2_PROXY_VENDOR: ${{ github.repository_owner }} LINKERD2_PROXY_VERSION: ${{ needs.meta.outputs.version }} diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml index ee8b1e3222..38cdad16e1 100644 --- a/.github/workflows/shellcheck.yml +++ b/.github/workflows/shellcheck.yml @@ -15,6 +15,6 @@ jobs: timeout-minutes: 5 runs-on: ubuntu-latest steps: - - uses: linkerd/dev/actions/setup-tools@v42 + - uses: linkerd/dev/actions/setup-tools@v43 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 - run: just sh-lint diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0a5b62ebe7..85e5b693c0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,7 +24,7 @@ jobs: meshtls: timeout-minutes: 10 runs-on: ubuntu-latest - container: ghcr.io/linkerd/dev:v42-rust + container: ghcr.io/linkerd/dev:v43-rust steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 - run: git config --global --add safe.directory "$PWD" # actions/runner#2033 @@ -43,7 +43,7 @@ jobs: unit: timeout-minutes: 10 runs-on: ubuntu-latest - container: ghcr.io/linkerd/dev:v42-rust + container: ghcr.io/linkerd/dev:v43-rust steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 - run: git config --global --add safe.directory "$PWD" # actions/runner#2033 diff --git a/.github/workflows/toolchain.yml b/.github/workflows/toolchain.yml index 983dff8092..3616a9a8ef 100644 --- a/.github/workflows/toolchain.yml +++ b/.github/workflows/toolchain.yml @@ -14,7 +14,7 @@ permissions: jobs: devcontainer: runs-on: ubuntu-latest - container: ghcr.io/linkerd/dev:v42-rust + container: ghcr.io/linkerd/dev:v43-rust steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 - run: git config --global --add safe.directory "$PWD" # actions/runner#2033 @@ -37,7 +37,7 @@ jobs: workflows: runs-on: ubuntu-latest steps: - - uses: linkerd/dev/actions/setup-tools@v42 + - uses: linkerd/dev/actions/setup-tools@v43 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 - shell: bash run: | diff --git a/Dockerfile b/Dockerfile index ee515af5ca..809dda662e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ # This is intended **DEVELOPMENT ONLY**, i.e. so that proxy developers can # easily test the proxy in the context of the larger `linkerd2` project. -ARG RUST_IMAGE=ghcr.io/linkerd/dev:v42-rust +ARG RUST_IMAGE=ghcr.io/linkerd/dev:v43-rust # Use an arbitrary ~recent edge release image to get the proxy # identity-initializing and linkerd-await wrappers. diff --git a/linkerd/addr/src/addr_match.rs b/linkerd/addr/src/addr_match.rs index 29a6231d86..4f1a3c1976 100644 --- a/linkerd/addr/src/addr_match.rs +++ b/linkerd/addr/src/addr_match.rs @@ -1,7 +1,7 @@ use crate::Addr; use ipnet::IpNet; use linkerd_dns_name::{Name, Suffix}; -use std::{fmt, iter::FromIterator, net::IpAddr, sync::Arc}; +use std::{fmt, net::IpAddr, sync::Arc}; #[derive(Clone, Debug, Default)] pub struct AddrMatch { diff --git a/linkerd/app/admin/src/server/readiness.rs b/linkerd/app/admin/src/server/readiness.rs index 917fecef19..77e59e0b54 100644 --- a/linkerd/app/admin/src/server/readiness.rs +++ b/linkerd/app/admin/src/server/readiness.rs @@ -8,7 +8,7 @@ pub struct Readiness(Weak<()>); /// When all latches are dropped, the process is considered ready. #[derive(Clone, Debug)] -pub struct Latch(Arc<()>); +pub struct Latch(#[allow(dead_code)] Arc<()>); impl Readiness { pub fn new() -> (Readiness, Latch) { diff --git a/linkerd/app/gateway/src/http.rs b/linkerd/app/gateway/src/http.rs index ee2ff8a163..6a462cd84e 100644 --- a/linkerd/app/gateway/src/http.rs +++ b/linkerd/app/gateway/src/http.rs @@ -14,10 +14,7 @@ use linkerd_app_core::{ }; use linkerd_app_inbound as inbound; use linkerd_app_outbound as outbound; -use std::{ - cmp::{Eq, PartialEq}, - fmt::Debug, -}; +use std::fmt::Debug; use tokio::sync::watch; mod gateway; diff --git a/linkerd/app/inbound/src/direct.rs b/linkerd/app/inbound/src/direct.rs index 479bc5095b..5025556ffd 100644 --- a/linkerd/app/inbound/src/direct.rs +++ b/linkerd/app/inbound/src/direct.rs @@ -11,7 +11,7 @@ use linkerd_app_core::{ transport_header::{self, NewTransportHeaderServer, SessionProtocol, TransportHeader}, Conditional, Error, Infallible, NameAddr, Result, }; -use std::{convert::TryFrom, fmt::Debug}; +use std::fmt::Debug; use thiserror::Error; use tracing::{debug_span, info_span}; diff --git a/linkerd/app/inbound/src/http.rs b/linkerd/app/inbound/src/http.rs index 1be12d9365..395bfbea00 100644 --- a/linkerd/app/inbound/src/http.rs +++ b/linkerd/app/inbound/src/http.rs @@ -15,10 +15,7 @@ pub mod fuzz { use crate::{ http::router::Http, policy, - test_util::{ - support::{connect::Connect, http_util, profile, resolver}, - *, - }, + test_util::{support::connect::Connect, *}, Config, Inbound, }; use hyper::{client::conn::Builder as ClientBuilder, Body, Request, Response}; diff --git a/linkerd/app/integration/src/client.rs b/linkerd/app/integration/src/client.rs index 1b9aaf871f..146f7ba1e7 100644 --- a/linkerd/app/integration/src/client.rs +++ b/linkerd/app/integration/src/client.rs @@ -2,13 +2,10 @@ use super::*; use linkerd_app_core::proxy::http::trace; use parking_lot::Mutex; use std::io; -use std::{convert::TryFrom, sync::Arc}; use tokio::net::TcpStream; -use tokio::sync::{mpsc, oneshot}; use tokio::task::JoinHandle; use tokio_rustls::rustls::{self, ClientConfig}; use tracing::info_span; -use tracing::instrument::Instrument; type ClientError = hyper::Error; type Request = http::Request; diff --git a/linkerd/app/integration/src/controller.rs b/linkerd/app/integration/src/controller.rs index f2c5b74692..831f8541c1 100644 --- a/linkerd/app/integration/src/controller.rs +++ b/linkerd/app/integration/src/controller.rs @@ -4,14 +4,11 @@ pub use linkerd2_proxy_api::destination as pb; use linkerd2_proxy_api::net; use linkerd_app_core::proxy::http::trace; use parking_lot::Mutex; -use std::collections::{HashMap, VecDeque}; +use std::collections::VecDeque; use std::net::IpAddr; use std::ops::{Bound, RangeBounds}; -use std::sync::Arc; -use tokio::sync::mpsc; use tokio_stream::wrappers::UnboundedReceiverStream; use tonic as grpc; -use tracing::instrument::Instrument; pub fn new() -> Controller { Controller::new() diff --git a/linkerd/app/integration/src/identity.rs b/linkerd/app/integration/src/identity.rs index 94bff0cdb5..f2ba49766c 100644 --- a/linkerd/app/integration/src/identity.rs +++ b/linkerd/app/integration/src/identity.rs @@ -4,8 +4,7 @@ use std::{ collections::VecDeque, fs, io, path::{Path, PathBuf}, - sync::Arc, - time::{Duration, SystemTime}, + time::SystemTime, }; use linkerd2_proxy_api::identity as pb; diff --git a/linkerd/app/integration/src/lib.rs b/linkerd/app/integration/src/lib.rs index c28959607e..671fa69e7e 100644 --- a/linkerd/app/integration/src/lib.rs +++ b/linkerd/app/integration/src/lib.rs @@ -23,9 +23,8 @@ mod tests; pub use self::test_env::TestEnv; pub use bytes::{Buf, BufMut, Bytes}; -pub use futures::{future, FutureExt, TryFuture, TryFutureExt}; - pub use futures::stream::{Stream, StreamExt}; +pub use futures::{future, FutureExt, TryFuture, TryFutureExt}; pub use http::{HeaderMap, Request, Response, StatusCode}; pub use http_body::Body as HttpBody; pub use linkerd_app as app; @@ -43,7 +42,7 @@ use std::task::{Context, Poll}; pub use std::time::Duration; pub use tokio::io::{AsyncRead, AsyncReadExt, AsyncWrite, AsyncWriteExt, ReadBuf}; use tokio::net::TcpListener; -pub use tokio::sync::oneshot; +pub use tokio::sync::{mpsc, oneshot}; pub use tonic as grpc; pub use tower::Service; diff --git a/linkerd/app/integration/src/metrics.rs b/linkerd/app/integration/src/metrics.rs index 401c6b53a9..7faa8a4759 100644 --- a/linkerd/app/integration/src/metrics.rs +++ b/linkerd/app/integration/src/metrics.rs @@ -1,6 +1,5 @@ use std::collections::HashMap; use std::fmt; -use std::string::ToString; #[derive(Debug, Clone)] pub struct MetricMatch { diff --git a/linkerd/app/integration/src/policy.rs b/linkerd/app/integration/src/policy.rs index 004baa2efc..14760ded14 100644 --- a/linkerd/app/integration/src/policy.rs +++ b/linkerd/app/integration/src/policy.rs @@ -4,8 +4,7 @@ use api::{inbound::inbound_server_policies_server, outbound::outbound_policies_s use futures::stream; use linkerd2_proxy_api as api; use parking_lot::Mutex; -use std::{collections::VecDeque, sync::Arc, time::Duration}; -use tokio::sync::mpsc; +use std::collections::VecDeque; use tokio_stream::wrappers::UnboundedReceiverStream; use tonic as grpc; diff --git a/linkerd/app/integration/src/proxy.rs b/linkerd/app/integration/src/proxy.rs index bb3c73f45c..dda62e4e92 100644 --- a/linkerd/app/integration/src/proxy.rs +++ b/linkerd/app/integration/src/proxy.rs @@ -5,11 +5,8 @@ use linkerd_app_core::{ transport::{listen, orig_dst, Keepalive, ListenAddr}, Result, }; -use std::{ - collections::HashSet, fmt, future::Future, net::SocketAddr, pin::Pin, task::Poll, thread, -}; +use std::{collections::HashSet, thread}; use tokio::net::TcpStream; -use tracing::instrument::Instrument; pub fn new() -> Proxy { Proxy::default() diff --git a/linkerd/app/integration/src/server.rs b/linkerd/app/integration/src/server.rs index fb20d3e3ae..70017727ab 100644 --- a/linkerd/app/integration/src/server.rs +++ b/linkerd/app/integration/src/server.rs @@ -1,18 +1,11 @@ use super::*; -use futures::TryFuture; use linkerd_app_core::proxy::http::trace; use std::{ - collections::HashMap, - future::Future, io, - pin::Pin, sync::atomic::{AtomicUsize, Ordering}, - sync::Arc, - task::{Context, Poll}, }; -use tokio::{net::TcpStream, sync::oneshot, task::JoinHandle}; +use tokio::{net::TcpStream, task::JoinHandle}; use tokio_rustls::{rustls::ServerConfig, TlsAcceptor}; -use tracing::instrument::Instrument; pub fn new() -> Server { http2() diff --git a/linkerd/app/integration/src/tcp.rs b/linkerd/app/integration/src/tcp.rs index 66857df615..ff487f8ad4 100644 --- a/linkerd/app/integration/src/tcp.rs +++ b/linkerd/app/integration/src/tcp.rs @@ -2,14 +2,9 @@ use super::*; use std::collections::VecDeque; use std::io; use std::net::TcpListener as StdTcpListener; -use std::pin::Pin; use std::sync::atomic::{AtomicUsize, Ordering}; -use std::sync::Arc; -use tokio::io::{AsyncReadExt, AsyncWriteExt}; use tokio::net::TcpStream; -use tokio::sync::{mpsc, oneshot}; use tokio::task::JoinHandle; -use tracing::instrument::Instrument; type TcpConnSender = mpsc::UnboundedSender<( Option>, diff --git a/linkerd/app/integration/src/tests/profile_dst_overrides.rs b/linkerd/app/integration/src/tests/profile_dst_overrides.rs index 169eb05698..5cb6e69311 100644 --- a/linkerd/app/integration/src/tests/profile_dst_overrides.rs +++ b/linkerd/app/integration/src/tests/profile_dst_overrides.rs @@ -73,12 +73,12 @@ async fn add_a_dst_override() { let apex = "apex"; let apex_svc = Service::new(apex).await; let profile_tx = ctrl.profile_tx(apex_svc.addr().to_string()); - ctrl.destination_tx(&apex_svc.authority()) + ctrl.destination_tx(apex_svc.authority()) .send_addr(apex_svc.svc.addr); let leaf = "leaf"; let leaf_svc = Service::new(leaf).await; - ctrl.destination_tx(&leaf_svc.authority()) + ctrl.destination_tx(leaf_svc.authority()) .send_addr(leaf_svc.svc.addr); let proxy = proxy::new() @@ -114,16 +114,16 @@ async fn add_multiple_dst_overrides() { let apex = "apex"; let apex_svc = Service::new(apex).await; - ctrl.destination_tx(&apex_svc.authority()) + ctrl.destination_tx(apex_svc.authority()) .send_addr(apex_svc.svc.addr); let leaf_a = "leaf-a"; let leaf_a_svc = Service::new(leaf_a).await; - ctrl.destination_tx(&leaf_a_svc.authority()) + ctrl.destination_tx(leaf_a_svc.authority()) .send_addr(leaf_a_svc.svc.addr); let leaf_b = "leaf-b"; let leaf_b_svc = Service::new(leaf_b).await; - ctrl.destination_tx(&leaf_b_svc.authority()) + ctrl.destination_tx(leaf_b_svc.authority()) .send_addr(leaf_b_svc.svc.addr); let profile_tx = ctrl.profile_tx(apex_svc.addr().to_string()); @@ -166,15 +166,15 @@ async fn set_a_dst_override_weight_to_zero() { let apex = "apex"; let apex_svc = Service::new(apex).await; - ctrl.destination_tx(&apex_svc.authority()) + ctrl.destination_tx(apex_svc.authority()) .send_addr(apex_svc.svc.addr); let leaf_a = "leaf-a"; let leaf_a_svc = Service::new(leaf_a).await; - ctrl.destination_tx(&leaf_a_svc.authority()) + ctrl.destination_tx(leaf_a_svc.authority()) .send_addr(leaf_a_svc.svc.addr); let leaf_b = "leaf-b"; let leaf_b_svc = Service::new(leaf_b).await; - ctrl.destination_tx(&leaf_b_svc.authority()) + ctrl.destination_tx(leaf_b_svc.authority()) .send_addr(leaf_b_svc.svc.addr); let profile_tx = ctrl.profile_tx(apex_svc.addr().to_string()); @@ -235,17 +235,17 @@ async fn set_all_dst_override_weights_to_zero() { let apex = "apex"; let apex_svc = Service::new(apex).await; - let apex_tx0 = ctrl.destination_tx(&apex_svc.authority()); + let apex_tx0 = ctrl.destination_tx(apex_svc.authority()); apex_tx0.send_addr(apex_svc.svc.addr); let leaf_a = "leaf-a"; let leaf_a_svc = Service::new(leaf_a).await; - let leaf_a_tx = ctrl.destination_tx(&leaf_a_svc.authority()); + let leaf_a_tx = ctrl.destination_tx(leaf_a_svc.authority()); leaf_a_tx.send_addr(leaf_a_svc.svc.addr); let leaf_b = "leaf-b"; let leaf_b_svc = Service::new(leaf_b).await; - let leaf_b_tx = ctrl.destination_tx(&leaf_b_svc.authority()); + let leaf_b_tx = ctrl.destination_tx(leaf_b_svc.authority()); leaf_b_tx.send_addr(leaf_b_svc.svc.addr); - let apex_tx1 = ctrl.destination_tx(&apex_svc.authority()); + let apex_tx1 = ctrl.destination_tx(apex_svc.authority()); let profile_tx = ctrl.profile_tx(apex_svc.addr().to_string()); profile_tx.send(profile( @@ -308,9 +308,9 @@ async fn remove_a_dst_override() { let leaf = "leaf"; let leaf_svc = Service::new(leaf).await; let ctrl = controller::new_unordered(); - let apex_tx0 = ctrl.destination_tx(&apex_svc.authority()); - let leaf_tx = ctrl.destination_tx(&leaf_svc.authority()); - let apex_tx1 = ctrl.destination_tx(&apex_svc.authority()); + let apex_tx0 = ctrl.destination_tx(apex_svc.authority()); + let leaf_tx = ctrl.destination_tx(leaf_svc.authority()); + let apex_tx1 = ctrl.destination_tx(apex_svc.authority()); let profile_tx = ctrl.profile_tx(apex_svc.addr().to_string()); profile_tx.send(profile( diff --git a/linkerd/app/outbound/src/http/handle_proxy_error_headers.rs b/linkerd/app/outbound/src/http/handle_proxy_error_headers.rs index 6f03f51325..7d85460d3e 100644 --- a/linkerd/app/outbound/src/http/handle_proxy_error_headers.rs +++ b/linkerd/app/outbound/src/http/handle_proxy_error_headers.rs @@ -5,7 +5,6 @@ use linkerd_app_core::{ svc, tls, }; use std::{ - future::Future, pin::Pin, task::{Context, Poll}, }; diff --git a/linkerd/app/outbound/src/http/require_id_header.rs b/linkerd/app/outbound/src/http/require_id_header.rs index c8f6f872ec..4380e42bb3 100644 --- a/linkerd/app/outbound/src/http/require_id_header.rs +++ b/linkerd/app/outbound/src/http/require_id_header.rs @@ -31,7 +31,7 @@ impl NewRequireIdentity { Self { inner } } - pub fn layer() -> impl svc::layer::Layer + Clone + Copy { + pub fn layer() -> impl svc::layer::Layer + Copy { svc::layer::mk(Self::new) } } diff --git a/linkerd/app/outbound/src/tcp.rs b/linkerd/app/outbound/src/tcp.rs index a2f6d587e7..eb433ba6d0 100644 --- a/linkerd/app/outbound/src/tcp.rs +++ b/linkerd/app/outbound/src/tcp.rs @@ -2,7 +2,7 @@ use crate::Outbound; use linkerd_app_core::{ io, svc, transport::{self, addrs::*, metrics}, - Error, + Error, Infallible, }; mod connect; @@ -55,7 +55,7 @@ impl Outbound { .push(metrics::NewServer::layer( rt.metrics.proxy.transport.clone(), )) - .push_filter(|t: T| Accept::try_from(t.param())) + .push_filter(|t: T| Ok::<_, Infallible>(Accept::from(t.param()))) .push(rt.metrics.tcp_errors.to_layer()) .instrument(mk_span) .arc_new_tcp() diff --git a/linkerd/app/outbound/src/tcp/endpoint.rs b/linkerd/app/outbound/src/tcp/endpoint.rs index 51ad0ac4ac..3a9c6a8dd3 100644 --- a/linkerd/app/outbound/src/tcp/endpoint.rs +++ b/linkerd/app/outbound/src/tcp/endpoint.rs @@ -1,13 +1,6 @@ use super::{tagged_transport::TaggedTransport, *}; -use crate::{ConnectMeta, Outbound}; -use linkerd_app_core::{ - io, - proxy::http, - svc, tls, - transport::{self, ClientAddr, Local, Remote, ServerAddr}, - transport_header::SessionProtocol, - Error, -}; +use crate::ConnectMeta; +use linkerd_app_core::{proxy::http, tls, transport_header::SessionProtocol}; impl Outbound { pub fn push_tcp_endpoint( diff --git a/linkerd/app/outbound/src/tcp/tagged_transport.rs b/linkerd/app/outbound/src/tcp/tagged_transport.rs index a1ddcfb1c3..0c4baf41ef 100644 --- a/linkerd/app/outbound/src/tcp/tagged_transport.rs +++ b/linkerd/app/outbound/src/tcp/tagged_transport.rs @@ -9,7 +9,6 @@ use linkerd_app_core::{ Conditional, Error, Result, }; use std::{ - future::Future, pin::Pin, str::FromStr, task::{Context, Poll}, diff --git a/linkerd/conditional/src/lib.rs b/linkerd/conditional/src/lib.rs index 3e124904cf..15a13f9a48 100644 --- a/linkerd/conditional/src/lib.rs +++ b/linkerd/conditional/src/lib.rs @@ -11,7 +11,7 @@ pub enum Conditional { impl Conditional where - R: Copy + Clone, + R: Copy, { pub fn as_ref(&self) -> Conditional<&'_ C, R> { match self { diff --git a/linkerd/duplex/src/lib.rs b/linkerd/duplex/src/lib.rs index e016dbb353..c61c4a57c7 100644 --- a/linkerd/duplex/src/lib.rs +++ b/linkerd/duplex/src/lib.rs @@ -48,12 +48,14 @@ struct CopyBuf { write_pos: usize, } +#[allow(dead_code)] enum Buffered { NotEmpty, Read(usize), Eof, } +#[allow(dead_code)] enum Drained { BufferEmpty, Partial(usize), diff --git a/linkerd/http-box/src/erase_request.rs b/linkerd/http-box/src/erase_request.rs index 5f373167a7..5d5491c3d1 100644 --- a/linkerd/http-box/src/erase_request.rs +++ b/linkerd/http-box/src/erase_request.rs @@ -32,7 +32,7 @@ impl EraseRequest { Self(inner) } - pub fn layer() -> impl layer::Layer + Clone + Copy { + pub fn layer() -> impl layer::Layer + Copy { layer::mk(Self::new) } } diff --git a/linkerd/http-box/src/erase_response.rs b/linkerd/http-box/src/erase_response.rs index cb4daab6aa..908c26f7a5 100644 --- a/linkerd/http-box/src/erase_response.rs +++ b/linkerd/http-box/src/erase_response.rs @@ -33,7 +33,7 @@ impl EraseResponse { Self(inner) } - pub fn layer() -> impl layer::Layer + Clone + Copy { + pub fn layer() -> impl layer::Layer + Copy { layer::mk(Self::new) } } diff --git a/linkerd/http-box/src/request.rs b/linkerd/http-box/src/request.rs index af8bacc4d3..1786f930fc 100644 --- a/linkerd/http-box/src/request.rs +++ b/linkerd/http-box/src/request.rs @@ -16,14 +16,14 @@ impl BoxRequest { BoxRequest(inner, PhantomData) } - pub fn layer() -> impl layer::Layer + Clone + Copy { + pub fn layer() -> impl layer::Layer + Copy { layer::mk(Self::new) } } impl BoxRequest { /// Constructs a boxing layer that erases the inner request type with [`EraseRequest`]. - pub fn erased() -> impl layer::Layer> + Clone + Copy { + pub fn erased() -> impl layer::Layer> + Copy { EraseRequest::layer() } } diff --git a/linkerd/http-box/src/response.rs b/linkerd/http-box/src/response.rs index 86bb3e7635..550cbb6b4d 100644 --- a/linkerd/http-box/src/response.rs +++ b/linkerd/http-box/src/response.rs @@ -10,12 +10,12 @@ use std::task::{Context, Poll}; pub struct BoxResponse(S); impl BoxResponse { - pub fn layer() -> impl layer::Layer + Clone + Copy { + pub fn layer() -> impl layer::Layer + Copy { layer::mk(Self) } /// Constructs a boxing layer that erases the inner response type with [`EraseResponse`]. - pub fn erased() -> impl layer::Layer> + Clone + Copy { + pub fn erased() -> impl layer::Layer> + Copy { EraseResponse::layer() } } diff --git a/linkerd/identity/src/lib.rs b/linkerd/identity/src/lib.rs index d240c5f0ce..adbca7b010 100644 --- a/linkerd/identity/src/lib.rs +++ b/linkerd/identity/src/lib.rs @@ -5,7 +5,6 @@ mod credentials; mod metrics; use linkerd_error::{Error, Result}; -use std::convert::From; use std::str::FromStr; pub use self::{ diff --git a/linkerd/metrics/src/fmt.rs b/linkerd/metrics/src/fmt.rs index 16bc4ada4f..7ded04ed29 100644 --- a/linkerd/metrics/src/fmt.rs +++ b/linkerd/metrics/src/fmt.rs @@ -1,5 +1,5 @@ use std::fmt; -use std::marker::{PhantomData, Sized}; +use std::marker::PhantomData; /// Writes a block of metrics in prometheus-formatted output. pub trait FmtMetrics { diff --git a/linkerd/proxy/core/src/resolve.rs b/linkerd/proxy/core/src/resolve.rs index b88b5a1bb3..ec897035cd 100644 --- a/linkerd/proxy/core/src/resolve.rs +++ b/linkerd/proxy/core/src/resolve.rs @@ -2,7 +2,6 @@ use futures::prelude::*; use linkerd_error::Error; use std::{ fmt::Debug, - future::Future, net::SocketAddr, task::{Context, Poll}, }; diff --git a/linkerd/proxy/dns-resolve/src/lib.rs b/linkerd/proxy/dns-resolve/src/lib.rs index 15ba0c86d0..c69bec4376 100644 --- a/linkerd/proxy/dns-resolve/src/lib.rs +++ b/linkerd/proxy/dns-resolve/src/lib.rs @@ -1,7 +1,7 @@ #![deny(rust_2018_idioms, clippy::disallowed_methods, clippy::disallowed_types)] #![forbid(unsafe_code)] -use futures::{future, prelude::*, stream}; +use futures::prelude::*; use linkerd_addr::{Addr, NameAddr}; use linkerd_dns as dns; use linkerd_error::Error; diff --git a/linkerd/proxy/http/src/classify/channel.rs b/linkerd/proxy/http/src/classify/channel.rs index b025e4a270..d881cf11a6 100644 --- a/linkerd/proxy/http/src/classify/channel.rs +++ b/linkerd/proxy/http/src/classify/channel.rs @@ -5,7 +5,6 @@ use linkerd_stack::{layer, ExtractParam, NewService, Service}; use pin_project::{pin_project, pinned_drop}; use std::{ fmt::Debug, - future::Future, marker::PhantomData, pin::Pin, task::{Context, Poll}, diff --git a/linkerd/proxy/http/src/h1.rs b/linkerd/proxy/http/src/h1.rs index ee5d3c89fa..b1d00223f3 100644 --- a/linkerd/proxy/http/src/h1.rs +++ b/linkerd/proxy/http/src/h1.rs @@ -10,7 +10,7 @@ use http::{ use linkerd_error::{Error, Result}; use linkerd_http_box::BoxBody; use linkerd_stack::MakeConnection; -use std::{future::Future, mem, pin::Pin, time::Duration}; +use std::{mem, pin::Pin, time::Duration}; use tracing::{debug, trace}; #[derive(Copy, Clone, Debug)] diff --git a/linkerd/proxy/http/src/h2.rs b/linkerd/proxy/http/src/h2.rs index 6f67098f1e..778c37609a 100644 --- a/linkerd/proxy/http/src/h2.rs +++ b/linkerd/proxy/http/src/h2.rs @@ -8,7 +8,6 @@ use hyper::{ use linkerd_error::{Error, Result}; use linkerd_stack::{MakeConnection, Service}; use std::{ - future::Future, marker::PhantomData, pin::Pin, task::{Context, Poll}, diff --git a/linkerd/proxy/http/src/normalize_uri.rs b/linkerd/proxy/http/src/normalize_uri.rs index 138556206f..60d9b43499 100644 --- a/linkerd/proxy/http/src/normalize_uri.rs +++ b/linkerd/proxy/http/src/normalize_uri.rs @@ -53,7 +53,7 @@ pub struct MarkAbsoluteForm { // === impl NewNormalizeUri === impl NewNormalizeUri<(), N> { - pub fn layer() -> impl layer::Layer + Copy + Clone { + pub fn layer() -> impl layer::Layer + Copy { layer::mk(|inner| Self::new((), inner)) } } @@ -137,7 +137,7 @@ impl MarkAbsoluteForm { Self { inner } } - pub fn layer() -> impl layer::Layer + Copy + Clone { + pub fn layer() -> impl layer::Layer + Copy { layer::mk(Self::new) } } diff --git a/linkerd/proxy/http/src/orig_proto.rs b/linkerd/proxy/http/src/orig_proto.rs index 05471bda62..858b7a8431 100644 --- a/linkerd/proxy/http/src/orig_proto.rs +++ b/linkerd/proxy/http/src/orig_proto.rs @@ -1,12 +1,11 @@ use super::{h1, h2, upgrade}; -use futures::{future, prelude::*}; +use futures::prelude::*; use http::header::{HeaderValue, TRANSFER_ENCODING}; use hyper::body::HttpBody; use linkerd_error::{Error, Result}; use linkerd_http_box::BoxBody; use linkerd_stack::{layer, MakeConnection, Service}; use std::{ - future::Future, pin::Pin, task::{Context, Poll}, }; @@ -231,7 +230,7 @@ impl HttpBody for UpgradeResponseBody { // === impl Downgrade === impl Downgrade { - pub fn layer() -> impl layer::Layer + Copy + Clone { + pub fn layer() -> impl layer::Layer + Copy { layer::mk(|inner| Self { inner }) } } diff --git a/linkerd/proxy/http/src/override_authority.rs b/linkerd/proxy/http/src/override_authority.rs index 25c3ac5bbd..39da735b3e 100644 --- a/linkerd/proxy/http/src/override_authority.rs +++ b/linkerd/proxy/http/src/override_authority.rs @@ -1,5 +1,5 @@ use super::h1; -use http::{self, header::AsHeaderName, uri::Authority}; +use http::{header::AsHeaderName, uri::Authority}; use linkerd_stack::{layer, NewService, Param}; use std::{ fmt, diff --git a/linkerd/proxy/http/src/retain.rs b/linkerd/proxy/http/src/retain.rs index ab9ed7bf6c..e5ed0f9deb 100644 --- a/linkerd/proxy/http/src/retain.rs +++ b/linkerd/proxy/http/src/retain.rs @@ -39,7 +39,7 @@ impl Retain { } } - pub fn layer() -> impl layer::Layer + Copy + Clone { + pub fn layer() -> impl layer::Layer + Copy { layer::mk(Self::new) } } diff --git a/linkerd/proxy/resolve/src/recover.rs b/linkerd/proxy/resolve/src/recover.rs index fb0f980e68..885c845f67 100644 --- a/linkerd/proxy/resolve/src/recover.rs +++ b/linkerd/proxy/resolve/src/recover.rs @@ -1,11 +1,9 @@ //! A middleware that recovers a resolution after some failures. -use futures::stream::TryStream; -use futures::{prelude::*, ready, FutureExt, Stream}; +use futures::{prelude::*, ready}; use linkerd_error::{Error, Recover}; use linkerd_proxy_core::resolve::{self, Update}; use pin_project::pin_project; -use std::future::Future; use std::pin::Pin; use std::task::{Context, Poll}; use thiserror::Error; diff --git a/linkerd/proxy/server-policy/src/authz.rs b/linkerd/proxy/server-policy/src/authz.rs index e2222bf4e7..459c5ac9b2 100644 --- a/linkerd/proxy/server-policy/src/authz.rs +++ b/linkerd/proxy/server-policy/src/authz.rs @@ -56,7 +56,7 @@ impl Suffix { #[cfg(feature = "proto")] pub mod proto { use super::*; - use crate::{authz::Network, meta::proto::InvalidMeta}; + use crate::meta::proto::InvalidMeta; use linkerd2_proxy_api::{inbound as api, net::InvalidIpNetwork}; #[derive(Debug, thiserror::Error)] diff --git a/linkerd/proxy/tap/src/grpc/match_.rs b/linkerd/proxy/tap/src/grpc/match_.rs index 3042def496..e1fb8fc32a 100644 --- a/linkerd/proxy/tap/src/grpc/match_.rs +++ b/linkerd/proxy/tap/src/grpc/match_.rs @@ -2,7 +2,7 @@ use crate::Inspect; use ipnet::{Ipv4Net, Ipv6Net}; use linkerd2_proxy_api::net::ip_address; use linkerd2_proxy_api::tap::observe_request; -use std::{boxed::Box, collections::BTreeMap, net, str::FromStr}; +use std::{collections::BTreeMap, net, str::FromStr}; use thiserror::Error; #[derive(Clone, Debug)] diff --git a/linkerd/proxy/tap/src/grpc/server.rs b/linkerd/proxy/tap/src/grpc/server.rs index 892c40539a..77e6a64c49 100644 --- a/linkerd/proxy/tap/src/grpc/server.rs +++ b/linkerd/proxy/tap/src/grpc/server.rs @@ -8,7 +8,6 @@ use linkerd_conditional::Conditional; use linkerd_proxy_http::HasH2Reason; use linkerd_tls as tls; use pin_project::pin_project; -use std::convert::TryFrom; use std::iter; use std::pin::Pin; use std::sync::atomic::{AtomicUsize, Ordering}; diff --git a/linkerd/proxy/tcp/src/forward.rs b/linkerd/proxy/tcp/src/forward.rs index 9b43e2ad46..ee7228ff16 100644 --- a/linkerd/proxy/tcp/src/forward.rs +++ b/linkerd/proxy/tcp/src/forward.rs @@ -3,7 +3,6 @@ use linkerd_duplex::Duplex; use linkerd_error::{Error, Result}; use linkerd_stack::layer; use std::{ - future::Future, pin::Pin, task::{Context, Poll}, }; @@ -20,7 +19,7 @@ impl Forward { Self { connect } } - pub fn layer() -> impl layer::Layer + Clone + Copy { + pub fn layer() -> impl layer::Layer + Copy { layer::mk(Self::new) } } diff --git a/linkerd/reconnect/src/lib.rs b/linkerd/reconnect/src/lib.rs index 40a3de0f41..e1dabebd8b 100644 --- a/linkerd/reconnect/src/lib.rs +++ b/linkerd/reconnect/src/lib.rs @@ -5,7 +5,7 @@ #[cfg(test)] mod tests; -use futures::{future, prelude::*, ready}; +use futures::{prelude::*, ready}; use linkerd_error::{Error, Recover}; use linkerd_stack::{layer, NewService, Service}; use std::task::{Context, Poll}; diff --git a/linkerd/router/src/lib.rs b/linkerd/router/src/lib.rs index 324539628b..39be0ee5f9 100644 --- a/linkerd/router/src/lib.rs +++ b/linkerd/router/src/lib.rs @@ -1,7 +1,7 @@ #![deny(rust_2018_idioms, clippy::disallowed_methods, clippy::disallowed_types)] #![forbid(unsafe_code)] -use futures::{future, prelude::*}; +use futures::prelude::*; use linkerd_error::Error; use linkerd_stack::{layer, ExtractParam, NewService, Oneshot, Service, ServiceExt}; use std::{ diff --git a/linkerd/service-profiles/src/default.rs b/linkerd/service-profiles/src/default.rs index 66ef39fae9..c80a01f8de 100644 --- a/linkerd/service-profiles/src/default.rs +++ b/linkerd/service-profiles/src/default.rs @@ -1,5 +1,5 @@ use crate::{GetProfile, LookupAddr, Receiver}; -use futures::{future, prelude::*}; +use futures::prelude::*; use linkerd_error::Error; use std::task::{Context, Poll}; use tracing::debug; diff --git a/linkerd/service-profiles/src/http/proxy.rs b/linkerd/service-profiles/src/http/proxy.rs index a4607d28fd..09ed44db7c 100644 --- a/linkerd/service-profiles/src/http/proxy.rs +++ b/linkerd/service-profiles/src/http/proxy.rs @@ -1,6 +1,6 @@ use super::{RequestMatch, Route}; use crate::{Profile, Receiver, ReceiverStream}; -use futures::{future, prelude::*}; +use futures::prelude::*; use linkerd_error::{Error, Result}; use linkerd_stack::{layer, NewService, Param, Proxy, Service}; use std::{ diff --git a/linkerd/stack/src/arc_new_service.rs b/linkerd/stack/src/arc_new_service.rs index 8b3da45bfc..8800c780e2 100644 --- a/linkerd/stack/src/arc_new_service.rs +++ b/linkerd/stack/src/arc_new_service.rs @@ -6,7 +6,7 @@ pub struct ArcNewService { } impl ArcNewService { - pub fn layer() -> impl layer::Layer + Clone + Copy + pub fn layer() -> impl layer::Layer + Copy where N: NewService + Send + Sync + 'static, S: Send + 'static, diff --git a/linkerd/stack/src/loadshed.rs b/linkerd/stack/src/loadshed.rs index b481e83c71..e512d34863 100644 --- a/linkerd/stack/src/loadshed.rs +++ b/linkerd/stack/src/loadshed.rs @@ -27,7 +27,7 @@ impl LoadShed { /// (e.g., via [`SpawnReady`], where appropriate). /// /// [`SpawnReady`]: tower::spawn_ready::SpawnReady - pub fn layer() -> impl layer::Layer + Copy + Clone { + pub fn layer() -> impl layer::Layer + Copy { layer::mk(Self::new) } diff --git a/linkerd/stack/src/result.rs b/linkerd/stack/src/result.rs index 3822f47b15..aa8830c468 100644 --- a/linkerd/stack/src/result.rs +++ b/linkerd/stack/src/result.rs @@ -1,4 +1,4 @@ -use futures::{future, prelude::*}; +use futures::prelude::*; use linkerd_error::Error; use std::{ fmt, diff --git a/linkerd/system/src/linux.rs b/linkerd/system/src/linux.rs index d8a27a9544..80f5e1060c 100644 --- a/linkerd/system/src/linux.rs +++ b/linkerd/system/src/linux.rs @@ -1,4 +1,4 @@ -use libc::{self, pid_t}; +use libc::pid_t; use procfs::{ process::{self, LimitValue, Process}, ProcResult, diff --git a/linkerd/tls/src/client.rs b/linkerd/tls/src/client.rs index 74a1434c1d..ca07551208 100644 --- a/linkerd/tls/src/client.rs +++ b/linkerd/tls/src/client.rs @@ -6,7 +6,6 @@ use linkerd_io as io; use linkerd_stack::{layer, MakeConnection, NewService, Oneshot, Param, Service, ServiceExt}; use std::{ fmt, - future::Future, ops::Deref, pin::Pin, str::FromStr, diff --git a/linkerd/trace-context/src/lib.rs b/linkerd/trace-context/src/lib.rs index 74f71df394..ed8c36017c 100644 --- a/linkerd/trace-context/src/lib.rs +++ b/linkerd/trace-context/src/lib.rs @@ -9,7 +9,6 @@ use bytes::Bytes; use linkerd_error::Error; use rand::Rng; use std::collections::HashMap; -use std::convert::TryFrom; use std::fmt; use std::time::SystemTime; use thiserror::Error; diff --git a/linkerd/trace-context/src/service.rs b/linkerd/trace-context/src/service.rs index b4ebd482d5..310509b303 100644 --- a/linkerd/trace-context/src/service.rs +++ b/linkerd/trace-context/src/service.rs @@ -3,7 +3,6 @@ use futures::{future::Either, prelude::*}; use linkerd_stack::layer; use std::{ collections::HashMap, - future::Future, pin::Pin, task::{Context, Poll}, time::SystemTime, diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 8142c30126..624eb0ea63 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,2 +1,2 @@ [toolchain] -channel = "1.73.0" +channel = "1.76.0"