[INFO] cloning repository https://github.com/dynamder/AetherServer [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dynamder/AetherServer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdynamder%2FAetherServer", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdynamder%2FAetherServer'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 4559b8f4467cfc834278bb3fde03a388597e895a [INFO] checking dynamder/AetherServer against master#d5419f1e97b90741d51841f800d3c697c662567d for pr-147565 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdynamder%2FAetherServer" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/dynamder/AetherServer [INFO] finished tweaking git repo https://github.com/dynamder/AetherServer [INFO] tweaked toml for git repo https://github.com/dynamder/AetherServer written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/dynamder/AetherServer on toolchain d5419f1e97b90741d51841f800d3c697c662567d [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d5419f1e97b90741d51841f800d3c697c662567d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/dynamder/AetherServer already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d5419f1e97b90741d51841f800d3c697c662567d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded mockall v0.13.1 [INFO] [stderr] Downloaded fragile v2.0.1 [INFO] [stderr] Downloaded mockall_derive v0.13.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d5419f1e97b90741d51841f800d3c697c662567d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 083948a7e913427eafbad09d1901a1f907e84c992cc6924c86c00391b7c881e8 [INFO] running `Command { std: "docker" "start" "-a" "083948a7e913427eafbad09d1901a1f907e84c992cc6924c86c00391b7c881e8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "083948a7e913427eafbad09d1901a1f907e84c992cc6924c86c00391b7c881e8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "083948a7e913427eafbad09d1901a1f907e84c992cc6924c86c00391b7c881e8", kill_on_drop: false }` [INFO] [stdout] 083948a7e913427eafbad09d1901a1f907e84c992cc6924c86c00391b7c881e8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d5419f1e97b90741d51841f800d3c697c662567d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a1ed98e164cbb29fcce0941157efbe8ed9ca0b71129d857502d5b7c5d147432b [INFO] running `Command { std: "docker" "start" "-a" "a1ed98e164cbb29fcce0941157efbe8ed9ca0b71129d857502d5b7c5d147432b", kill_on_drop: false }` [INFO] [stderr] Compiling stable_deref_trait v1.2.0 [INFO] [stderr] Compiling cc v1.2.25 [INFO] [stderr] Compiling smallvec v1.15.0 [INFO] [stderr] Compiling litemap v0.8.0 [INFO] [stderr] Compiling writeable v0.6.1 [INFO] [stderr] Compiling futures-core v0.3.31 [INFO] [stderr] Compiling syn v2.0.101 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Compiling icu_normalizer_data v2.0.0 [INFO] [stderr] Compiling icu_properties_data v2.0.1 [INFO] [stderr] Compiling futures-sink v0.3.31 [INFO] [stderr] Compiling foreign-types-shared v0.1.1 [INFO] [stderr] Compiling foldhash v0.1.5 [INFO] [stderr] Compiling percent-encoding v2.3.1 [INFO] [stderr] Compiling allocator-api2 v0.2.21 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling foreign-types v0.3.2 [INFO] [stderr] Compiling socket2 v0.5.10 [INFO] [stderr] Compiling mio v1.0.4 [INFO] [stderr] Compiling form_urlencoded v1.2.1 [INFO] [stderr] Compiling futures-io v0.3.31 [INFO] [stderr] Compiling utf8_iter v1.0.4 [INFO] [stderr] Compiling futures-task v0.3.31 [INFO] [stderr] Compiling bitflags v2.9.1 [INFO] [stderr] Compiling pin-utils v0.1.0 [INFO] [stderr] Compiling bytes v1.10.1 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling tracing-core v0.1.33 [INFO] [stderr] Compiling parking v2.2.1 [INFO] [stderr] Compiling openssl-probe v0.1.6 [INFO] [stderr] Compiling crc-catalog v2.4.0 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling spin v0.9.8 [INFO] [stderr] Compiling parking_lot v0.12.3 [INFO] [stderr] Compiling concurrent-queue v2.5.0 [INFO] [stderr] Compiling hashbrown v0.15.3 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling crossbeam-queue v0.3.12 [INFO] [stderr] Compiling crc v3.3.0 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling futures-intrusive v0.5.0 [INFO] [stderr] Compiling tokio v1.45.1 [INFO] [stderr] Compiling event-listener v5.4.0 [INFO] [stderr] Compiling base64 v0.22.1 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Compiling flume v0.11.1 [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling openssl-sys v0.9.109 [INFO] [stderr] Compiling libsqlite3-sys v0.30.1 [INFO] [stderr] Compiling hex v0.4.3 [INFO] [stderr] Compiling dotenvy v0.15.7 [INFO] [stderr] Compiling mockall_derive v0.13.1 [INFO] [stderr] Checking indexmap v2.9.0 [INFO] [stderr] Checking hashlink v0.10.0 [INFO] [stderr] Checking atoi v2.0.0 [INFO] [stderr] Compiling openssl v0.10.73 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Checking predicates v3.1.3 [INFO] [stderr] Checking getrandom v0.3.3 [INFO] [stderr] Checking fragile v2.0.1 [INFO] [stderr] Checking downcast v0.11.0 [INFO] [stderr] Checking chrono v0.4.41 [INFO] [stderr] Checking uuid v1.17.0 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling tracing-attributes v0.1.28 [INFO] [stderr] Compiling thiserror-impl v2.0.12 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling tokio-stream v0.1.17 [INFO] [stderr] Compiling tracing v0.1.41 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.0 [INFO] [stderr] Compiling thiserror v2.0.12 [INFO] [stderr] Checking zerovec v0.11.2 [INFO] [stderr] Checking zerotrie v0.2.2 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling tinystr v0.8.1 [INFO] [stderr] Compiling potential_utf v0.1.2 [INFO] [stderr] Compiling icu_collections v2.0.0 [INFO] [stderr] Compiling icu_locale_core v2.0.0 [INFO] [stderr] Checking mockall v0.13.1 [INFO] [stderr] Checking icu_provider v2.0.0 [INFO] [stderr] Checking icu_normalizer v2.0.0 [INFO] [stderr] Checking icu_properties v2.0.1 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking either v1.15.0 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking dashmap v6.1.0 [INFO] [stderr] Checking idna v1.0.3 [INFO] [stderr] Checking url v2.5.4 [INFO] [stderr] Checking sqlx-core v0.8.6 [INFO] [stderr] Checking sqlx-sqlite v0.8.6 [INFO] [stderr] Compiling sqlx-macros-core v0.8.6 [INFO] [stderr] Compiling sqlx-macros v0.8.6 [INFO] [stderr] Checking sqlx v0.8.6 [INFO] [stderr] Checking Backend_Split v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `tokio::sync::RwLock` [INFO] [stdout] --> src/aether_msg/msg.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use tokio::sync::RwLock; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BTreeMap` and `HashMap` [INFO] [stdout] --> src/aether_msg/msg_manage.rs:2:24 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::{BTreeMap, HashMap, HashSet, VecDeque}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Migrate` [INFO] [stdout] --> src/aether_msg/msg_manage.rs:7:21 [INFO] [stdout] | [INFO] [stdout] 7 | use sqlx::migrate::{Migrate, MigrateDatabase}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Message` and `UserInfo` [INFO] [stdout] --> src/aether_msg/msg_manage.rs:811:34 [INFO] [stdout] | [INFO] [stdout] 811 | use crate::aether_msg::msg::{Message, MessageBuilder, MsgContent, UserInfo}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::runtime::Runtime` [INFO] [stdout] --> src/aether_msg/msg_manage.rs:814:9 [INFO] [stdout] | [INFO] [stdout] 814 | use tokio::runtime::Runtime; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `msg` [INFO] [stdout] --> src/aether_session.rs:1:25 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::aether_msg::{msg,msg_manage}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::aether_msg::msg::UserInfo` [INFO] [stdout] --> src/aether_session.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::aether_msg::msg::UserInfo; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `MessageBuilder` and `MsgContent` [INFO] [stdout] --> src/aether_session.rs:7:39 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::aether_msg::msg::{Message, MessageBuilder,MsgContent}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Message` and `UserInfo` [INFO] [stdout] --> src/aether_session.rs:85:34 [INFO] [stdout] | [INFO] [stdout] 85 | use crate::aether_msg::msg::{Message, MessageBuilder, MsgContent, UserInfo}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MessageSequence` [INFO] [stdout] --> src/aether_session.rs:86:41 [INFO] [stdout] | [INFO] [stdout] 86 | use crate::aether_msg::msg_manage::{MessageSequence}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::runtime::Runtime` [INFO] [stdout] --> src/aether_session.rs:90:9 [INFO] [stdout] | [INFO] [stdout] 90 | use tokio::runtime::Runtime; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::sync::RwLock` [INFO] [stdout] --> src/aether_msg/msg.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use tokio::sync::RwLock; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BTreeMap` and `HashMap` [INFO] [stdout] --> src/aether_msg/msg_manage.rs:2:24 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::{BTreeMap, HashMap, HashSet, VecDeque}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Migrate` [INFO] [stdout] --> src/aether_msg/msg_manage.rs:7:21 [INFO] [stdout] | [INFO] [stdout] 7 | use sqlx::migrate::{Migrate, MigrateDatabase}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `msg_manage` and `msg` [INFO] [stdout] --> src/aether_session.rs:1:25 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::aether_msg::{msg,msg_manage}; [INFO] [stdout] | ^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::aether_msg::msg::UserInfo` [INFO] [stdout] --> src/aether_session.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::aether_msg::msg::UserInfo; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `MessageBuilder` and `MsgContent` [INFO] [stdout] --> src/aether_session.rs:7:39 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::aether_msg::msg::{Message, MessageBuilder,MsgContent}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/aether_msg/msg_manage.rs:277:37 [INFO] [stdout] | [INFO] [stdout] 277 | ... Err(e) => {} [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tx` [INFO] [stdout] --> src/aether_msg/msg_manage.rs:266:13 [INFO] [stdout] | [INFO] [stdout] 266 | let(tx,mut rx) = tokio::sync::mpsc::channel::(100); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_tx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `MessageChunk` is more private than the item `MessageSequence::create_index` [INFO] [stdout] --> src/aether_msg/msg_manage.rs:352:5 [INFO] [stdout] | [INFO] [stdout] 352 | pub async fn create_index(&mut self, chunk: Arc>) -> Result<(),Error>{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `MessageSequence::create_index` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `MessageChunk` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/aether_msg/msg_manage.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | struct MessageChunk { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `MessageChunk` is more private than the item `MessageSequence::push_prev` [INFO] [stdout] --> src/aether_msg/msg_manage.rs:359:5 [INFO] [stdout] | [INFO] [stdout] 359 | pub async fn push_prev(&mut self, chunk: Arc>) -> Result<(),Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `MessageSequence::push_prev` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `MessageChunk` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/aether_msg/msg_manage.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | struct MessageChunk { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `delete_msg` is never used [INFO] [stdout] --> src/aether_msg/msg_manage.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl MessageChunk { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn delete_msg(&mut self, msg_id: &str) -> Result<(), Error> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `cache` is never read [INFO] [stdout] --> src/aether_msg/msg_manage.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 84 | struct MessageWriter { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] 85 | pool: Arc, [INFO] [stdout] 86 | cache: Vec>, // 缓存消息,避免频繁访问数据库 [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MessageWriter` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `start_flusher` and `flush` are never used [INFO] [stdout] --> src/aether_msg/msg_manage.rs:265:18 [INFO] [stdout] | [INFO] [stdout] 232 | impl MessageWriter { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 265 | pub async fn start_flusher(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 290 | pub async fn flush(buffer: &mut Vec, pool: Arc) -> Result<(), sqlx::Error> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id` and `created_at` are never read [INFO] [stdout] --> src/aether_session.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct Session { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 14 | id: String, [INFO] [stdout] | ^^ [INFO] [stdout] 15 | created_at: u64, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Session` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: crate `Backend_Split` should have a snake case name [INFO] [stdout] | [INFO] [stdout] = help: convert the identifier to snake case: `backend_split` [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/aether_msg/msg_manage.rs:360:9 [INFO] [stdout] | [INFO] [stdout] 360 | self.create_index(Arc::clone(&chunk)).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 360 | let _ = self.create_index(Arc::clone(&chunk)).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/aether_msg/msg_manage.rs:277:37 [INFO] [stdout] | [INFO] [stdout] 277 | ... Err(e) => {} [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tx` [INFO] [stdout] --> src/aether_msg/msg_manage.rs:266:13 [INFO] [stdout] | [INFO] [stdout] 266 | let(tx,mut rx) = tokio::sync::mpsc::channel::(100); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_tx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/aether_msg/msg_manage.rs:773:13 [INFO] [stdout] | [INFO] [stdout] 773 | let mut writer = MessageWriter::new(Arc::new(db),5); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `MessageChunk` is more private than the item `aether_msg::msg_manage::MessageSequence::create_index` [INFO] [stdout] --> src/aether_msg/msg_manage.rs:352:5 [INFO] [stdout] | [INFO] [stdout] 352 | pub async fn create_index(&mut self, chunk: Arc>) -> Result<(),Error>{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `aether_msg::msg_manage::MessageSequence::create_index` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `MessageChunk` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/aether_msg/msg_manage.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | struct MessageChunk { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `MessageChunk` is more private than the item `aether_msg::msg_manage::MessageSequence::push_prev` [INFO] [stdout] --> src/aether_msg/msg_manage.rs:359:5 [INFO] [stdout] | [INFO] [stdout] 359 | pub async fn push_prev(&mut self, chunk: Arc>) -> Result<(),Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `aether_msg::msg_manage::MessageSequence::push_prev` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `MessageChunk` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/aether_msg/msg_manage.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | struct MessageChunk { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `delete_msg` is never used [INFO] [stdout] --> src/aether_msg/msg_manage.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl MessageChunk { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn delete_msg(&mut self, msg_id: &str) -> Result<(), Error> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `cache` is never read [INFO] [stdout] --> src/aether_msg/msg_manage.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 84 | struct MessageWriter { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] 85 | pool: Arc, [INFO] [stdout] 86 | cache: Vec>, // 缓存消息,避免频繁访问数据库 [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MessageWriter` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `start_flusher` and `flush` are never used [INFO] [stdout] --> src/aether_msg/msg_manage.rs:265:18 [INFO] [stdout] | [INFO] [stdout] 232 | impl MessageWriter { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 265 | pub async fn start_flusher(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 290 | pub async fn flush(buffer: &mut Vec, pool: Arc) -> Result<(), sqlx::Error> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/aether_msg/msg_manage.rs:360:9 [INFO] [stdout] | [INFO] [stdout] 360 | self.create_index(Arc::clone(&chunk)).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 360 | let _ = self.create_index(Arc::clone(&chunk)).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/aether_msg/msg_manage.rs:693:33 [INFO] [stdout] | [INFO] [stdout] 693 | sqlx::query(insert_query.clone()) [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] = note: `#[warn(noop_method_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/aether_msg/msg_manage.rs:698:33 [INFO] [stdout] | [INFO] [stdout] 698 | sqlx::query(insert_query.clone()) [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/aether_msg/msg_manage.rs:703:33 [INFO] [stdout] | [INFO] [stdout] 703 | sqlx::query(insert_query.clone()) [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/aether_msg/msg_manage.rs:708:33 [INFO] [stdout] | [INFO] [stdout] 708 | sqlx::query(insert_query.clone()) [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/aether_msg/msg_manage.rs:713:33 [INFO] [stdout] | [INFO] [stdout] 713 | sqlx::query(insert_query.clone()) [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/aether_msg/msg_manage.rs:720:34 [INFO] [stdout] | [INFO] [stdout] 720 | sqlx::query(session_query.clone()) [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/aether_msg/msg_manage.rs:726:34 [INFO] [stdout] | [INFO] [stdout] 726 | sqlx::query(session_query.clone()) [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/aether_msg/msg_manage.rs:732:34 [INFO] [stdout] | [INFO] [stdout] 732 | sqlx::query(session_query.clone()) [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/aether_msg/msg_manage.rs:821:33 [INFO] [stdout] | [INFO] [stdout] 821 | sqlx::query(insert_query.clone()) [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/aether_msg/msg_manage.rs:827:33 [INFO] [stdout] | [INFO] [stdout] 827 | sqlx::query(insert_query.clone()) [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/aether_msg/msg_manage.rs:833:33 [INFO] [stdout] | [INFO] [stdout] 833 | sqlx::query(insert_query.clone()) [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/aether_msg/msg_manage.rs:839:33 [INFO] [stdout] | [INFO] [stdout] 839 | sqlx::query(insert_query.clone()) [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/aether_msg/msg_manage.rs:845:33 [INFO] [stdout] | [INFO] [stdout] 845 | sqlx::query(insert_query.clone()) [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/aether_msg/msg_manage.rs:853:34 [INFO] [stdout] | [INFO] [stdout] 853 | sqlx::query(session_query.clone()) [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/aether_msg/msg_manage.rs:860:34 [INFO] [stdout] | [INFO] [stdout] 860 | sqlx::query(session_query.clone()) [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/aether_msg/msg_manage.rs:867:34 [INFO] [stdout] | [INFO] [stdout] 867 | sqlx::query(session_query.clone()) [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/aether_session.rs:97:33 [INFO] [stdout] | [INFO] [stdout] 97 | sqlx::query(insert_query.clone()) [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/aether_session.rs:103:33 [INFO] [stdout] | [INFO] [stdout] 103 | sqlx::query(insert_query.clone()) [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/aether_session.rs:109:33 [INFO] [stdout] | [INFO] [stdout] 109 | sqlx::query(insert_query.clone()) [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/aether_session.rs:115:33 [INFO] [stdout] | [INFO] [stdout] 115 | sqlx::query(insert_query.clone()) [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/aether_session.rs:121:33 [INFO] [stdout] | [INFO] [stdout] 121 | sqlx::query(insert_query.clone()) [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/aether_session.rs:129:34 [INFO] [stdout] | [INFO] [stdout] 129 | sqlx::query(session_query.clone()) [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/aether_session.rs:136:34 [INFO] [stdout] | [INFO] [stdout] 136 | sqlx::query(session_query.clone()) [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/aether_session.rs:143:34 [INFO] [stdout] | [INFO] [stdout] 143 | sqlx::query(session_query.clone()) [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 42.89s [INFO] running `Command { std: "docker" "inspect" "a1ed98e164cbb29fcce0941157efbe8ed9ca0b71129d857502d5b7c5d147432b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a1ed98e164cbb29fcce0941157efbe8ed9ca0b71129d857502d5b7c5d147432b", kill_on_drop: false }` [INFO] [stdout] a1ed98e164cbb29fcce0941157efbe8ed9ca0b71129d857502d5b7c5d147432b