[INFO] fetching crate bookkeeper-client 0.2.1...
[INFO] checking bookkeeper-client-0.2.1 against try#264a7c4a1c917c83d13895a31231f9d93c7b67e1 for pr-132289
[INFO] extracting crate bookkeeper-client 0.2.1 into /workspace/builds/worker-6-tc2/source
[INFO] validating manifest of crates.io crate bookkeeper-client 0.2.1 on toolchain 264a7c4a1c917c83d13895a31231f9d93c7b67e1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+264a7c4a1c917c83d13895a31231f9d93c7b67e1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate bookkeeper-client 0.2.1
[INFO] finished tweaking crates.io crate bookkeeper-client 0.2.1
[INFO] tweaked toml for crates.io crate bookkeeper-client 0.2.1 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+264a7c4a1c917c83d13895a31231f9d93c7b67e1" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 214 packages to latest compatible versions
[INFO] [stderr]       Adding compact_str v0.7.1 (available: v0.8.0)
[INFO] [stderr]       Adding env_logger v0.10.2 (available: v0.11.5)
[INFO] [stderr]       Adding etcd-client v0.11.1 (available: v0.14.0)
[INFO] [stderr]       Adding prost v0.11.9 (available: v0.13.3)
[INFO] [stderr]       Adding strum v0.25.0 (available: v0.26.3)
[INFO] [stderr]       Adding tonic v0.9.2 (available: v0.12.3)
[INFO] [stderr]       Adding tonic-build v0.9.2 (available: v0.12.3)
[INFO] [stderr]       Adding zookeeper-client v0.6.4 (available: v0.9.0)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+264a7c4a1c917c83d13895a31231f9d93c7b67e1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+264a7c4a1c917c83d13895a31231f9d93c7b67e1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 046f141971894688515a76423777acf854a3c897747a41a59d379f1bfeb8799f
[INFO] running `Command { std: "docker" "start" "-a" "046f141971894688515a76423777acf854a3c897747a41a59d379f1bfeb8799f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "046f141971894688515a76423777acf854a3c897747a41a59d379f1bfeb8799f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "046f141971894688515a76423777acf854a3c897747a41a59d379f1bfeb8799f", kill_on_drop: false }`
[INFO] [stdout] 046f141971894688515a76423777acf854a3c897747a41a59d379f1bfeb8799f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+264a7c4a1c917c83d13895a31231f9d93c7b67e1" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6cf7bc943db8a45f5d9c3edef65d4f17f29c8e3fce7b2803e8db854497e54a7e
[INFO] running `Command { std: "docker" "start" "-a" "6cf7bc943db8a45f5d9c3edef65d4f17f29c8e3fce7b2803e8db854497e54a7e", kill_on_drop: false }`
[INFO] [stderr]    Compiling anyhow v1.0.91
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling rustix v0.38.38
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]    Compiling prettyplease v0.1.25
[INFO] [stderr]    Compiling bytes v1.8.0
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]    Compiling fastrand v2.1.1
[INFO] [stderr]    Compiling fixedbitset v0.4.2
[INFO] [stderr]     Checking ahash v0.7.8
[INFO] [stderr]     Checking tracing v0.1.40
[INFO] [stderr]    Compiling multimap v0.8.3
[INFO] [stderr]    Compiling axum-core v0.3.4
[INFO] [stderr]     Checking tower-layer v0.3.3
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]    Compiling petgraph v0.6.5
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking tokio v1.41.0
[INFO] [stderr]    Compiling axum v0.6.20
[INFO] [stderr]     Checking hashbrown v0.12.3
[INFO] [stderr]     Checking ahash v0.8.11
[INFO] [stderr]     Checking castaway v0.2.3
[INFO] [stderr]     Checking utf8parse v0.2.2
[INFO] [stderr]    Compiling const_format_proc_macros v0.2.33
[INFO] [stderr]    Compiling crc32c v0.6.8
[INFO] [stderr]     Checking anstyle-parse v0.2.6
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]    Compiling strum_macros v0.23.1
[INFO] [stderr]    Compiling bytemuck_derive v1.8.0
[INFO] [stderr]     Checking anstyle-query v1.1.2
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.1
[INFO] [stderr]     Checking colorchoice v1.0.3
[INFO] [stderr]     Checking anstream v0.6.17
[INFO] [stderr]     Checking compact_str v0.4.1
[INFO] [stderr]     Checking indexmap v1.9.3
[INFO] [stderr]    Compiling strum_macros v0.25.3
[INFO] [stderr]     Checking uuid v1.11.0
[INFO] [stderr]     Checking env_filter v0.1.2
[INFO] [stderr]     Checking either v1.13.0
[INFO] [stderr]     Checking hashlink v0.8.4
[INFO] [stderr]     Checking ignore-result v0.2.0
[INFO] [stderr]     Checking env_logger v0.11.5
[INFO] [stderr]     Checking const_format v0.2.33
[INFO] [stderr]     Checking sha-1 v0.10.1
[INFO] [stderr]     Checking compact_str v0.7.1
[INFO] [stderr]    Compiling test-log-macros v0.2.16
[INFO] [stderr]    Compiling async-recursion v1.1.1
[INFO] [stderr]     Checking arc-swap v1.7.1
[INFO] [stderr]     Checking yansi v1.0.1
[INFO] [stderr]     Checking diff v0.1.13
[INFO] [stderr]    Compiling prost-derive v0.11.9
[INFO] [stderr]    Compiling regex-automata v0.4.8
[INFO] [stderr]     Checking test-log v0.2.16
[INFO] [stderr]     Checking pretty_assertions v1.4.1
[INFO] [stderr]     Checking bytemuck v1.19.0
[INFO] [stderr]     Checking strum v0.23.0
[INFO] [stderr]     Checking atomic v0.6.0
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]     Checking strum v0.25.0
[INFO] [stderr]    Compiling which v4.4.2
[INFO] [stderr]    Compiling tempfile v3.13.0
[INFO] [stderr]    Compiling num_enum_derive v0.5.11
[INFO] [stderr]    Compiling prost v0.11.9
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]    Compiling prost-types v0.11.9
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking num_enum v0.5.11
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling prost-build v0.11.9
[INFO] [stderr]    Compiling tonic-build v0.9.2
[INFO] [stderr]     Checking tokio-util v0.7.12
[INFO] [stderr]     Checking tokio-io-timeout v1.2.0
[INFO] [stderr]     Checking tokio-stream v0.1.16
[INFO] [stderr]     Checking zookeeper-client v0.6.4
[INFO] [stderr]     Checking h2 v0.3.26
[INFO] [stderr]     Checking tower v0.4.13
[INFO] [stderr]    Compiling etcd-client v0.11.1
[INFO] [stderr]    Compiling bookkeeper-client v0.2.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking hyper v0.14.31
[INFO] [stderr]     Checking hyper-timeout v0.4.1
[INFO] [stderr]     Checking tonic v0.9.2
[INFO] [stdout] warning: unused imports: `BookieRegistrationClient`, `BookieServiceInfo`, `BookieUpdateStream`, `LedgerIdStoreClient`, and `LedgerMetadataStoreClient`
[INFO] [stdout]   --> src/meta.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     BookieRegistrationClient,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     BookieServiceInfo,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 12 |     BookieUpdateStream,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     LedgerIdStoreClient,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     LedgerMetadataStoreClient,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BookieRegistrationClient`, `BookieServiceInfo`, `BookieUpdateStream`, `LedgerIdStoreClient`, and `LedgerMetadataStoreClient`
[INFO] [stdout]   --> src/meta.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     BookieRegistrationClient,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     BookieServiceInfo,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 12 |     BookieUpdateStream,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     LedgerIdStoreClient,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     LedgerMetadataStoreClient,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `high_priority` is never read
[INFO] [stdout]    --> src/client/bookie.rs:302:9
[INFO] [stdout]     |
[INFO] [stdout] 300 | pub struct AddOptions<'a> {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] 301 |     pub recovery_add: bool,
[INFO] [stdout] 302 |     pub high_priority: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_add_confirmed` is never read
[INFO] [stdout]    --> src/client/bookie.rs:310:9
[INFO] [stdout]     |
[INFO] [stdout] 308 | pub struct FetchedEntry {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 309 |     pub max_lac: EntryId,
[INFO] [stdout] 310 |     pub last_add_confirmed: EntryId,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `high_priority` is never read
[INFO] [stdout]    --> src/client/bookie.rs:317:9
[INFO] [stdout]     |
[INFO] [stdout] 315 | pub struct ReadOptions<'a> {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 316 |     pub fence_ledger: bool,
[INFO] [stdout] 317 |     pub high_priority: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `new_quorum_coverage_set` is never used
[INFO] [stdout]   --> src/client/entry_distribution.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) trait HasEntryDistribution {
[INFO] [stdout]    |                  -------------------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn new_quorum_coverage_set(&self) -> QuorumCoverageSet {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `ensemble_at` and `ensemble_iter` are never used
[INFO] [stdout]    --> src/client/metadata.rs:382:8
[INFO] [stdout]     |
[INFO] [stdout] 379 | pub(crate) trait HasLedgerMetadata {
[INFO] [stdout]     |                  ----------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 382 |     fn ensemble_at(&self, entry_id: EntryId) -> (EntryId, &[BookieId], EntryId) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 |     fn ensemble_iter(&self, entry_id: EntryId) -> EnsembleIterator<'_> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `write_quorum`, `ack_quorum`, and `custom_metadata` are never read
[INFO] [stdout]   --> src/client/placement.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct EnsembleOptions<'a> {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 12 |     pub ensemble_size: u32,
[INFO] [stdout] 13 |     pub write_quorum: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 14 |     pub ack_quorum: u32,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 15 |     pub custom_metadata: &'a HashMap<String, Vec<u8>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `iter` is never used
[INFO] [stdout]   --> src/future.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 9  | pub trait Iterable {
[INFO] [stdout]    |           -------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 13 |     fn iter(&self) -> Self::Iter;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Sendable` is never constructed
[INFO] [stdout]  --> src/marker.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(crate) struct Sendable(std::rc::Rc<()>);
[INFO] [stdout]   |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `properties` is never read
[INFO] [stdout]   --> src/meta/types.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct BookieServiceInfo {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] 58 |     pub bookie_id: BookieId,
[INFO] [stdout] 59 |     pub properties: HashMap<String, String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BookieServiceInfo` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]    --> src/meta/types.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct BookieEndpoint {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] 115 |     pub id: CompactString,
[INFO] [stdout]     |         ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BookieEndpoint` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/client/bookie.rs:820:9
[INFO] [stdout]     |
[INFO] [stdout] 819 |       pub async fn connect<A: ToSocketAddrs>(addr: A, _conf: &Configuration) -> Result<Client> {
[INFO] [stdout]     |  ______________________________________________________________________________________________-
[INFO] [stdout] 820 | |         impl From<io::Error> for BkError {
[INFO] [stdout]     | |         ^^^^^----^---------^^^^^^-------
[INFO] [stdout]     | |              |    |              |
[INFO] [stdout]     | |              |    |              `BkError` is not local
[INFO] [stdout]     | |              |    `Error` is not local
[INFO] [stdout]     | |              `From` is not local
[INFO] [stdout] 821 | |             fn from(_: io::Error) -> BkError {
[INFO] [stdout] 822 | |                 BkError::with_description(ErrorKind::BookieNotAvailable, &"can't connect to bookie")
[INFO] [stdout] ...   |
[INFO] [stdout] 830 | |         Ok(client)
[INFO] [stdout] 831 | |     }
[INFO] [stdout]     | |_____- move the `impl` block outside of this async fn `<unnameable>` and up 2 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `high_priority` is never read
[INFO] [stdout]    --> src/client/bookie.rs:302:9
[INFO] [stdout]     |
[INFO] [stdout] 300 | pub struct AddOptions<'a> {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] 301 |     pub recovery_add: bool,
[INFO] [stdout] 302 |     pub high_priority: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_add_confirmed` is never read
[INFO] [stdout]    --> src/client/bookie.rs:310:9
[INFO] [stdout]     |
[INFO] [stdout] 308 | pub struct FetchedEntry {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 309 |     pub max_lac: EntryId,
[INFO] [stdout] 310 |     pub last_add_confirmed: EntryId,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `high_priority` is never read
[INFO] [stdout]    --> src/client/bookie.rs:317:9
[INFO] [stdout]     |
[INFO] [stdout] 315 | pub struct ReadOptions<'a> {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 316 |     pub fence_ledger: bool,
[INFO] [stdout] 317 |     pub high_priority: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `new_quorum_coverage_set` is never used
[INFO] [stdout]   --> src/client/entry_distribution.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) trait HasEntryDistribution {
[INFO] [stdout]    |                  -------------------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn new_quorum_coverage_set(&self) -> QuorumCoverageSet {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `ensemble_at` and `ensemble_iter` are never used
[INFO] [stdout]    --> src/client/metadata.rs:382:8
[INFO] [stdout]     |
[INFO] [stdout] 379 | pub(crate) trait HasLedgerMetadata {
[INFO] [stdout]     |                  ----------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 382 |     fn ensemble_at(&self, entry_id: EntryId) -> (EntryId, &[BookieId], EntryId) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 |     fn ensemble_iter(&self, entry_id: EntryId) -> EnsembleIterator<'_> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `write_quorum`, `ack_quorum`, and `custom_metadata` are never read
[INFO] [stdout]   --> src/client/placement.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct EnsembleOptions<'a> {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 12 |     pub ensemble_size: u32,
[INFO] [stdout] 13 |     pub write_quorum: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 14 |     pub ack_quorum: u32,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 15 |     pub custom_metadata: &'a HashMap<String, Vec<u8>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `iter` is never used
[INFO] [stdout]   --> src/future.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 9  | pub trait Iterable {
[INFO] [stdout]    |           -------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 13 |     fn iter(&self) -> Self::Iter;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Sendable` is never constructed
[INFO] [stdout]  --> src/marker.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(crate) struct Sendable(std::rc::Rc<()>);
[INFO] [stdout]   |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `properties` is never read
[INFO] [stdout]   --> src/meta/types.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct BookieServiceInfo {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] 58 |     pub bookie_id: BookieId,
[INFO] [stdout] 59 |     pub properties: HashMap<String, String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BookieServiceInfo` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]    --> src/meta/types.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct BookieEndpoint {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] 115 |     pub id: CompactString,
[INFO] [stdout]     |         ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BookieEndpoint` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/client/bookie.rs:820:9
[INFO] [stdout]     |
[INFO] [stdout] 819 |       pub async fn connect<A: ToSocketAddrs>(addr: A, _conf: &Configuration) -> Result<Client> {
[INFO] [stdout]     |  ______________________________________________________________________________________________-
[INFO] [stdout] 820 | |         impl From<io::Error> for BkError {
[INFO] [stdout]     | |         ^^^^^----^---------^^^^^^-------
[INFO] [stdout]     | |              |    |              |
[INFO] [stdout]     | |              |    |              `BkError` is not local
[INFO] [stdout]     | |              |    `Error` is not local
[INFO] [stdout]     | |              `From` is not local
[INFO] [stdout] 821 | |             fn from(_: io::Error) -> BkError {
[INFO] [stdout] 822 | |                 BkError::with_description(ErrorKind::BookieNotAvailable, &"can't connect to bookie")
[INFO] [stdout] ...   |
[INFO] [stdout] 830 | |         Ok(client)
[INFO] [stdout] 831 | |     }
[INFO] [stdout]     | |_____- move the `impl` block outside of this async fn `<unnameable>` and up 2 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `testcontainers`
[INFO] [stdout]  --> tests/client.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use testcontainers::clients::Cli as DockerCli;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^ use of undeclared crate or module `testcontainers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `testcontainers`
[INFO] [stdout]  --> tests/client.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use testcontainers::core::{Healthcheck, WaitFor};
[INFO] [stdout]   |     ^^^^^^^^^^^^^^ use of undeclared crate or module `testcontainers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `testcontainers`
[INFO] [stdout]  --> tests/client.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use testcontainers::images::generic::GenericImage;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^ use of undeclared crate or module `testcontainers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `testcontainers`
[INFO] [stdout]  --> tests/client.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use testcontainers::Container;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^ use of undeclared crate or module `testcontainers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `bookkeeper-client` (test "client") due to 4 previous errors
[INFO] running `Command { std: "docker" "inspect" "6cf7bc943db8a45f5d9c3edef65d4f17f29c8e3fce7b2803e8db854497e54a7e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6cf7bc943db8a45f5d9c3edef65d4f17f29c8e3fce7b2803e8db854497e54a7e", kill_on_drop: false }`
[INFO] [stdout] 6cf7bc943db8a45f5d9c3edef65d4f17f29c8e3fce7b2803e8db854497e54a7e
