[INFO] cloning repository https://github.com/firstbench-inc/crawle-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/firstbench-inc/crawle-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffirstbench-inc%2Fcrawle-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffirstbench-inc%2Fcrawle-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0ec444737cefd3a8ba6d3b4b27213897cf95c166
[INFO] checking firstbench-inc/crawle-rs against master#779e19d8baa3e3625bd4fc5c85cbb2ad47b43155 for pr-147589-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffirstbench-inc%2Fcrawle-rs" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/firstbench-inc/crawle-rs
[INFO] finished tweaking git repo https://github.com/firstbench-inc/crawle-rs
[INFO] tweaked toml for git repo https://github.com/firstbench-inc/crawle-rs written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/firstbench-inc/crawle-rs on toolchain 779e19d8baa3e3625bd4fc5c85cbb2ad47b43155
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/firstbench-inc/crawle-rs 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" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wiremock v0.6.1
[INFO] [stderr]   Downloaded fastbloom v0.7.1
[INFO] [stderr]   Downloaded markup5ever_rcdom v0.3.0
[INFO] [stderr]   Downloaded bytemuck v1.16.3
[INFO] [stderr]   Downloaded xml5ever v0.18.1
[INFO] [stderr]   Downloaded wide v0.7.26
[INFO] [stderr]   Downloaded redis v0.25.4
[INFO] [stderr]   Downloaded lol_html v1.2.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a07920da373fde1204c064330e0a9a845f5fcd20dd6e2d53c2cd858851fbf6b1
[INFO] running `Command { std: "docker" "start" "-a" "a07920da373fde1204c064330e0a9a845f5fcd20dd6e2d53c2cd858851fbf6b1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a07920da373fde1204c064330e0a9a845f5fcd20dd6e2d53c2cd858851fbf6b1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a07920da373fde1204c064330e0a9a845f5fcd20dd6e2d53c2cd858851fbf6b1", kill_on_drop: false }`
[INFO] [stdout] a07920da373fde1204c064330e0a9a845f5fcd20dd6e2d53c2cd858851fbf6b1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9b15846dbfd98831ec111ee6ad2f6d39d9abc20bbd588cf8f6a23c9484fb998d
[INFO] running `Command { std: "docker" "start" "-a" "9b15846dbfd98831ec111ee6ad2f6d39d9abc20bbd588cf8f6a23c9484fb998d", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.155
[INFO] [stderr]     Checking bytes v1.7.0
[INFO] [stderr]    Compiling serde v1.0.204
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]    Compiling cc v1.1.7
[INFO] [stderr]    Compiling phf_shared v0.8.0
[INFO] [stderr]    Compiling syn v2.0.72
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]     Checking mio v1.0.1
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling proc-macro-hack v0.5.20+deprecated
[INFO] [stderr]     Checking new_debug_unreachable v1.0.6
[INFO] [stderr]     Checking indexmap v2.3.0
[INFO] [stderr]    Compiling openssl v0.10.66
[INFO] [stderr]     Checking mac v0.1.1
[INFO] [stderr]     Checking unicode-normalization v0.1.23
[INFO] [stderr]     Checking futf v0.1.5
[INFO] [stderr]     Checking phf_shared v0.10.0
[INFO] [stderr]    Compiling native-tls v0.2.12
[INFO] [stderr]    Compiling serde_json v1.0.121
[INFO] [stderr]     Checking tendril v0.4.3
[INFO] [stderr]     Checking phf v0.11.2
[INFO] [stderr]     Checking dtoa v1.0.9
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking ahash v0.8.11
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking itoa v0.4.8
[INFO] [stderr]     Checking bytemuck v1.16.3
[INFO] [stderr]     Checking dtoa-short v0.3.5
[INFO] [stderr]     Checking nodrop v0.1.14
[INFO] [stderr]     Checking http v1.1.0
[INFO] [stderr]     Checking servo_arc v0.1.1
[INFO] [stderr]     Checking deadpool-runtime v0.1.4
[INFO] [stderr]     Checking rustls-pki-types v1.7.0
[INFO] [stderr]     Checking thin-slice v0.1.1
[INFO] [stderr]     Checking regex v1.10.5
[INFO] [stderr]     Checking safe_arch v0.7.2
[INFO] [stderr]     Checking sha1_smol v1.0.1
[INFO] [stderr]     Checking lazycell v1.3.0
[INFO] [stderr]     Checking hashbrown v0.13.2
[INFO] [stderr]     Checking idna v0.5.0
[INFO] [stderr]     Checking rustls-pemfile v2.1.2
[INFO] [stderr]    Compiling openssl-sys v0.9.103
[INFO] [stderr]     Checking wide v0.7.26
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling rand_pcg v0.2.1
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking url v2.5.2
[INFO] [stderr]     Checking string_cache v0.8.7
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking assert-json-diff v2.0.2
[INFO] [stderr]    Compiling zerocopy-derive v0.6.6
[INFO] [stderr]    Compiling tokio-macros v2.4.0
[INFO] [stderr]    Compiling futures-macro v0.3.30
[INFO] [stderr]    Compiling pin-project-internal v1.1.5
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.63
[INFO] [stderr]    Compiling cssparser-macros v0.6.1
[INFO] [stderr]    Compiling async-trait v0.1.81
[INFO] [stderr]    Compiling html5ever v0.27.0
[INFO] [stderr]    Compiling derive_more v0.99.18
[INFO] [stderr]    Compiling cssparser v0.27.2
[INFO] [stderr]     Checking tokio v1.39.2
[INFO] [stderr]    Compiling zerocopy v0.6.6
[INFO] [stderr]     Checking pin-project v1.1.5
[INFO] [stderr]     Checking thiserror v1.0.63
[INFO] [stderr]     Checking ppv-lite86 v0.2.18
[INFO] [stderr]     Checking futures-util v0.3.30
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand_chacha v0.2.2
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]     Checking fastbloom v0.7.1
[INFO] [stderr]    Compiling phf_generator v0.11.2
[INFO] [stderr]    Compiling phf_generator v0.10.0
[INFO] [stderr]    Compiling string_cache_codegen v0.5.2
[INFO] [stderr]    Compiling phf_codegen v0.11.2
[INFO] [stderr]    Compiling phf_generator v0.8.0
[INFO] [stderr]    Compiling markup5ever v0.12.1
[INFO] [stderr]    Compiling phf_codegen v0.8.0
[INFO] [stderr]    Compiling phf_macros v0.8.0
[INFO] [stderr]    Compiling selectors v0.22.0
[INFO] [stderr]     Checking phf v0.8.0
[INFO] [stderr]     Checking http-body-util v0.1.2
[INFO] [stderr]     Checking futures-executor v0.3.30
[INFO] [stderr]     Checking futures v0.3.30
[INFO] [stderr]     Checking tokio-util v0.7.11
[INFO] [stderr]     Checking tower v0.4.13
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking deadpool v0.10.0
[INFO] [stderr]     Checking tokio-socks v0.5.2
[INFO] [stderr]     Checking xml5ever v0.18.1
[INFO] [stderr]     Checking lol_html v1.2.1
[INFO] [stderr]     Checking h2 v0.4.5
[INFO] [stderr]     Checking combine v4.6.7
[INFO] [stderr]     Checking markup5ever_rcdom v0.3.0
[INFO] [stderr]     Checking hyper v1.4.1
[INFO] [stderr]     Checking hyper-util v0.1.6
[INFO] [stderr]     Checking redis v0.25.4
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking wiremock v0.6.1
[INFO] [stderr]     Checking reqwest v0.12.5
[INFO] [stderr]     Checking crawle-rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Add`, `Borrow`, `ControlFlow`, and `rc::Rc`
[INFO] [stdout]  --> src/crawler.rs:2:14
[INFO] [stdout]   |
[INFO] [stdout] 2 |     borrow::{Borrow, BorrowMut},
[INFO] [stdout]   |              ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5 |     ops::{Add, ControlFlow},
[INFO] [stdout]   |           ^^^  ^^^^^^^^^^^
[INFO] [stdout] 6 |     rc::Rc,
[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 import: `fastbloom::BloomFilter`
[INFO] [stdout]   --> src/crawler.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use fastbloom::BloomFilter;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `interval`
[INFO] [stdout]   --> src/crawler.rs:14:19
[INFO] [stdout]    |
[INFO] [stdout] 14 | use tokio::time::{interval, Duration};
[INFO] [stdout]    |                   ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `JoinSet` and `sync::mpsc`
[INFO] [stdout]   --> src/crawler.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     sync::mpsc,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 17 |     task::{self, JoinSet},
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RedisError`
[INFO] [stdout]   --> src/crawler.rs:20:19
[INFO] [stdout]    |
[INFO] [stdout] 20 | use redis::{self, RedisError, RedisResult};
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ParseError`
[INFO] [stdout]  --> src/parser.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | use url::{ParseError, Url};
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufReader`
[INFO] [stdout]   --> src/main.rs:12:30
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::io::{self, BufRead, BufReader, Read};
[INFO] [stdout]    |                              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::Notify`
[INFO] [stdout]   --> src/main.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use tokio::sync::Notify;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Add`, `Borrow`, `ControlFlow`, and `rc::Rc`
[INFO] [stdout]  --> src/crawler.rs:2:14
[INFO] [stdout]   |
[INFO] [stdout] 2 |     borrow::{Borrow, BorrowMut},
[INFO] [stdout]   |              ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5 |     ops::{Add, ControlFlow},
[INFO] [stdout]   |           ^^^  ^^^^^^^^^^^
[INFO] [stdout] 6 |     rc::Rc,
[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 import: `fastbloom::BloomFilter`
[INFO] [stdout]   --> src/crawler.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use fastbloom::BloomFilter;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `interval`
[INFO] [stdout]   --> src/crawler.rs:14:19
[INFO] [stdout]    |
[INFO] [stdout] 14 | use tokio::time::{interval, Duration};
[INFO] [stdout]    |                   ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `JoinSet` and `sync::mpsc`
[INFO] [stdout]   --> src/crawler.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     sync::mpsc,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 17 |     task::{self, JoinSet},
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RedisError`
[INFO] [stdout]   --> src/crawler.rs:20:19
[INFO] [stdout]    |
[INFO] [stdout] 20 | use redis::{self, RedisError, RedisResult};
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ParseError`
[INFO] [stdout]  --> src/parser.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | use url::{ParseError, Url};
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufReader`
[INFO] [stdout]   --> src/main.rs:12:30
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::io::{self, BufRead, BufReader, Read};
[INFO] [stdout]    |                              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::Notify`
[INFO] [stdout]   --> src/main.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use tokio::sync::Notify;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/crawler.rs:176:33
[INFO] [stdout]     |
[INFO] [stdout] 176 | ...                   let mut post = Poster::new();
[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: variable does not need to be mutable
[INFO] [stdout]    --> src/crawler.rs:106:13
[INFO] [stdout]     |
[INFO] [stdout] 106 |         let mut handle_vec: Vec<task::JoinHandle<()>> = vec![];
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/crawler.rs:176:33
[INFO] [stdout]     |
[INFO] [stdout] 176 | ...                   let mut post = Poster::new();
[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: variable does not need to be mutable
[INFO] [stdout]    --> src/crawler.rs:106:13
[INFO] [stdout]     |
[INFO] [stdout] 106 |         let mut handle_vec: Vec<task::JoinHandle<()>> = vec![];
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value captured by `link.parse_dur` is never read
[INFO] [stdout]    --> src/crawler.rs:183:33
[INFO] [stdout]     |
[INFO] [stdout] 183 | ...                   link.parse_dur = parse_dur;
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: did you mean to capture by reference instead?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parser`
[INFO] [stdout]    --> src/crawler.rs:104:13
[INFO] [stdout]     |
[INFO] [stdout] 104 |         let parser = Arc::new(Parser::new());
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parser`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle_vec`
[INFO] [stdout]    --> src/crawler.rs:106:13
[INFO] [stdout]     |
[INFO] [stdout] 106 |         let mut handle_vec: Vec<task::JoinHandle<()>> = vec![];
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `po`
[INFO] [stdout]    --> src/crawler.rs:150:17
[INFO] [stdout]     |
[INFO] [stdout] 150 |             let po = poster.clone();
[INFO] [stdout]     |                 ^^ help: if this is intentional, prefix it with an underscore: `_po`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle`
[INFO] [stdout]    --> src/crawler.rs:158:17
[INFO] [stdout]     |
[INFO] [stdout] 158 |             let handle = task::spawn(async move {
[INFO] [stdout]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value captured by `link.parse_dur` is never read
[INFO] [stdout]    --> src/crawler.rs:183:33
[INFO] [stdout]     |
[INFO] [stdout] 183 | ...                   link.parse_dur = parse_dur;
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: did you mean to capture by reference instead?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parser`
[INFO] [stdout]    --> src/crawler.rs:104:13
[INFO] [stdout]     |
[INFO] [stdout] 104 |         let parser = Arc::new(Parser::new());
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parser`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle_vec`
[INFO] [stdout]    --> src/crawler.rs:106:13
[INFO] [stdout]     |
[INFO] [stdout] 106 |         let mut handle_vec: Vec<task::JoinHandle<()>> = vec![];
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `po`
[INFO] [stdout]    --> src/crawler.rs:150:17
[INFO] [stdout]     |
[INFO] [stdout] 150 |             let po = poster.clone();
[INFO] [stdout]     |                 ^^ help: if this is intentional, prefix it with an underscore: `_po`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle`
[INFO] [stdout]    --> src/crawler.rs:158:17
[INFO] [stdout]     |
[INFO] [stdout] 158 |             let handle = task::spawn(async move {
[INFO] [stdout]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `instant`
[INFO] [stdout]   --> src/fetcher.rs:26:13
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let instant = Instant::now();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instant`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `instant`
[INFO] [stdout]   --> src/fetcher.rs:26:13
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let instant = Instant::now();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instant`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]   --> src/poster.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |         let res = match self
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]   --> src/poster.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |         let res = match self
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `instant`
[INFO] [stdout]   --> src/parser.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let instant = Instant::now();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instant`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `instant`
[INFO] [stdout]   --> src/parser.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let instant = Instant::now();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instant`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `seedlist`
[INFO] [stdout]   --> src/main.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let seedlist: [&str; 252] = [
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_seedlist`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `fetcher`, `poster`, and `parser` are never read
[INFO] [stdout]   --> src/crawler.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct Crawler {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 32 |     to_visit: VecDeque<String>,
[INFO] [stdout] 33 |     fetcher: Arc<Fetcher>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 34 |     poster: Arc<Poster>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 35 |     parser: Arc<Parser>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `generate_page_data` is never used
[INFO] [stdout]    --> src/crawler.rs:304:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | impl Crawler {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 304 |     fn generate_page_data<'a, 'b>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NONE` is never used
[INFO] [stdout]   --> src/crawler.rs:57:15
[INFO] [stdout]    |
[INFO] [stdout] 57 |         const NONE: Option<String> = None;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_req` is never used
[INFO] [stdout]    --> src/crawler.rs:321:14
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub async fn handle_req(
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `seedlist`
[INFO] [stdout]   --> src/main.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let seedlist: [&str; 252] = [
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_seedlist`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `fetcher`, `poster`, and `parser` are never read
[INFO] [stdout]   --> src/crawler.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct Crawler {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 32 |     to_visit: VecDeque<String>,
[INFO] [stdout] 33 |     fetcher: Arc<Fetcher>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 34 |     poster: Arc<Poster>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 35 |     parser: Arc<Parser>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `generate_page_data` is never used
[INFO] [stdout]    --> src/crawler.rs:304:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | impl Crawler {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 304 |     fn generate_page_data<'a, 'b>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NONE` is never used
[INFO] [stdout]   --> src/crawler.rs:57:15
[INFO] [stdout]    |
[INFO] [stdout] 57 |         const NONE: Option<String> = None;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_req` is never used
[INFO] [stdout]    --> src/crawler.rs:321:14
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub async fn handle_req(
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 50.99s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: redis v0.25.4
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 8`
[INFO] running `Command { std: "docker" "inspect" "9b15846dbfd98831ec111ee6ad2f6d39d9abc20bbd588cf8f6a23c9484fb998d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9b15846dbfd98831ec111ee6ad2f6d39d9abc20bbd588cf8f6a23c9484fb998d", kill_on_drop: false }`
[INFO] [stdout] 9b15846dbfd98831ec111ee6ad2f6d39d9abc20bbd588cf8f6a23c9484fb998d
