[INFO] cloning repository https://github.com/mbirtwell/mikes_crawler [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mbirtwell/mikes_crawler" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmbirtwell%2Fmikes_crawler", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmbirtwell%2Fmikes_crawler'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 7cea81e081345fbb4591192d02e709f3cce089f0 [INFO] testing mbirtwell/mikes_crawler against beta-2025-09-21 for beta-1.91-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmbirtwell%2Fmikes_crawler" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-6-tc2/source/rust-toolchain.toml [INFO] started tweaking git repo https://github.com/mbirtwell/mikes_crawler [INFO] finished tweaking git repo https://github.com/mbirtwell/mikes_crawler [INFO] tweaked toml for git repo https://github.com/mbirtwell/mikes_crawler written to /workspace/builds/worker-6-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/mbirtwell/mikes_crawler on toolchain beta-2025-09-21 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/mbirtwell/mikes_crawler 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" "+beta-2025-09-21" "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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] b031b716d9e2f24f1a11b71af32d27fe7d70e8d850debc800a8475f254200c07 [INFO] running `Command { std: "docker" "start" "-a" "b031b716d9e2f24f1a11b71af32d27fe7d70e8d850debc800a8475f254200c07", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "b031b716d9e2f24f1a11b71af32d27fe7d70e8d850debc800a8475f254200c07", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b031b716d9e2f24f1a11b71af32d27fe7d70e8d850debc800a8475f254200c07", kill_on_drop: false }` [INFO] [stdout] b031b716d9e2f24f1a11b71af32d27fe7d70e8d850debc800a8475f254200c07 [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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+beta-2025-09-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 0e6505845a571867e1683b7234d4b6c289e58bdbf574acc786daa07663618983 [INFO] running `Command { std: "docker" "start" "-a" "0e6505845a571867e1683b7234d4b6c289e58bdbf574acc786daa07663618983", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.32 [INFO] [stderr] Compiling libc v0.2.106 [INFO] [stderr] Compiling syn v1.0.81 [INFO] [stderr] Compiling pin-project-lite v0.2.7 [INFO] [stderr] Compiling futures-core v0.3.17 [INFO] [stderr] Compiling serde_derive v1.0.130 [INFO] [stderr] Compiling bytes v1.1.0 [INFO] [stderr] Compiling serde v1.0.130 [INFO] [stderr] Compiling memchr v2.4.1 [INFO] [stderr] Compiling itoa v0.4.8 [INFO] [stderr] Compiling futures-sink v0.3.17 [INFO] [stderr] Compiling slab v0.4.5 [INFO] [stderr] Compiling once_cell v1.8.0 [INFO] [stderr] Compiling yansi v0.5.0 [INFO] [stderr] Compiling proc-macro2-diagnostics v0.9.1 [INFO] [stderr] Compiling ppv-lite86 v0.2.15 [INFO] [stderr] Compiling http v0.2.5 [INFO] [stderr] Compiling tracing-core v0.1.21 [INFO] [stderr] Compiling futures-macro v0.3.17 [INFO] [stderr] Compiling tokio v1.13.0 [INFO] [stderr] Compiling quote v1.0.10 [INFO] [stderr] Compiling proc-macro-nested v0.1.7 [INFO] [stderr] Compiling futures-task v0.3.17 [INFO] [stderr] Compiling log v0.4.14 [INFO] [stderr] Compiling futures-channel v0.3.17 [INFO] [stderr] Compiling httparse v1.5.1 [INFO] [stderr] Compiling getrandom v0.1.16 [INFO] [stderr] Compiling num_cpus v1.13.0 [INFO] [stderr] Compiling signal-hook-registry v1.4.0 [INFO] [stderr] Compiling mio v0.7.14 [INFO] [stderr] Compiling tracing v0.1.29 [INFO] [stderr] Compiling futures-util v0.3.17 [INFO] [stderr] Compiling standback v0.2.17 [INFO] [stderr] Compiling parking_lot_core v0.8.5 [INFO] [stderr] Compiling instant v0.1.12 [INFO] [stderr] Compiling indexmap v1.7.0 [INFO] [stderr] Compiling futures-io v0.3.17 [INFO] [stderr] Compiling smallvec v1.7.0 [INFO] [stderr] Compiling lock_api v0.4.5 [INFO] [stderr] Compiling rand_core v0.5.1 [INFO] [stderr] Compiling socket2 v0.4.2 [INFO] [stderr] Compiling const_fn v0.4.8 [INFO] [stderr] Compiling httpdate v1.0.1 [INFO] [stderr] Compiling pkg-config v0.3.22 [INFO] [stderr] Compiling siphasher v0.3.7 [INFO] [stderr] Compiling cc v1.0.71 [INFO] [stderr] Compiling phf_shared v0.8.0 [INFO] [stderr] Compiling http-body v0.4.4 [INFO] [stderr] Compiling parking_lot v0.11.2 [INFO] [stderr] Compiling time v0.2.27 [INFO] [stderr] Compiling rand_pcg v0.2.1 [INFO] [stderr] Compiling rand_chacha v0.2.2 [INFO] [stderr] Compiling cookie v0.15.1 [INFO] [stderr] Compiling inlinable_string v0.1.14 [INFO] [stderr] Compiling ref-cast v1.0.6 [INFO] [stderr] Compiling rand v0.7.3 [INFO] [stderr] Compiling uncased v0.9.6 [INFO] [stderr] Compiling openssl-sys v0.9.70 [INFO] [stderr] Compiling want v0.3.0 [INFO] [stderr] Compiling getrandom v0.2.3 [INFO] [stderr] Compiling serde_json v1.0.69 [INFO] [stderr] Compiling state v0.5.2 [INFO] [stderr] Compiling slog v2.7.0 [INFO] [stderr] Compiling encoding_rs v0.8.29 [INFO] [stderr] Compiling either v1.6.1 [INFO] [stderr] Compiling openssl v0.10.38 [INFO] [stderr] Compiling rand_core v0.6.3 [INFO] [stderr] Compiling phf_generator v0.8.0 [INFO] [stderr] Compiling stable-pattern v0.1.0 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling strsim v0.10.0 [INFO] [stderr] Compiling new_debug_unreachable v1.0.4 [INFO] [stderr] Compiling native-tls v0.2.8 [INFO] [stderr] Compiling tinyvec v1.5.0 [INFO] [stderr] Compiling string_cache_codegen v0.5.1 [INFO] [stderr] Compiling phf_codegen v0.8.0 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling figment v0.10.6 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Compiling atomic v0.5.0 [INFO] [stderr] Compiling multer v2.0.1 [INFO] [stderr] Compiling schemars v0.8.6 [INFO] [stderr] Compiling async-trait v0.1.51 [INFO] [stderr] Compiling unchecked-index v0.2.2 [INFO] [stderr] Compiling mac v0.1.1 [INFO] [stderr] Compiling openssl-probe v0.1.4 [INFO] [stderr] Compiling futf v0.1.4 [INFO] [stderr] Compiling unicode-normalization v0.1.19 [INFO] [stderr] Compiling twoway v0.2.2 [INFO] [stderr] Compiling markup5ever v0.10.1 [INFO] [stderr] Compiling rand v0.8.4 [INFO] [stderr] Compiling tokio-util v0.6.9 [INFO] [stderr] Compiling serde_derive_internals v0.25.0 [INFO] [stderr] Compiling h2 v0.3.7 [INFO] [stderr] Compiling devise_core v0.3.1 [INFO] [stderr] Compiling darling_core v0.13.0 [INFO] [stderr] Compiling dirs-sys-next v0.1.2 [INFO] [stderr] Compiling atty v0.2.14 [INFO] [stderr] Compiling rocket v0.5.0-rc.1 [INFO] [stderr] Compiling precomputed-hash v0.1.1 [INFO] [stderr] Compiling unicode-bidi v0.3.7 [INFO] [stderr] Compiling spin v0.9.2 [INFO] [stderr] Compiling dyn-clone v1.0.4 [INFO] [stderr] Compiling utf-8 v0.7.6 [INFO] [stderr] Compiling arc-swap v1.4.0 [INFO] [stderr] Compiling glob v0.3.0 [INFO] [stderr] Compiling remove_dir_all v0.5.3 [INFO] [stderr] Compiling tempfile v3.2.0 [INFO] [stderr] Compiling tokio-macros v1.5.1 [INFO] [stderr] Compiling time-macros-impl v0.1.2 [INFO] [stderr] Compiling pear_codegen v0.2.3 [INFO] [stderr] Compiling ref-cast-impl v1.0.6 [INFO] [stderr] Compiling devise_codegen v0.3.1 [INFO] [stderr] Compiling darling_macro v0.13.0 [INFO] [stderr] Compiling time-macros v0.1.1 [INFO] [stderr] Compiling pear v0.2.3 [INFO] [stderr] Compiling devise v0.3.1 [INFO] [stderr] Compiling async-stream-impl v0.3.2 [INFO] [stderr] Compiling schemars_derive v0.8.6 [INFO] [stderr] Compiling async-stream v0.3.2 [INFO] [stderr] Compiling darling v0.13.0 [INFO] [stderr] Compiling html5ever v0.25.1 [INFO] [stderr] Compiling slog-scope v4.4.0 [INFO] [stderr] Compiling idna v0.2.3 [INFO] [stderr] Compiling tendril v0.4.2 [INFO] [stderr] Compiling hyper v0.14.14 [INFO] [stderr] Compiling dirs-next v2.0.0 [INFO] [stderr] Compiling phf v0.8.0 [INFO] [stderr] Compiling time v0.1.43 [INFO] [stderr] Compiling anyhow v1.0.45 [INFO] [stderr] Compiling binascii v0.1.4 [INFO] [stderr] Compiling chrono v0.4.19 [INFO] [stderr] Compiling term v0.7.0 [INFO] [stderr] Compiling url v2.2.2 [INFO] [stderr] Compiling thread_local v1.1.3 [INFO] [stderr] Compiling ipnet v2.3.1 [INFO] [stderr] Compiling futures-executor v0.3.17 [INFO] [stderr] Compiling slog-scope-futures v0.1.1 [INFO] [stderr] Compiling slog-term v2.8.0 [INFO] [stderr] Compiling futures v0.3.17 [INFO] [stderr] Compiling slog-stdlog v4.1.0 [INFO] [stderr] Compiling robotstxt v0.3.0 [INFO] [stderr] Compiling tokio-stream v0.1.8 [INFO] [stderr] Compiling tokio-native-tls v0.3.0 [INFO] [stderr] Compiling rocket_http v0.5.0-rc.1 [INFO] [stderr] Compiling toml v0.5.8 [INFO] [stderr] Compiling string_cache v0.8.2 [INFO] [stderr] Compiling ubyte v0.10.1 [INFO] [stderr] Compiling serde_urlencoded v0.7.0 [INFO] [stderr] Compiling rocket_codegen v0.5.0-rc.1 [INFO] [stderr] Compiling rocket_okapi_codegen v0.8.0-rc.1 [INFO] [stderr] Compiling okapi v0.7.0-rc.1 [INFO] [stderr] Compiling hyper-tls v0.5.0 [INFO] [stderr] Compiling reqwest v0.11.6 [INFO] [stderr] Compiling rocket_okapi v0.8.0-rc.1 [INFO] [stderr] Compiling mikes_crawler v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `crawl` [INFO] [stdout] --> src/api.rs:124:14 [INFO] [stdout] | [INFO] [stdout] 124 | pub async fn crawl( [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: `list` [INFO] [stdout] --> src/api.rs:151:14 [INFO] [stdout] | [INFO] [stdout] 151 | pub async fn list( [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `count` [INFO] [stdout] --> src/api.rs:174:14 [INFO] [stdout] | [INFO] [stdout] 174 | pub async fn count( [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `status` [INFO] [stdout] --> src/api.rs:192:14 [INFO] [stdout] | [INFO] [stdout] 192 | pub async fn status( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 26s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: html5ever v0.25.1, ubyte v0.10.1 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` [INFO] running `Command { std: "docker" "inspect" "0e6505845a571867e1683b7234d4b6c289e58bdbf574acc786daa07663618983", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0e6505845a571867e1683b7234d4b6c289e58bdbf574acc786daa07663618983", kill_on_drop: false }` [INFO] [stdout] 0e6505845a571867e1683b7234d4b6c289e58bdbf574acc786daa07663618983 [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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+beta-2025-09-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ea5e1f21c9b9e6b73b32b4e7c760d7b93881703762242180fac05acbdb6c1d8a [INFO] running `Command { std: "docker" "start" "-a" "ea5e1f21c9b9e6b73b32b4e7c760d7b93881703762242180fac05acbdb6c1d8a", kill_on_drop: false }` [INFO] [stderr] Compiling value-bag v1.0.0-alpha.8 [INFO] [stderr] Compiling log v0.4.14 [INFO] [stderr] Compiling futures-io v0.3.17 [INFO] [stderr] Compiling ctor v0.1.21 [INFO] [stderr] Compiling socket2 v0.4.2 [INFO] [stderr] Compiling futures-util v0.3.17 [INFO] [stderr] Compiling tracing-attributes v0.1.18 [INFO] [stderr] Compiling fastrand v1.5.0 [INFO] [stderr] Compiling tracing v0.1.29 [INFO] [stderr] Compiling libz-sys v1.1.3 [INFO] [stderr] Compiling futures-lite v1.12.0 [INFO] [stderr] Compiling libnghttp2-sys v0.1.7+1.45.0 [INFO] [stderr] Compiling h2 v0.3.7 [INFO] [stderr] Compiling crunchy v0.2.2 [INFO] [stderr] Compiling async-channel v1.6.1 [INFO] [stderr] Compiling aho-corasick v0.7.18 [INFO] [stderr] Compiling curl-sys v0.4.50+curl-7.79.1 [INFO] [stderr] Compiling tiny-keccak v2.0.2 [INFO] [stderr] Compiling signal-hook v0.3.10 [INFO] [stderr] Compiling mio v0.7.14 [INFO] [stderr] Compiling want v0.3.0 [INFO] [stderr] Compiling polling v2.1.0 [INFO] [stderr] Compiling regex v1.5.4 [INFO] [stderr] Compiling fixedbitset v0.2.0 [INFO] [stderr] Compiling tokio v1.13.0 [INFO] [stderr] Compiling bit-vec v0.6.3 [INFO] [stderr] Compiling petgraph v0.5.1 [INFO] [stderr] Compiling async-io v1.6.0 [INFO] [stderr] Compiling bit-set v0.5.2 [INFO] [stderr] Compiling native-tls v0.2.8 [INFO] [stderr] Compiling lalrpop-util v0.19.6 [INFO] [stderr] Compiling ascii-canvas v3.0.0 [INFO] [stderr] Compiling string_cache v0.8.2 [INFO] [stderr] Compiling itertools v0.10.1 [INFO] [stderr] Compiling ena v0.14.0 [INFO] [stderr] Compiling atomic-waker v1.0.0 [INFO] [stderr] Compiling pico-args v0.4.2 [INFO] [stderr] Compiling diff v0.1.12 [INFO] [stderr] Compiling blocking v1.0.2 [INFO] [stderr] Compiling futures-executor v0.3.17 [INFO] [stderr] Compiling futures v0.3.17 [INFO] [stderr] Compiling async-executor v1.4.1 [INFO] [stderr] Compiling async-mutex v1.4.0 [INFO] [stderr] Compiling hyper v0.14.14 [INFO] [stderr] Compiling pin-project-internal v1.0.8 [INFO] [stderr] Compiling curl v0.4.40 [INFO] [stderr] Compiling lalrpop v0.19.6 [INFO] [stderr] Compiling markup5ever v0.10.1 [INFO] [stderr] Compiling async-global-executor v2.0.2 [INFO] [stderr] Compiling tokio-util v0.6.9 [INFO] [stderr] Compiling tokio-native-tls v0.3.0 [INFO] [stderr] Compiling tokio-stream v0.1.8 [INFO] [stderr] Compiling pin-project v1.0.8 [INFO] [stderr] Compiling async-process v1.2.0 [INFO] [stderr] Compiling okapi v0.7.0-rc.1 [INFO] [stderr] Compiling multer v2.0.1 [INFO] [stderr] Compiling kv-log-macro v1.0.7 [INFO] [stderr] Compiling async-lock v2.4.0 [INFO] [stderr] Compiling rocket_http v0.5.0-rc.1 [INFO] [stderr] Compiling isahc v1.5.1 [INFO] [stderr] Compiling async-std v1.10.0 [INFO] [stderr] Compiling tracing-futures v0.2.5 [INFO] [stderr] Compiling html5ever v0.25.1 [INFO] [stderr] Compiling slog-stdlog v4.1.0 [INFO] [stderr] Compiling sluice v0.5.5 [INFO] [stderr] Compiling castaway v0.1.1 [INFO] [stderr] Compiling serde_regex v1.1.0 [INFO] [stderr] Compiling assert-json-diff v2.0.1 [INFO] [stderr] Compiling qstring v0.7.2 [INFO] [stderr] Compiling levenshtein v1.0.5 [INFO] [stderr] Compiling rocket_codegen v0.5.0-rc.1 [INFO] [stderr] Compiling rocket_okapi_codegen v0.8.0-rc.1 [INFO] [stderr] Compiling difference v2.0.0 [INFO] [stderr] Compiling unindent v0.1.7 [INFO] [stderr] Compiling indoc v1.0.3 [INFO] [stderr] Compiling urlencoding v2.1.0 [INFO] [stderr] Compiling async-object-pool v0.1.4 [INFO] [stderr] Compiling basic-cookies v0.1.4 [INFO] [stderr] Compiling hyper-tls v0.5.0 [INFO] [stderr] Compiling httpmock v0.6.2 [INFO] [stderr] Compiling reqwest v0.11.6 [INFO] [stderr] Compiling rocket v0.5.0-rc.1 [INFO] [stderr] Compiling rocket_okapi v0.8.0-rc.1 [INFO] [stderr] Compiling mikes_crawler v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `crawl` [INFO] [stdout] --> src/api.rs:124:14 [INFO] [stdout] | [INFO] [stdout] 124 | pub async fn crawl( [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: `list` [INFO] [stdout] --> src/api.rs:151:14 [INFO] [stdout] | [INFO] [stdout] 151 | pub async fn list( [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `count` [INFO] [stdout] --> src/api.rs:174:14 [INFO] [stdout] | [INFO] [stdout] 174 | pub async fn count( [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `status` [INFO] [stdout] --> src/api.rs:192:14 [INFO] [stdout] | [INFO] [stdout] 192 | pub async fn status( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crawl` [INFO] [stdout] --> src/api.rs:124:14 [INFO] [stdout] | [INFO] [stdout] 124 | pub async fn crawl( [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: `list` [INFO] [stdout] --> src/api.rs:151:14 [INFO] [stdout] | [INFO] [stdout] 151 | pub async fn list( [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `count` [INFO] [stdout] --> src/api.rs:174:14 [INFO] [stdout] | [INFO] [stdout] 174 | pub async fn count( [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `status` [INFO] [stdout] --> src/api.rs:192:14 [INFO] [stdout] | [INFO] [stdout] 192 | pub async fn status( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 2m 19s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: html5ever v0.25.1, lalrpop v0.19.6, ubyte v0.10.1 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2` [INFO] running `Command { std: "docker" "inspect" "ea5e1f21c9b9e6b73b32b4e7c760d7b93881703762242180fac05acbdb6c1d8a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ea5e1f21c9b9e6b73b32b4e7c760d7b93881703762242180fac05acbdb6c1d8a", kill_on_drop: false }` [INFO] [stdout] ea5e1f21c9b9e6b73b32b4e7c760d7b93881703762242180fac05acbdb6c1d8a [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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+beta-2025-09-21" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 794345f89b033d1ddb16857ebf50bebce7ea4c726a8555c62cf32bab70df1bd9 [INFO] running `Command { std: "docker" "start" "-a" "794345f89b033d1ddb16857ebf50bebce7ea4c726a8555c62cf32bab70df1bd9", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `crawl` [INFO] [stderr] --> src/api.rs:124:14 [INFO] [stderr] | [INFO] [stderr] 124 | pub async fn crawl( [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `list` [INFO] [stderr] --> src/api.rs:151:14 [INFO] [stderr] | [INFO] [stderr] 151 | pub async fn list( [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `count` [INFO] [stderr] --> src/api.rs:174:14 [INFO] [stderr] | [INFO] [stderr] 174 | pub async fn count( [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `status` [INFO] [stderr] --> src/api.rs:192:14 [INFO] [stderr] | [INFO] [stderr] 192 | pub async fn status( [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `mikes_crawler` (lib) generated 4 warnings (run `cargo fix --lib -p mikes_crawler` to apply 4 suggestions) [INFO] [stderr] warning: `mikes_crawler` (lib test) generated 4 warnings (4 duplicates) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.44s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: html5ever v0.25.1, lalrpop v0.19.6, ubyte v0.10.1 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2` [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/mikes_crawler-7d4b6a53278a7515) [INFO] [stdout] [INFO] [stdout] running 27 tests [INFO] [stdout] Sep 25 14:51:59.795 WARN[rocket::config::config] ๐Ÿ”ง Configured for debug. [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::config::config] address: 127.0.0.1 [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::config::config] port: 8000 [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::config::config] workers: 8 [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::config::config] ident: Rocket [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::config::config] keep-alive: 5s [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::config::config] limits: bytes = 8KiB, data-form = 2MiB, file = 1MiB, form = 32KiB, json = 1MiB, msgpack = 1MiB, string = 8KiB [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::config::config] tls: disabled [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::config::config] temp dir: /tmp [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::config::config] log level: normal [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::config::config] cli colors: true [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::config::config] shutdown: ctrlc = true, force = true, signals = [SIGTERM], grace = 2s, mercy = 3s [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::rocket] ๐Ÿ›ฐ Routes: [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::rocket] (status) GET /status [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::config::config] ๐Ÿ”ง Configured for debug. [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::config::config] address: 127.0.0.1 [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::config::config] port: 8000 [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::config::config] workers: 8 [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::config::config] ident: Rocket [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::config::config] keep-alive: 5s [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::config::config] limits: bytes = 8KiB, data-form = 2MiB, file = 1MiB, form = 32KiB, json = 1MiB, msgpack = 1MiB, string = 8KiB [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::config::config] tls: disabled [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::config::config] temp dir: /tmp [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::rocket] (crawl) GET /crawl/ [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::config::config] log level: normal [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::config::config] cli colors: true [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::rocket] (list) GET /crawl//list [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::config::config] shutdown: ctrlc = true, force = true, signals = [SIGTERM], grace = 2s, mercy = 3s [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::rocket] (count) GET /crawl//count [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::fairing::fairings] ๐Ÿ“ก Fairings: [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::fairing::fairings] Shield (liftoff, response, singleton) [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::rocket] ๐Ÿ›ฐ Routes: [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::fairing::fairings] BetterLogging (request, response) [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::rocket] (status) GET /status [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::rocket] (crawl) GET /crawl/ [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::rocket] (list) GET /crawl//list [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::rocket] (count) GET /crawl//count [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::fairing::fairings] ๐Ÿ“ก Fairings: [INFO] [stdout] Sep 25 14:51:59.796 INFO[rocket::shield::shield] ๐Ÿ›ก๏ธ Shield: [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::fairing::fairings] Shield (liftoff, response, singleton) [INFO] [stdout] Sep 25 14:51:59.796 INFO[rocket::shield::shield] X-Content-Type-Options: nosniff [INFO] [stdout] Sep 25 14:51:59.796 INFO[rocket::shield::shield] X-Frame-Options: SAMEORIGIN [INFO] [stdout] Sep 25 14:51:59.796 INFO[rocket::shield::shield] Permissions-Policy: interest-cohort=() [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::rocket] ๐Ÿš€ Rocket has launched into local orbit [INFO] [stdout] Sep 25 14:51:59.797 INFO[mikes_crawler::better_logging] Received request: /crawl/https%3A%2F%2Fexample.com, REQ: b17g [INFO] [stdout] Sep 25 14:51:59.797 INFO[rocket::server] GET /crawl/https%3A%2F%2Fexample.com: [INFO] [stdout] Sep 25 14:51:59.797 INFO[rocket::server] Matched: (crawl) GET /crawl/ [INFO] [stdout] Sep 25 14:51:59.797 INFO[rocket::server] Outcome: Success [INFO] [stdout] Sep 25 14:51:59.797 INFO[mikes_crawler::better_logging] Completed request /crawl/https%3A%2F%2Fexample.com with status 500 Internal Server Error in 0.000s, REQ: b17g [INFO] [stdout] test api::tests::crawl_return_internal_error_from_crawler ... ok [INFO] [stdout] Sep 25 14:51:59.797 INFO[mikes_crawler::crawler] Got redirect from https://example.com/redirect to https://notexample.com/target [INFO] [stdout] test crawler::tests::dont_follow_external_redirects ... ok [INFO] [stdout] Sep 25 14:51:59.800 INFO[mikes_crawler::crawler] Got body to process from https://example.com/start containing 180 chars [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::config::config] ๐Ÿ”ง Configured for debug. [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::config::config] address: 127.0.0.1 [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::config::config] port: 8000 [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::config::config] workers: 8 [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::config::config] ident: Rocket [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::config::config] keep-alive: 5s [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::config::config] limits: bytes = 8KiB, data-form = 2MiB, file = 1MiB, form = 32KiB, json = 1MiB, msgpack = 1MiB, string = 8KiB [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::config::config] tls: disabled [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::config::config] temp dir: /tmp [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::config::config] log level: normal [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::config::config] cli colors: true [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::config::config] shutdown: ctrlc = true, force = true, signals = [SIGTERM], grace = 2s, mercy = 3s [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::rocket] ๐Ÿ›ฐ Routes: [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::rocket] (status) GET /status [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::rocket] (crawl) GET /crawl/ [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::rocket] (list) GET /crawl//list [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::rocket] (count) GET /crawl//count [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::fairing::fairings] ๐Ÿ“ก Fairings: [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::fairing::fairings] BetterLogging (request, response) [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::fairing::fairings] Shield (liftoff, response, singleton) [INFO] [stdout] Sep 25 14:51:59.801 INFO[rocket::shield::shield] ๐Ÿ›ก๏ธ Shield: [INFO] [stdout] Sep 25 14:51:59.801 INFO[rocket::shield::shield] Permissions-Policy: interest-cohort=() [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::config::config] ๐Ÿ”ง Configured for debug. [INFO] [stdout] Sep 25 14:51:59.801 INFO[rocket::shield::shield] X-Content-Type-Options: nosniff [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::config::config] address: 127.0.0.1 [INFO] [stdout] Sep 25 14:51:59.801 INFO[rocket::shield::shield] X-Frame-Options: SAMEORIGIN [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::config::config] port: 8000 [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::rocket] ๐Ÿš€ Rocket has launched into local orbit [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::config::config] workers: 8 [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::config::config] ident: Rocket [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::config::config] keep-alive: 5s [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::config::config] limits: bytes = 8KiB, data-form = 2MiB, file = 1MiB, form = 32KiB, json = 1MiB, msgpack = 1MiB, string = 8KiB [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::config::config] tls: disabled [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::config::config] temp dir: /tmp [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::config::config] log level: normal [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::config::config] cli colors: true [INFO] [stdout] Sep 25 14:51:59.801 WARN[rocket::config::config] shutdown: ctrlc = true, force = true, signals = [SIGTERM], grace = 2s, mercy = 3s [INFO] [stdout] Sep 25 14:51:59.801 INFO[mikes_crawler::better_logging] Received request: /status, REQ: cXbS [INFO] [stdout] Sep 25 14:51:59.802 INFO[rocket::server] GET /status: [INFO] [stdout] Sep 25 14:51:59.802 INFO[rocket::server] Matched: (status) GET /status [INFO] [stdout] Sep 25 14:51:59.802 WARN[rocket::rocket] ๐Ÿ›ฐ Routes: [INFO] [stdout] Sep 25 14:51:59.802 WARN[rocket::rocket] (status) GET /status [INFO] [stdout] Sep 25 14:51:59.802 WARN[rocket::rocket] (crawl) GET /crawl/ [INFO] [stdout] Sep 25 14:51:59.802 INFO[rocket::server] Outcome: Success [INFO] [stdout] Sep 25 14:51:59.802 WARN[rocket::rocket] (list) GET /crawl//list [INFO] [stdout] Sep 25 14:51:59.802 WARN[rocket::rocket] (count) GET /crawl//count [INFO] [stdout] Sep 25 14:51:59.802 WARN[rocket::fairing::fairings] ๐Ÿ“ก Fairings: [INFO] [stdout] Sep 25 14:51:59.802 INFO[mikes_crawler::better_logging] Completed request /status with status 200 OK in 0.000s, REQ: cXbS [INFO] [stdout] Sep 25 14:51:59.802 WARN[rocket::fairing::fairings] Shield (liftoff, response, singleton) [INFO] [stdout] Sep 25 14:51:59.802 WARN[rocket::fairing::fairings] BetterLogging (request, response) [INFO] [stdout] Sep 25 14:51:59.802 INFO[rocket::shield::shield] ๐Ÿ›ก๏ธ Shield: [INFO] [stdout] Sep 25 14:51:59.802 INFO[rocket::shield::shield] Permissions-Policy: interest-cohort=() [INFO] [stdout] Sep 25 14:51:59.802 INFO[rocket::shield::shield] X-Content-Type-Options: nosniff [INFO] [stdout] Sep 25 14:51:59.802 INFO[rocket::shield::shield] X-Frame-Options: SAMEORIGIN [INFO] [stdout] Sep 25 14:51:59.802 WARN[rocket::rocket] ๐Ÿš€ Rocket has launched into local orbit [INFO] [stdout] Sep 25 14:51:59.802 WARN[rocket::fairing::fairings] BetterLogging (request, response) [INFO] [stdout] Sep 25 14:51:59.802 INFO[mikes_crawler::better_logging] Received request: /crawl/garbage, REQ: EBRf [INFO] [stdout] Sep 25 14:51:59.802 INFO[rocket::server] GET /crawl/garbage: [INFO] [stdout] Sep 25 14:51:59.802 INFO[rocket::shield::shield] ๐Ÿ›ก๏ธ Shield: [INFO] [stdout] Sep 25 14:51:59.802 INFO[rocket::shield::shield] X-Frame-Options: SAMEORIGIN [INFO] [stdout] Sep 25 14:51:59.802 INFO[rocket::shield::shield] Permissions-Policy: interest-cohort=() [INFO] [stdout] Sep 25 14:51:59.802 INFO[rocket::server] Matched: (crawl) GET /crawl/ [INFO] [stdout] Sep 25 14:51:59.802 INFO[rocket::shield::shield] X-Content-Type-Options: nosniff [INFO] [stdout] Sep 25 14:51:59.802 WARN[rocket::rocket] ๐Ÿš€ Rocket has launched into local orbit [INFO] [stdout] Sep 25 14:51:59.802 INFO[rocket::server] Outcome: Success [INFO] [stdout] Sep 25 14:51:59.802 INFO[mikes_crawler::better_logging] Completed request /crawl/garbage with status 400 Bad Request in 0.000s, REQ: EBRf [INFO] [stdout] Sep 25 14:51:59.802 INFO[mikes_crawler::better_logging] Received request: /status, REQ: e8LX [INFO] [stdout] Sep 25 14:51:59.802 INFO[rocket::server] GET /status: [INFO] [stdout] Sep 25 14:51:59.802 INFO[rocket::server] Matched: (status) GET /status [INFO] [stdout] Sep 25 14:51:59.802 INFO[rocket::server] Outcome: Success [INFO] [stdout] Sep 25 14:51:59.796 WARN[rocket::config::config] ๐Ÿ”ง Configured for debug. [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::config::config] address: 127.0.0.1 [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::config::config] port: 8000 [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::config::config] workers: 8 [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::config::config] ident: Rocket [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::config::config] keep-alive: 5s [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::config::config] limits: bytes = 8KiB, data-form = 2MiB, file = 1MiB, form = 32KiB, json = 1MiB, msgpack = 1MiB, string = 8KiB [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::config::config] tls: disabled [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::config::config] temp dir: /tmp [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::config::config] log level: normal [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::config::config] ๐Ÿ”ง Configured for debug. [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::config::config] cli colors: true [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::config::config] address: 127.0.0.1 [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::config::config] shutdown: ctrlc = true, force = true, signals = [SIGTERM], grace = 2s, mercy = 3s [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::config::config] port: 8000 [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::config::config] workers: 8 [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::config::config] ident: Rocket [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::config::config] keep-alive: 5s [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::config::config] limits: bytes = 8KiB, data-form = 2MiB, file = 1MiB, form = 32KiB, json = 1MiB, msgpack = 1MiB, string = 8KiB [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::rocket] ๐Ÿ›ฐ Routes: [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::config::config] tls: disabled [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::config::config] temp dir: /tmp [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::config::config] log level: normal [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::config::config] cli colors: true [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::rocket] (status) GET /status [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::config::config] shutdown: ctrlc = true, force = true, signals = [SIGTERM], grace = 2s, mercy = 3s [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::rocket] (crawl) GET /crawl/ [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::rocket] (list) GET /crawl//list [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::rocket] (count) GET /crawl//count [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::fairing::fairings] ๐Ÿ“ก Fairings: [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::fairing::fairings] BetterLogging (request, response) [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::rocket] ๐Ÿ›ฐ Routes: [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::fairing::fairings] Shield (liftoff, response, singleton) [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::rocket] (status) GET /status [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::rocket] (crawl) GET /crawl/ [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::rocket] (list) GET /crawl//list [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::rocket] (count) GET /crawl//count [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::fairing::fairings] ๐Ÿ“ก Fairings: [INFO] [stdout] Sep 25 14:51:59.803 INFO[rocket::shield::shield] ๐Ÿ›ก๏ธ Shield: [INFO] [stdout] Sep 25 14:51:59.803 INFO[rocket::shield::shield] X-Frame-Options: SAMEORIGIN [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::fairing::fairings] BetterLogging (request, response) [INFO] [stdout] Sep 25 14:51:59.803 INFO[rocket::shield::shield] Permissions-Policy: interest-cohort=() [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::fairing::fairings] Shield (liftoff, response, singleton) [INFO] [stdout] Sep 25 14:51:59.803 INFO[rocket::shield::shield] X-Content-Type-Options: nosniff [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::rocket] ๐Ÿš€ Rocket has launched into local orbit [INFO] [stdout] Sep 25 14:51:59.803 INFO[rocket::shield::shield] ๐Ÿ›ก๏ธ Shield: [INFO] [stdout] Sep 25 14:51:59.803 INFO[rocket::shield::shield] X-Frame-Options: SAMEORIGIN [INFO] [stdout] Sep 25 14:51:59.803 INFO[mikes_crawler::better_logging] Received request: /crawl/https%3A%2F%2Fexample.com%2F/count, REQ: Lazu [INFO] [stdout] Sep 25 14:51:59.803 INFO[rocket::shield::shield] X-Content-Type-Options: nosniff [INFO] [stdout] Sep 25 14:51:59.803 INFO[rocket::shield::shield] Permissions-Policy: interest-cohort=() [INFO] [stdout] Sep 25 14:51:59.803 INFO[rocket::server] GET /crawl/https%3A%2F%2Fexample.com%2F/count: [INFO] [stdout] Sep 25 14:51:59.803 WARN[rocket::rocket] ๐Ÿš€ Rocket has launched into local orbit [INFO] [stdout] Sep 25 14:51:59.803 INFO[rocket::server] Matched: (count) GET /crawl//count [INFO] [stdout] Sep 25 14:51:59.803 INFO[mikes_crawler::better_logging] Received request: /crawl/https%3A%2F%2Fexample.com%2F, REQ: oTTD [INFO] [stdout] Sep 25 14:51:59.803 INFO[rocket::server] GET /crawl/https%3A%2F%2Fexample.com%2F: [INFO] [stdout] Sep 25 14:51:59.803 INFO[rocket::server] Outcome: Success [INFO] [stdout] Sep 25 14:51:59.803 INFO[rocket::server] Matched: (crawl) GET /crawl/ [INFO] [stdout] Sep 25 14:51:59.803 INFO[mikes_crawler::better_logging] Completed request /crawl/https%3A%2F%2Fexample.com%2F/count with status 200 OK in 0.000s, REQ: Lazu [INFO] [stdout] Sep 25 14:51:59.804 INFO[rocket::server] Outcome: Success [INFO] [stdout] Sep 25 14:51:59.804 INFO[mikes_crawler::better_logging] Completed request /crawl/https%3A%2F%2Fexample.com%2F with status 200 OK in 0.000s, REQ: oTTD [INFO] [stdout] Sep 25 14:51:59.802 INFO[mikes_crawler::better_logging] Completed request /status with status 500 Internal Server Error in 0.000s, REQ: e8LX [INFO] [stdout] test api::tests::status_returns_result_from_crawler ... ok [INFO] [stdout] test api::tests::count_returns_the_number_of_visited_urls ... ok [INFO] [stdout] test api::tests::crawl_returns_result_from_crawler ... ok [INFO] [stdout] Sep 25 14:51:59.804 INFO[mikes_crawler::crawler] Got redirect from https://example.com/redirect to https://example.com/target [INFO] [stdout] Sep 25 14:51:59.804 INFO[mikes_crawler::crawler] Got body to process from https://example.com/target containing 129 chars [INFO] [stdout] Sep 25 14:51:59.804 INFO[mikes_crawler::crawler] Got body to process from https://example.com/start containing 180 chars [INFO] [stdout] Sep 25 14:51:59.805 INFO[mikes_crawler::crawler] Got body to process from https://example.com/link1 containing 0 chars [INFO] [stdout] Sep 25 14:51:59.805 INFO[mikes_crawler::crawler] Got body to process from https://example.com/link2 containing 0 chars [INFO] [stdout] Sep 25 14:51:59.795 WARN[rocket::config::config] ๐Ÿ”ง Configured for debug. [INFO] [stdout] Sep 25 14:51:59.806 WARN[rocket::config::config] address: 127.0.0.1 [INFO] [stdout] Sep 25 14:51:59.806 INFO[mikes_crawler::crawler] Got body to process from https://example.com/back containing 131 chars [INFO] [stdout] Sep 25 14:51:59.806 WARN[rocket::config::config] port: 8000 [INFO] [stdout] Sep 25 14:51:59.806 WARN[rocket::config::config] workers: 8 [INFO] [stdout] Sep 25 14:51:59.806 WARN[rocket::config::config] ident: Rocket [INFO] [stdout] Sep 25 14:51:59.807 WARN[rocket::config::config] keep-alive: 5s [INFO] [stdout] Sep 25 14:51:59.807 WARN[rocket::config::config] limits: bytes = 8KiB, data-form = 2MiB, file = 1MiB, form = 32KiB, json = 1MiB, msgpack = 1MiB, string = 8KiB [INFO] [stdout] Sep 25 14:51:59.807 WARN[rocket::config::config] tls: disabled [INFO] [stdout] Sep 25 14:51:59.807 WARN[rocket::config::config] temp dir: /tmp [INFO] [stdout] Sep 25 14:51:59.807 WARN[rocket::config::config] log level: normal [INFO] [stdout] Sep 25 14:51:59.807 WARN[rocket::config::config] cli colors: true [INFO] [stdout] Sep 25 14:51:59.807 WARN[rocket::config::config] shutdown: ctrlc = true, force = true, signals = [SIGTERM], grace = 2s, mercy = 3s [INFO] [stdout] Sep 25 14:51:59.807 WARN[rocket::rocket] ๐Ÿ›ฐ Routes: [INFO] [stdout] Sep 25 14:51:59.807 WARN[rocket::rocket] (status) GET /status [INFO] [stdout] Sep 25 14:51:59.807 WARN[rocket::rocket] (crawl) GET /crawl/ [INFO] [stdout] Sep 25 14:51:59.807 WARN[rocket::rocket] (list) GET /crawl//list [INFO] [stdout] Sep 25 14:51:59.807 WARN[rocket::rocket] (count) GET /crawl//count [INFO] [stdout] Sep 25 14:51:59.807 WARN[rocket::fairing::fairings] ๐Ÿ“ก Fairings: [INFO] [stdout] Sep 25 14:51:59.807 WARN[rocket::fairing::fairings] Shield (liftoff, response, singleton) [INFO] [stdout] Sep 25 14:51:59.807 WARN[rocket::fairing::fairings] BetterLogging (request, response) [INFO] [stdout] Sep 25 14:51:59.807 INFO[rocket::shield::shield] ๐Ÿ›ก๏ธ Shield: [INFO] [stdout] Sep 25 14:51:59.807 INFO[rocket::shield::shield] Permissions-Policy: interest-cohort=() [INFO] [stdout] Sep 25 14:51:59.807 INFO[rocket::shield::shield] X-Content-Type-Options: nosniff [INFO] [stdout] Sep 25 14:51:59.807 INFO[rocket::shield::shield] X-Frame-Options: SAMEORIGIN [INFO] [stdout] Sep 25 14:51:59.807 WARN[rocket::rocket] ๐Ÿš€ Rocket has launched into local orbit [INFO] [stdout] Sep 25 14:51:59.807 INFO[mikes_crawler::better_logging] Received request: /crawl/https%3A%2F%2Fexample.com%2F/list, REQ: DEp9 [INFO] [stdout] Sep 25 14:51:59.807 INFO[rocket::server] GET /crawl/https%3A%2F%2Fexample.com%2F/list: [INFO] [stdout] Sep 25 14:51:59.807 INFO[rocket::server] Matched: (list) GET /crawl//list [INFO] [stdout] Sep 25 14:51:59.807 INFO[rocket::server] Outcome: Success [INFO] [stdout] Sep 25 14:51:59.808 INFO[mikes_crawler::crawler] Got body to process from https://example.com/start containing 133 chars [INFO] [stdout] Sep 25 14:51:59.808 INFO[mikes_crawler::crawler] Got redirect from https://example.com/redirect to https://example.com/start [INFO] [stdout] test crawler::tests::dont_revisit_if_found_from_redirect ... ok [INFO] [stdout] test crawler::tests::follows_multiple_internal_links ... ok [INFO] [stdout] test crawler::tests::dont_revisit_due_to_redirect ... ok [INFO] [stdout] Sep 25 14:51:59.813 INFO[mikes_crawler::crawler] Got body to process from https://example.com/page containing 190 chars [INFO] [stdout] test api::tests::status_return_internal_error_from_crawler ... ok [INFO] [stdout] Sep 25 14:51:59.813 INFO[mikes_crawler::crawler] Got redirect from https://example.com/redirect to https://example.com/target [INFO] [stdout] Sep 25 14:51:59.813 INFO[mikes_crawler::crawler] Got body to process from https://example.com/target containing 135 chars [INFO] [stdout] Sep 25 14:51:59.814 INFO[mikes_crawler::better_logging] Completed request /crawl/https%3A%2F%2Fexample.com%2F/list with status 200 OK in 0.006s, REQ: DEp9 [INFO] [stdout] test crawler::tests::reports_redirect_and_target ... ok [INFO] [stdout] Sep 25 14:51:59.814 INFO[mikes_crawler::crawler] Error trying to make request or process response: Connection failed [INFO] [stdout] test crawler::tests::reports_single_network_error ... ok [INFO] [stdout] Sep 25 14:51:59.815 INFO[mikes_crawler::crawler] Got body to process from https://example.com/start containing 135 chars [INFO] [stdout] Sep 25 14:51:59.815 INFO[mikes_crawler::crawler] Got body to process from https://example.com/page containing 133 chars [INFO] [stdout] Sep 25 14:51:59.815 INFO[mikes_crawler::crawler] Got non html response containing: x-application/pdf [INFO] [stdout] test crawler::tests::ignores_non_html ... ok [INFO] [stdout] test crawler::tests::reports_single_page_with_external_links ... ok [INFO] [stdout] test crawler::tests::dont_visit_fragments_separately ... ok [INFO] [stdout] Sep 25 14:51:59.815 INFO[mikes_crawler::crawler] Got response with status 500 Internal Server Error: Not processing the body [INFO] [stdout] Sep 25 14:51:59.815 INFO[mikes_crawler::crawler] Got body to process from https://example.com/start containing 180 chars [INFO] [stdout] Sep 25 14:51:59.816 INFO[mikes_crawler::crawler] Got body to process from https://example.com/start containing 130 chars [INFO] [stdout] test crawler::tests::reports_single_server_error ... ok [INFO] [stdout] test crawler::tests::ignores_link_to_page_excluded_by_robots_txt ... ok [INFO] [stdout] Sep 25 14:51:59.816 INFO[mikes_crawler::crawler] Got body to process from https://example.com/start containing 180 chars [INFO] [stdout] Sep 25 14:51:59.816 INFO[mikes_crawler::crawler] Got body to process from https://example.com/page1 containing 0 chars [INFO] [stdout] Sep 25 14:51:59.816 INFO[mikes_crawler::crawler] Got body to process from https://example.com/page2 containing 0 chars [INFO] [stdout] Sep 25 14:51:59.816 INFO[mikes_crawler::crawler] Got body to process from https://example.com/link1 containing 130 chars [INFO] [stdout] test link_extractor::tests::continues_after_script_tags ... ok [INFO] [stdout] Sep 25 14:51:59.817 INFO[mikes_crawler::crawler] Got body to process from https://example.com/link2 containing 130 chars [INFO] [stdout] test link_extractor::tests::extracts_links_in_domain_as_internal_link ... ok [INFO] [stdout] test crawler::tests::stop_after_loop_of_pages ... ok [INFO] [stdout] test crawler::tests::get_some_status ... ok [INFO] [stdout] test link_extractor::tests::empty_lists_for_empty_html ... ok [INFO] [stdout] Sep 25 14:51:59.823 INFO[mikes_crawler::crawler] Got body to process from https://example.com/link1 containing 180 chars [INFO] [stdout] Sep 25 14:51:59.824 INFO[mikes_crawler::crawler] Got body to process from https://example.com/link2 containing 180 chars [INFO] [stdout] test crawler::tests::stop_after_parallel_loop_of_pages ... ok [INFO] [stdout] test link_extractor::tests::extracts_links_in_other_domain_as_external_link ... ok [INFO] [stdout] test link_extractor::tests::relative_links_are_internal_links ... ok [INFO] [stdout] test api::tests::crawl_return_bad_request_for_non_url ... ok [INFO] [stdout] test api::tests::list_returns_all_visited_urls ... ok [INFO] [stdout] Sep 25 14:51:59.937 INFO[mikes_crawler::crawler] Got body to process from https://example.com/page1 containing 0 chars [INFO] [stdout] Sep 25 14:51:59.937 INFO[mikes_crawler::crawler] Got body to process from https://example.com/page2 containing 0 chars [INFO] [stdout] test crawler::tests::crawl_tracking_is_removed_if_theres_an_error ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/mikes_crawler-5df82194177ba081) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-8df41b4500da4f4d) [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] Sep 25 14:51:59.970 TRCE[polling::epoll] add: epoll_fd=14, fd=16, ev=Event { key: 18446744073709551615, readable: false, writable: false } [INFO] [stdout] Sep 25 14:51:59.971 INFO[httpmock::server] Listening on 127.0.0.1:45879 [INFO] [stdout] Sep 25 14:51:59.971 TRCE[polling::epoll] add: epoll_fd=14, fd=15, ev=Event { key: 18446744073709551615, readable: true, writable: false } [INFO] [stdout] Sep 25 14:51:59.971 TRCE[polling::epoll] new: epoll_fd=14, event_fd=15, timer_fd=Some(16) [INFO] [stdout] Sep 25 14:51:59.971 DEBG[] agent_thread; id=0 [INFO] [stdout] Sep 25 14:51:59.975 TRCE[] -> agent_thread [INFO] [stdout] Sep 25 14:51:59.976 DEBG[] agent took 5.2435ms to start up [INFO] [stdout] Sep 25 14:51:59.985 DEBG[] send_async; method=GET uri=http://127.0.0.1:45879/__httpmock__/ping [INFO] [stdout] Sep 25 14:51:59.985 TRCE[] -> send_async [INFO] [stdout] Sep 25 14:51:59.985 DEBG[] handler [INFO] [stdout] Sep 25 14:51:59.985 TRCE[polling] Poller::notify() [INFO] [stdout] Sep 25 14:51:59.985 TRCE[polling::epoll] notify: epoll_fd=14, event_fd=15 [INFO] [stdout] Sep 25 14:51:59.985 TRCE[] <- send_async [INFO] [stdout] Sep 25 14:51:59.987 INFO[httpmock::server] Listening on 127.0.0.1:36803 [INFO] [stdout] Sep 25 14:51:59.988 TRCE[polling::epoll] add: epoll_fd=25, fd=27, ev=Event { key: 18446744073709551615, readable: false, writable: false } [INFO] [stdout] Sep 25 14:51:59.988 TRCE[polling::epoll] add: epoll_fd=25, fd=26, ev=Event { key: 18446744073709551615, readable: true, writable: false } [INFO] [stdout] Sep 25 14:51:59.989 TRCE[polling::epoll] new: epoll_fd=25, event_fd=26, timer_fd=Some(27) [INFO] [stdout] Sep 25 14:51:59.989 DEBG[] agent_thread; id=1 [INFO] [stdout] Sep 25 14:51:59.989 TRCE[] -> agent_thread [INFO] [stdout] Sep 25 14:51:59.989 DEBG[] agent took 363.02ยตs to start up [INFO] [stdout] Sep 25 14:51:59.989 DEBG[] send_async; method=GET uri=http://127.0.0.1:36803/__httpmock__/ping [INFO] [stdout] Sep 25 14:51:59.989 TRCE[] -> send_async [INFO] [stdout] Sep 25 14:51:59.989 DEBG[] handler [INFO] [stdout] Sep 25 14:51:59.989 TRCE[polling] Poller::notify() [INFO] [stdout] Sep 25 14:51:59.989 TRCE[] received message from agent handle [INFO] [stdout] Sep 25 14:51:59.989 TRCE[polling::epoll] notify: epoll_fd=25, event_fd=26 [INFO] [stdout] Sep 25 14:51:59.989 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.989 TRCE[] <- send_async [INFO] [stdout] Sep 25 14:51:59.989 DEBG[] handler; id=0 [INFO] [stdout] Sep 25 14:51:59.989 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.989 TRCE[polling] Poller::wait(_, Some(0ns)) [INFO] [stdout] Sep 25 14:51:59.989 TRCE[polling::epoll] wait: epoll_fd=25, timeout=Some(0ns) [INFO] [stdout] Sep 25 14:51:59.989 TRCE[polling::epoll] modify: epoll_fd=25, fd=27, ev=Event { key: 18446744073709551615, readable: true, writable: false } [INFO] [stdout] Sep 25 14:51:59.989 TRCE[polling::epoll] new events: epoll_fd=25, res=1 [INFO] [stdout] Sep 25 14:51:59.989 TRCE[polling::epoll] modify: epoll_fd=25, fd=26, ev=Event { key: 18446744073709551615, readable: true, writable: false } [INFO] [stdout] Sep 25 14:51:59.989 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.989 DEBG[] Trying 127.0.0.1:36803... [INFO] [stdout] Sep 25 14:51:59.989 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.989 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.989 DEBG[] Failed to set TCP_KEEPINTVL on fd 30 [INFO] [stdout] Sep 25 14:51:59.989 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.989 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.990 DEBG[] Connected to 127.0.0.1 (127.0.0.1) port 36803 (#0) [INFO] [stdout] Sep 25 14:51:59.990 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.990 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.990 TRCE[] >> GET /__httpmock__/ping HTTP/1.1\r\nHost: 127.0.0.1:36803\r\nAccept: */*\r\nAccept-Encoding: deflate, gzip\r\nuser-agent: curl/7.79.1-DEV isahc/1.5.1\r\nContent-Length: 0\r\n\r\n [INFO] [stdout] Sep 25 14:51:59.990 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.990 TRCE[polling::epoll] add: epoll_fd=25, fd=30, ev=Event { key: 30, readable: true, writable: false } [INFO] [stdout] Sep 25 14:51:59.990 TRCE[polling] Poller::wait(_, Some(198.9736ms)) [INFO] [stdout] Sep 25 14:51:59.990 TRCE[polling::epoll] wait: epoll_fd=25, timeout=Some(198.9736ms) [INFO] [stdout] Sep 25 14:51:59.990 TRCE[polling::epoll] modify: epoll_fd=25, fd=27, ev=Event { key: 18446744073709551615, readable: true, writable: false } [INFO] [stdout] Sep 25 14:51:59.990 TRCE[polling::epoll] add: epoll_fd=36, fd=38, ev=Event { key: 18446744073709551615, readable: false, writable: false } [INFO] [stdout] Sep 25 14:51:59.990 TRCE[polling::epoll] add: epoll_fd=36, fd=37, ev=Event { key: 18446744073709551615, readable: true, writable: false } [INFO] [stdout] Sep 25 14:51:59.990 TRCE[polling::epoll] new: epoll_fd=36, event_fd=37, timer_fd=Some(38) [INFO] [stdout] Sep 25 14:51:59.990 DEBG[] agent_thread; id=2 [INFO] [stdout] Sep 25 14:51:59.990 TRCE[] -> agent_thread [INFO] [stdout] Sep 25 14:51:59.991 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:51:59.991 DEBG[] send_async; method=GET uri=http://127.0.0.1:44445/__httpmock__/ping [INFO] [stdout] Sep 25 14:51:59.991 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:51:59.991 TRCE[] -> send_async [INFO] [stdout] Sep 25 14:51:59.991 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:51:59.991 TRCE[] received 163 bytes [INFO] [stdout] Sep 25 14:51:59.991 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:51:59.991 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:51:59.991 DEBG[] handler [INFO] [stdout] Sep 25 14:51:59.991 TRCE[] Request.parse bytes=163 [INFO] [stdout] Sep 25 14:51:59.991 TRCE[polling] Poller::notify() [INFO] [stdout] Sep 25 14:51:59.991 TRCE[] Request.parse Complete(163) [INFO] [stdout] Sep 25 14:51:59.991 TRCE[polling::epoll] notify: epoll_fd=36, event_fd=37 [INFO] [stdout] Sep 25 14:51:59.991 TRCE[] <- send_async [INFO] [stdout] Sep 25 14:51:59.991 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:51:59.991 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:51:59.991 DEBG[] parsed 5 headers [INFO] [stdout] Sep 25 14:51:59.991 DEBG[] agent took 681.86ยตs to start up [INFO] [stdout] Sep 25 14:51:59.991 DEBG[] incoming body is empty [INFO] [stdout] Sep 25 14:51:59.991 TRCE[] received message from agent handle [INFO] [stdout] Sep 25 14:51:59.991 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.991 DEBG[] handler; id=0 [INFO] [stdout] Sep 25 14:51:59.991 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.991 TRCE[httpmock::server] Routing incoming request: ServerRequestHeader { method: "GET", path: "/__httpmock__/ping", query: "", headers: [("host", "127.0.0.1:36803"), ("accept", "*/*"), ("accept-encoding", "deflate, gzip"), ("user-agent", "curl/7.79.1-DEV isahc/1.5.1"), ("content-length", "0")] } [INFO] [stdout] Sep 25 14:51:59.991 TRCE[polling] Poller::wait(_, Some(0ns)) [INFO] [stdout] Sep 25 14:51:59.991 TRCE[polling::epoll] wait: epoll_fd=36, timeout=Some(0ns) [INFO] [stdout] Sep 25 14:51:59.991 TRCE[polling::epoll] modify: epoll_fd=36, fd=38, ev=Event { key: 18446744073709551615, readable: true, writable: false } [INFO] [stdout] Sep 25 14:51:59.991 TRCE[polling::epoll] new events: epoll_fd=36, res=1 [INFO] [stdout] Sep 25 14:51:59.991 TRCE[polling::epoll] modify: epoll_fd=36, fd=37, ev=Event { key: 18446744073709551615, readable: true, writable: false } [INFO] [stdout] Sep 25 14:51:59.991 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.991 DEBG[] Trying 127.0.0.1:44445... [INFO] [stdout] Sep 25 14:51:59.991 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.991 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.991 DEBG[] Failed to set TCP_KEEPINTVL on fd 42 [INFO] [stdout] Sep 25 14:51:59.991 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.991 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.991 DEBG[] Connected to 127.0.0.1 (127.0.0.1) port 44445 (#0) [INFO] [stdout] Sep 25 14:51:59.991 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.991 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.991 TRCE[] >> GET /__httpmock__/ping HTTP/1.1\r\nHost: 127.0.0.1:44445\r\nAccept: */*\r\nAccept-Encoding: deflate, gzip\r\nuser-agent: curl/7.79.1-DEV isahc/1.5.1\r\nContent-Length: 0\r\n\r\n [INFO] [stdout] Sep 25 14:51:59.991 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.991 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:51:59.991 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:51:59.991 TRCE[] Server::encode status=200, body=None, req_method=Some(GET) [INFO] [stdout] Sep 25 14:51:59.991 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:51:59.991 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:51:59.992 DEBG[] flushed 75 bytes [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:51:59.992 TRCE[polling::epoll] new events: epoll_fd=25, res=1 [INFO] [stdout] Sep 25 14:51:59.992 TRCE[polling::epoll] modify: epoll_fd=25, fd=26, ev=Event { key: 18446744073709551615, readable: true, writable: false } [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] socket event socket=30 readable=true writable=false [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.992 DEBG[] Mark bundle as not supporting multiuse [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] << HTTP/1.1 200 OK\r\n [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] header [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] -> header [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] <- header [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] -- header [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] << content-length: 0\r\n [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] header [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] -> header [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] <- header [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] -- header [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] << date: Thu, 25 Sep 2025 14:51:59 GMT\r\n [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] header [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] -> header [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] <- header [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] -- header [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] header [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] -> header [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] <- header [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] -- header [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] << \r\n [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.992 DEBG[] Connection #0 to host 127.0.0.1 left intact [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.992 TRCE[polling::epoll] remove: epoll_fd=25, fd=30 [INFO] [stdout] Sep 25 14:51:59.992 TRCE[] -> send_async [INFO] [stdout] Sep 25 14:51:59.993 TRCE[] -- handler [INFO] [stdout] Sep 25 14:51:59.993 TRCE[] <- send_async [INFO] [stdout] Sep 25 14:51:59.994 TRCE[] -- send_async [INFO] [stdout] Sep 25 14:51:59.994 TRCE[httpmock::server::web::handlers] Deleted all mocks [INFO] [stdout] Sep 25 14:51:59.994 TRCE[httpmock::server::web::handlers] Deleted request history [INFO] [stdout] Sep 25 14:51:59.994 TRCE[polling::epoll] add: epoll_fd=48, fd=50, ev=Event { key: 18446744073709551615, readable: false, writable: false } [INFO] [stdout] Sep 25 14:51:59.994 TRCE[polling::epoll] add: epoll_fd=48, fd=49, ev=Event { key: 18446744073709551615, readable: true, writable: false } [INFO] [stdout] Sep 25 14:51:59.994 DEBG[httpmock::server::web::handlers] Adding new mock with ID=0 [INFO] [stdout] Sep 25 14:51:59.994 TRCE[polling::epoll] new: epoll_fd=48, event_fd=49, timer_fd=Some(50) [INFO] [stdout] Sep 25 14:51:59.994 DEBG[httpmock::server::web::handlers] Adding new mock with ID=1 [INFO] [stdout] Sep 25 14:51:59.994 DEBG[] agent_thread; id=3 [INFO] [stdout] Sep 25 14:51:59.994 DEBG[httpmock::server::web::handlers] Adding new mock with ID=2 [INFO] [stdout] Sep 25 14:51:59.994 DEBG[httpmock::server::web::handlers] Adding new mock with ID=3 [INFO] [stdout] Sep 25 14:51:59.994 DEBG[httpmock::server::web::handlers] Adding new mock with ID=4 [INFO] [stdout] Sep 25 14:51:59.994 DEBG[httpmock::server::web::handlers] Adding new mock with ID=5 [INFO] [stdout] Sep 25 14:51:59.994 TRCE[] received message from agent handle [INFO] [stdout] Sep 25 14:51:59.994 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.994 DEBG[] handler; id=0 [INFO] [stdout] Sep 25 14:51:59.994 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.994 TRCE[polling] Poller::wait(_, Some(0ns)) [INFO] [stdout] Sep 25 14:51:59.994 TRCE[polling::epoll] wait: epoll_fd=14, timeout=Some(0ns) [INFO] [stdout] Sep 25 14:51:59.994 TRCE[polling::epoll] modify: epoll_fd=14, fd=16, ev=Event { key: 18446744073709551615, readable: true, writable: false } [INFO] [stdout] Sep 25 14:51:59.994 TRCE[polling::epoll] new events: epoll_fd=14, res=1 [INFO] [stdout] Sep 25 14:51:59.994 TRCE[polling::epoll] modify: epoll_fd=14, fd=15, ev=Event { key: 18446744073709551615, readable: true, writable: false } [INFO] [stdout] Sep 25 14:51:59.994 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.994 DEBG[] Trying 127.0.0.1:45879... [INFO] [stdout] Sep 25 14:51:59.994 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.994 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.994 TRCE[reqwest::blocking::wait] (ThreadId(2)) park without timeout [INFO] [stdout] Sep 25 14:51:59.994 DEBG[] Failed to set TCP_KEEPINTVL on fd 51 [INFO] [stdout] Sep 25 14:51:59.994 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.994 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.994 DEBG[] Connected to 127.0.0.1 (127.0.0.1) port 45879 (#0) [INFO] [stdout] Sep 25 14:51:59.994 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.994 TRCE[reqwest::blocking::client] (ThreadId(23)) start runtime::block_on [INFO] [stdout] Sep 25 14:51:59.994 TRCE[] -> agent_thread [INFO] [stdout] Sep 25 14:51:59.994 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.994 TRCE[] >> GET /__httpmock__/ping HTTP/1.1\r\nHost: 127.0.0.1:45879\r\nAccept: */*\r\nAccept-Encoding: deflate, gzip\r\nuser-agent: curl/7.79.1-DEV isahc/1.5.1\r\nContent-Length: 0\r\n\r\n [INFO] [stdout] Sep 25 14:51:59.994 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.994 TRCE[polling::epoll] add: epoll_fd=14, fd=51, ev=Event { key: 51, readable: true, writable: false } [INFO] [stdout] Sep 25 14:51:59.994 TRCE[polling] Poller::wait(_, Some(198.97352ms)) [INFO] [stdout] Sep 25 14:51:59.994 TRCE[polling::epoll] wait: epoll_fd=14, timeout=Some(198.97352ms) [INFO] [stdout] Sep 25 14:51:59.994 TRCE[polling::epoll] modify: epoll_fd=14, fd=16, ev=Event { key: 18446744073709551615, readable: true, writable: false } [INFO] [stdout] Sep 25 14:51:59.994 INFO[httpmock::server] Listening on 127.0.0.1:34993 [INFO] [stdout] Sep 25 14:51:59.994 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:51:59.994 INFO[httpmock::server] Listening on 127.0.0.1:44445 [INFO] [stdout] Sep 25 14:51:59.994 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:51:59.994 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] received 163 bytes [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] Request.parse bytes=163 [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] Request.parse Complete(163) [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] received 163 bytes [INFO] [stdout] Sep 25 14:51:59.995 DEBG[] parsed 5 headers [INFO] [stdout] Sep 25 14:51:59.995 DEBG[] incoming body is empty [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:51:59.995 TRCE[httpmock::server] Routing incoming request: ServerRequestHeader { method: "GET", path: "/__httpmock__/ping", query: "", headers: [("host", "127.0.0.1:45879"), ("accept", "*/*"), ("accept-encoding", "deflate, gzip"), ("user-agent", "curl/7.79.1-DEV isahc/1.5.1"), ("content-length", "0")] } [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] Request.parse bytes=163 [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] Request.parse Complete(163) [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:51:59.995 DEBG[] parsed 5 headers [INFO] [stdout] Sep 25 14:51:59.995 DEBG[] incoming body is empty [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:51:59.995 TRCE[httpmock::server] Routing incoming request: ServerRequestHeader { method: "GET", path: "/__httpmock__/ping", query: "", headers: [("host", "127.0.0.1:44445"), ("accept", "*/*"), ("accept-encoding", "deflate, gzip"), ("user-agent", "curl/7.79.1-DEV isahc/1.5.1"), ("content-length", "0")] } [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] Server::encode status=200, body=None, req_method=Some(GET) [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] Server::encode status=200, body=None, req_method=Some(GET) [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:51:59.995 DEBG[] flushed 75 bytes [INFO] [stdout] Sep 25 14:51:59.995 TRCE[polling::epoll] new events: epoll_fd=14, res=1 [INFO] [stdout] Sep 25 14:51:59.995 TRCE[polling::epoll] modify: epoll_fd=14, fd=15, ev=Event { key: 18446744073709551615, readable: true, writable: false } [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:51:59.995 DEBG[] flushed 75 bytes [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] socket event socket=51 readable=true writable=false [INFO] [stdout] Sep 25 14:51:59.991 TRCE[polling::epoll] add: epoll_fd=36, fd=42, ev=Event { key: 42, readable: true, writable: false } [INFO] [stdout] Sep 25 14:51:59.995 DEBG[] agent took 1.45279ms to start up [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.995 DEBG[] Mark bundle as not supporting multiuse [INFO] [stdout] Sep 25 14:51:59.995 TRCE[polling] Poller::wait(_, Some(195.2198ms)) [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.995 TRCE[polling::epoll] wait: epoll_fd=36, timeout=Some(195.2198ms) [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.995 TRCE[polling::epoll] modify: epoll_fd=36, fd=38, ev=Event { key: 18446744073709551615, readable: true, writable: false } [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] << HTTP/1.1 200 OK\r\n [INFO] [stdout] Sep 25 14:51:59.995 DEBG[] send_async; method=GET uri=http://127.0.0.1:34993/__httpmock__/ping [INFO] [stdout] Sep 25 14:51:59.995 TRCE[polling::epoll] new events: epoll_fd=36, res=1 [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.995 TRCE[polling::epoll] modify: epoll_fd=36, fd=37, ev=Event { key: 18446744073709551615, readable: true, writable: false } [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -> send_async [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] header [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] socket event socket=42 readable=true writable=false [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -> header [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] <- header [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -- header [INFO] [stdout] Sep 25 14:51:59.995 DEBG[] Mark bundle as not supporting multiuse [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.995 DEBG[] handler [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] << content-length: 0\r\n [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] << HTTP/1.1 200 OK\r\n [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] header [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] header [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -> header [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -> header [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] <- header [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] <- header [INFO] [stdout] Sep 25 14:51:59.995 TRCE[polling] Poller::notify() [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -- header [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -- header [INFO] [stdout] Sep 25 14:51:59.995 TRCE[polling::epoll] notify: epoll_fd=48, event_fd=49 [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] << content-length: 0\r\n [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] <- send_async [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] << date: Thu, 25 Sep 2025 14:51:59 GMT\r\n [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] header [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -> header [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] received message from agent handle [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] header [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] <- header [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -> header [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -- header [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] <- header [INFO] [stdout] Sep 25 14:51:59.995 DEBG[] handler; id=0 [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -- header [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] header [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -> header [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] <- header [INFO] [stdout] Sep 25 14:51:59.995 TRCE[polling] Poller::wait(_, Some(0ns)) [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -- header [INFO] [stdout] Sep 25 14:51:59.995 TRCE[polling::epoll] wait: epoll_fd=48, timeout=Some(0ns) [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.995 TRCE[polling::epoll] modify: epoll_fd=48, fd=50, ev=Event { key: 18446744073709551615, readable: true, writable: false } [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] << \r\n [INFO] [stdout] Sep 25 14:51:59.995 TRCE[polling::epoll] new events: epoll_fd=48, res=1 [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.995 TRCE[polling::epoll] modify: epoll_fd=48, fd=49, ev=Event { key: 18446744073709551615, readable: true, writable: false } [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.996 DEBG[] Connection #0 to host 127.0.0.1 left intact [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.996 TRCE[polling::epoll] remove: epoll_fd=14, fd=51 [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.996 DEBG[] Trying 127.0.0.1:34993... [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] -- handler [INFO] [stdout] Sep 25 14:51:59.996 DEBG[] Failed to set TCP_KEEPINTVL on fd 61 [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] -> send_async [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.996 DEBG[] Connected to 127.0.0.1 (127.0.0.1) port 34993 (#0) [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] >> GET /__httpmock__/ping HTTP/1.1\r\nHost: 127.0.0.1:34993\r\nAccept: */*\r\nAccept-Encoding: deflate, gzip\r\nuser-agent: curl/7.79.1-DEV isahc/1.5.1\r\nContent-Length: 0\r\n\r\n [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.996 TRCE[polling::epoll] add: epoll_fd=48, fd=61, ev=Event { key: 61, readable: true, writable: false } [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:51:59.996 TRCE[polling] Poller::wait(_, Some(198.96963ms)) [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] received 163 bytes [INFO] [stdout] Sep 25 14:51:59.996 TRCE[polling::epoll] wait: epoll_fd=48, timeout=Some(198.96963ms) [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:51:59.996 TRCE[polling::epoll] modify: epoll_fd=48, fd=50, ev=Event { key: 18446744073709551615, readable: true, writable: false } [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] Request.parse bytes=163 [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] Request.parse Complete(163) [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:51:59.996 DEBG[] parsed 5 headers [INFO] [stdout] Sep 25 14:51:59.996 DEBG[] incoming body is empty [INFO] [stdout] Sep 25 14:51:59.996 TRCE[httpmock::server] Routing incoming request: ServerRequestHeader { method: "GET", path: "/__httpmock__/ping", query: "", headers: [("host", "127.0.0.1:34993"), ("accept", "*/*"), ("accept-encoding", "deflate, gzip"), ("user-agent", "curl/7.79.1-DEV isahc/1.5.1"), ("content-length", "0")] } [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] Server::encode status=200, body=None, req_method=Some(GET) [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:51:59.996 DEBG[] flushed 75 bytes [INFO] [stdout] Sep 25 14:51:59.996 TRCE[polling::epoll] new events: epoll_fd=48, res=1 [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:51:59.996 TRCE[polling::epoll] modify: epoll_fd=48, fd=49, ev=Event { key: 18446744073709551615, readable: true, writable: false } [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] socket event socket=61 readable=true writable=false [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.996 DEBG[] Mark bundle as not supporting multiuse [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] << HTTP/1.1 200 OK\r\n [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] header [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] -> header [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] <- header [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] -- header [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] << content-length: 0\r\n [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] header [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] -> header [INFO] [stdout] Sep 25 14:51:59.995 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] <- header [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] -- header [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] << date: Thu, 25 Sep 2025 14:51:59 GMT\r\n [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] << date: Thu, 25 Sep 2025 14:51:59 GMT\r\n [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] header [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] header [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] -> header [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] -> header [INFO] [stdout] Sep 25 14:51:59.997 TRCE[] <- header [INFO] [stdout] Sep 25 14:51:59.997 TRCE[] <- header [INFO] [stdout] Sep 25 14:51:59.997 TRCE[] -- header [INFO] [stdout] Sep 25 14:51:59.997 TRCE[] -- header [INFO] [stdout] Sep 25 14:51:59.997 TRCE[] header [INFO] [stdout] Sep 25 14:51:59.997 TRCE[] header [INFO] [stdout] Sep 25 14:51:59.997 TRCE[] -> header [INFO] [stdout] Sep 25 14:51:59.997 TRCE[] -> header [INFO] [stdout] Sep 25 14:51:59.997 TRCE[] <- header [INFO] [stdout] Sep 25 14:51:59.997 TRCE[] <- header [INFO] [stdout] Sep 25 14:51:59.997 TRCE[] -- header [INFO] [stdout] Sep 25 14:51:59.997 TRCE[] -- header [INFO] [stdout] Sep 25 14:51:59.997 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.997 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.997 TRCE[] << \r\n [INFO] [stdout] Sep 25 14:51:59.997 TRCE[] << \r\n [INFO] [stdout] Sep 25 14:51:59.997 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.997 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.997 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.997 TRCE[] -> handler [INFO] [stdout] Sep 25 14:51:59.997 DEBG[] Connection #0 to host 127.0.0.1 left intact [INFO] [stdout] Sep 25 14:51:59.997 DEBG[] Connection #0 to host 127.0.0.1 left intact [INFO] [stdout] Sep 25 14:51:59.997 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.997 TRCE[] <- handler [INFO] [stdout] Sep 25 14:51:59.997 TRCE[polling::epoll] remove: epoll_fd=48, fd=61 [INFO] [stdout] Sep 25 14:51:59.997 TRCE[polling::epoll] remove: epoll_fd=36, fd=42 [INFO] [stdout] Sep 25 14:51:59.997 TRCE[] -- handler [INFO] [stdout] Sep 25 14:51:59.997 TRCE[] -> send_async [INFO] [stdout] Sep 25 14:51:59.997 TRCE[] <- send_async [INFO] [stdout] Sep 25 14:51:59.997 TRCE[] -- send_async [INFO] [stdout] Sep 25 14:51:59.997 TRCE[httpmock::server::web::handlers] Deleted all mocks [INFO] [stdout] Sep 25 14:51:59.997 TRCE[httpmock::server::web::handlers] Deleted request history [INFO] [stdout] Sep 25 14:51:59.997 DEBG[httpmock::server::web::handlers] Adding new mock with ID=0 [INFO] [stdout] Sep 25 14:51:59.997 TRCE[reqwest::blocking::wait] (ThreadId(6)) park without timeout [INFO] [stdout] Sep 25 14:51:59.996 TRCE[] <- send_async [INFO] [stdout] Sep 25 14:51:59.997 TRCE[] -- send_async [INFO] [stdout] Sep 25 14:51:59.997 TRCE[httpmock::server::web::handlers] Deleted all mocks [INFO] [stdout] Sep 25 14:51:59.997 TRCE[httpmock::server::web::handlers] Deleted request history [INFO] [stdout] Sep 25 14:51:59.998 DEBG[httpmock::server::web::handlers] Adding new mock with ID=0 [INFO] [stdout] Sep 25 14:51:59.998 TRCE[reqwest::blocking::wait] (ThreadId(5)) park without timeout [INFO] [stdout] Sep 25 14:52:00.000 TRCE[] -> send_async [INFO] [stdout] Sep 25 14:52:00.000 TRCE[] <- send_async [INFO] [stdout] Sep 25 14:52:00.001 TRCE[] -- send_async [INFO] [stdout] Sep 25 14:52:00.001 TRCE[] -- handler [INFO] [stdout] Sep 25 14:52:00.001 TRCE[httpmock::server::web::handlers] Deleted all mocks [INFO] [stdout] Sep 25 14:52:00.001 TRCE[httpmock::server::web::handlers] Deleted request history [INFO] [stdout] Sep 25 14:52:00.001 DEBG[httpmock::server::web::handlers] Adding new mock with ID=0 [INFO] [stdout] Sep 25 14:52:00.001 TRCE[reqwest::blocking::wait] (ThreadId(3)) park without timeout [INFO] [stdout] Sep 25 14:52:00.008 TRCE[reqwest::blocking::client] (ThreadId(24)) start runtime::block_on [INFO] [stdout] Sep 25 14:52:00.008 TRCE[polling::epoll] add: epoll_fd=72, fd=74, ev=Event { key: 18446744073709551615, readable: false, writable: false } [INFO] [stdout] Sep 25 14:52:00.008 TRCE[polling::epoll] add: epoll_fd=72, fd=73, ev=Event { key: 18446744073709551615, readable: true, writable: false } [INFO] [stdout] Sep 25 14:52:00.008 TRCE[polling::epoll] new: epoll_fd=72, event_fd=73, timer_fd=Some(74) [INFO] [stdout] Sep 25 14:52:00.008 DEBG[] agent_thread; id=4 [INFO] [stdout] Sep 25 14:52:00.008 INFO[httpmock::server] Listening on 127.0.0.1:41983 [INFO] [stdout] Sep 25 14:52:00.008 TRCE[reqwest::blocking::client] (ThreadId(27)) start runtime::block_on [INFO] [stdout] Sep 25 14:52:00.009 TRCE[reqwest::blocking::client] (ThreadId(25)) start runtime::block_on [INFO] [stdout] Sep 25 14:52:00.022 TRCE[] -> agent_thread [INFO] [stdout] Sep 25 14:52:00.022 DEBG[] send_async; method=GET uri=http://127.0.0.1:41983/__httpmock__/ping [INFO] [stdout] Sep 25 14:52:00.022 TRCE[] -> send_async [INFO] [stdout] Sep 25 14:52:00.022 DEBG[] handler [INFO] [stdout] Sep 25 14:52:00.022 TRCE[polling] Poller::notify() [INFO] [stdout] Sep 25 14:52:00.022 TRCE[polling::epoll] notify: epoll_fd=72, event_fd=73 [INFO] [stdout] Sep 25 14:52:00.022 TRCE[] <- send_async [INFO] [stdout] Sep 25 14:52:00.022 DEBG[] agent took 14.330449ms to start up [INFO] [stdout] Sep 25 14:52:00.022 TRCE[] received message from agent handle [INFO] [stdout] Sep 25 14:52:00.022 TRCE[] -> handler [INFO] [stdout] Sep 25 14:52:00.022 DEBG[] handler; id=0 [INFO] [stdout] Sep 25 14:52:00.022 TRCE[] <- handler [INFO] [stdout] Sep 25 14:52:00.022 TRCE[polling] Poller::wait(_, Some(0ns)) [INFO] [stdout] Sep 25 14:52:00.022 TRCE[polling::epoll] wait: epoll_fd=72, timeout=Some(0ns) [INFO] [stdout] Sep 25 14:52:00.022 TRCE[polling::epoll] modify: epoll_fd=72, fd=74, ev=Event { key: 18446744073709551615, readable: true, writable: false } [INFO] [stdout] Sep 25 14:52:00.022 TRCE[polling::epoll] new events: epoll_fd=72, res=1 [INFO] [stdout] Sep 25 14:52:00.022 TRCE[polling::epoll] modify: epoll_fd=72, fd=73, ev=Event { key: 18446744073709551615, readable: true, writable: false } [INFO] [stdout] Sep 25 14:52:00.022 TRCE[] -> handler [INFO] [stdout] Sep 25 14:52:00.022 DEBG[] Trying 127.0.0.1:41983... [INFO] [stdout] Sep 25 14:52:00.022 TRCE[] <- handler [INFO] [stdout] Sep 25 14:52:00.022 TRCE[] -> handler [INFO] [stdout] Sep 25 14:52:00.022 DEBG[] Failed to set TCP_KEEPINTVL on fd 88 [INFO] [stdout] Sep 25 14:52:00.022 TRCE[] <- handler [INFO] [stdout] Sep 25 14:52:00.022 TRCE[] -> handler [INFO] [stdout] Sep 25 14:52:00.023 DEBG[] Connected to 127.0.0.1 (127.0.0.1) port 41983 (#0) [INFO] [stdout] Sep 25 14:52:00.023 TRCE[] <- handler [INFO] [stdout] Sep 25 14:52:00.023 TRCE[] -> handler [INFO] [stdout] Sep 25 14:52:00.023 TRCE[] >> GET /__httpmock__/ping HTTP/1.1\r\nHost: 127.0.0.1:41983\r\nAccept: */*\r\nAccept-Encoding: deflate, gzip\r\nuser-agent: curl/7.79.1-DEV isahc/1.5.1\r\nContent-Length: 0\r\n\r\n [INFO] [stdout] Sep 25 14:52:00.023 TRCE[] <- handler [INFO] [stdout] Sep 25 14:52:00.023 TRCE[polling::epoll] add: epoll_fd=72, fd=88, ev=Event { key: 88, readable: true, writable: false } [INFO] [stdout] Sep 25 14:52:00.023 TRCE[polling] Poller::wait(_, Some(198.9678ms)) [INFO] [stdout] Sep 25 14:52:00.023 TRCE[polling::epoll] wait: epoll_fd=72, timeout=Some(198.9678ms) [INFO] [stdout] Sep 25 14:52:00.023 TRCE[polling::epoll] modify: epoll_fd=72, fd=74, ev=Event { key: 18446744073709551615, readable: true, writable: false } [INFO] [stdout] Sep 25 14:52:00.023 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.023 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.023 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.023 TRCE[] received 163 bytes [INFO] [stdout] Sep 25 14:52:00.023 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.023 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.023 TRCE[] Request.parse bytes=163 [INFO] [stdout] Sep 25 14:52:00.023 TRCE[] Request.parse Complete(163) [INFO] [stdout] Sep 25 14:52:00.023 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.023 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.023 DEBG[] parsed 5 headers [INFO] [stdout] Sep 25 14:52:00.023 DEBG[] incoming body is empty [INFO] [stdout] Sep 25 14:52:00.023 TRCE[httpmock::server] Routing incoming request: ServerRequestHeader { method: "GET", path: "/__httpmock__/ping", query: "", headers: [("host", "127.0.0.1:41983"), ("accept", "*/*"), ("accept-encoding", "deflate, gzip"), ("user-agent", "curl/7.79.1-DEV isahc/1.5.1"), ("content-length", "0")] } [INFO] [stdout] Sep 25 14:52:00.023 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.023 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.023 TRCE[] Server::encode status=200, body=None, req_method=Some(GET) [INFO] [stdout] Sep 25 14:52:00.023 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.023 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.023 DEBG[] flushed 75 bytes [INFO] [stdout] Sep 25 14:52:00.023 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.026 TRCE[polling::epoll] new events: epoll_fd=72, res=1 [INFO] [stdout] Sep 25 14:52:00.026 TRCE[polling::epoll] modify: epoll_fd=72, fd=73, ev=Event { key: 18446744073709551615, readable: true, writable: false } [INFO] [stdout] Sep 25 14:52:00.026 TRCE[] socket event socket=88 readable=true writable=false [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] -> handler [INFO] [stdout] Sep 25 14:52:00.027 DEBG[] Mark bundle as not supporting multiuse [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] <- handler [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] -> handler [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] << HTTP/1.1 200 OK\r\n [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] <- handler [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] header [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] -> header [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] <- header [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] -- header [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] -> handler [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] << content-length: 0\r\n [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] <- handler [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] header [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] -> header [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] <- header [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] -- header [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] -> handler [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] << date: Thu, 25 Sep 2025 14:52:00 GMT\r\n [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] <- handler [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] header [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] -> header [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] <- header [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] -- header [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] header [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] -> header [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] <- header [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] -- header [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] -> handler [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] << \r\n [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] <- handler [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] -> handler [INFO] [stdout] Sep 25 14:52:00.027 DEBG[] Connection #0 to host 127.0.0.1 left intact [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] <- handler [INFO] [stdout] Sep 25 14:52:00.027 TRCE[polling::epoll] remove: epoll_fd=72, fd=88 [INFO] [stdout] Sep 25 14:52:00.027 TRCE[] -- handler [INFO] [stdout] Sep 25 14:52:00.030 TRCE[] -> send_async [INFO] [stdout] Sep 25 14:52:00.030 TRCE[] <- send_async [INFO] [stdout] Sep 25 14:52:00.031 TRCE[] -- send_async [INFO] [stdout] Sep 25 14:52:00.031 TRCE[httpmock::server::web::handlers] Deleted all mocks [INFO] [stdout] Sep 25 14:52:00.031 TRCE[httpmock::server::web::handlers] Deleted request history [INFO] [stdout] Sep 25 14:52:00.031 DEBG[httpmock::server::web::handlers] Adding new mock with ID=0 [INFO] [stdout] Sep 25 14:52:00.031 DEBG[httpmock::server::web::handlers] Adding new mock with ID=1 [INFO] [stdout] Sep 25 14:52:00.031 DEBG[httpmock::server::web::handlers] Adding new mock with ID=2 [INFO] [stdout] Sep 25 14:52:00.031 DEBG[httpmock::server::web::handlers] Adding new mock with ID=3 [INFO] [stdout] Sep 25 14:52:00.031 TRCE[reqwest::blocking::wait] (ThreadId(4)) park without timeout [INFO] [stdout] Sep 25 14:52:00.033 TRCE[reqwest::blocking::client] (ThreadId(29)) start runtime::block_on [INFO] [stdout] Sep 25 14:52:00.050 WARN[rocket::config::config] ๐Ÿ”ง Configured for debug. [INFO] [stdout] Sep 25 14:52:00.050 WARN[rocket::config::config] address: 127.0.0.1 [INFO] [stdout] Sep 25 14:52:00.050 WARN[rocket::config::config] port: 8000 [INFO] [stdout] Sep 25 14:52:00.050 WARN[rocket::config::config] workers: 8 [INFO] [stdout] Sep 25 14:52:00.050 WARN[rocket::config::config] ident: Rocket [INFO] [stdout] Sep 25 14:52:00.050 WARN[rocket::config::config] keep-alive: 5s [INFO] [stdout] Sep 25 14:52:00.050 WARN[rocket::config::config] limits: bytes = 8KiB, data-form = 2MiB, file = 1MiB, form = 32KiB, json = 1MiB, msgpack = 1MiB, string = 8KiB [INFO] [stdout] Sep 25 14:52:00.050 WARN[rocket::config::config] tls: disabled [INFO] [stdout] Sep 25 14:52:00.050 WARN[rocket::config::config] temp dir: /tmp [INFO] [stdout] Sep 25 14:52:00.050 WARN[rocket::config::config] log level: normal [INFO] [stdout] Sep 25 14:52:00.050 WARN[rocket::config::config] cli colors: true [INFO] [stdout] Sep 25 14:52:00.050 WARN[rocket::config::config] shutdown: ctrlc = true, force = true, signals = [SIGTERM], grace = 2s, mercy = 3s [INFO] [stdout] Sep 25 14:52:00.053 WARN[rocket::rocket] ๐Ÿ›ฐ Routes: [INFO] [stdout] Sep 25 14:52:00.054 WARN[rocket::rocket] (status) GET /status [INFO] [stdout] Sep 25 14:52:00.054 WARN[rocket::rocket] GET /openapi.json [INFO] [stdout] Sep 25 14:52:00.054 WARN[rocket::rocket] (crawl) GET /crawl/ [INFO] [stdout] Sep 25 14:52:00.054 WARN[rocket::rocket] (list) GET /crawl//list [INFO] [stdout] Sep 25 14:52:00.054 WARN[rocket::rocket] (count) GET /crawl//count [INFO] [stdout] Sep 25 14:52:00.054 WARN[rocket::rocket] GET /swagger/ [INFO] [stdout] Sep 25 14:52:00.054 WARN[rocket::rocket] GET /swagger/index.html [INFO] [stdout] Sep 25 14:52:00.054 WARN[rocket::rocket] GET /swagger/swagger-ui.css [INFO] [stdout] Sep 25 14:52:00.054 WARN[rocket::rocket] GET /swagger/oauth2-redirect.html [INFO] [stdout] Sep 25 14:52:00.054 WARN[rocket::rocket] GET /swagger/swagger-ui-bundle.js [INFO] [stdout] Sep 25 14:52:00.054 WARN[rocket::rocket] GET /swagger/swagger-ui-config.json [INFO] [stdout] Sep 25 14:52:00.054 WARN[rocket::rocket] GET /swagger/swagger-ui-standalone-preset.js [INFO] [stdout] Sep 25 14:52:00.054 WARN[rocket::fairing::fairings] ๐Ÿ“ก Fairings: [INFO] [stdout] Sep 25 14:52:00.054 WARN[rocket::fairing::fairings] Shield (liftoff, response, singleton) [INFO] [stdout] Sep 25 14:52:00.054 WARN[rocket::fairing::fairings] BetterLogging (request, response) [INFO] [stdout] Sep 25 14:52:00.054 INFO[rocket::shield::shield] ๐Ÿ›ก๏ธ Shield: [INFO] [stdout] Sep 25 14:52:00.054 INFO[rocket::shield::shield] X-Content-Type-Options: nosniff [INFO] [stdout] Sep 25 14:52:00.054 INFO[rocket::shield::shield] Permissions-Policy: interest-cohort=() [INFO] [stdout] Sep 25 14:52:00.054 INFO[rocket::shield::shield] X-Frame-Options: SAMEORIGIN [INFO] [stdout] Sep 25 14:52:00.054 WARN[rocket::rocket] ๐Ÿš€ Rocket has launched from http://127.0.0.1:8000 [INFO] [stdout] Sep 25 14:52:00.065 TRCE[reqwest::blocking::wait] wait at most 30s [INFO] [stdout] Sep 25 14:52:00.065 TRCE[reqwest::blocking::wait] (ThreadId(2)) park timeout 29.9999951s [INFO] [stdout] Sep 25 14:52:00.065 TRCE[] checkout waiting for idle connection: ("http", 127.0.0.1:8000) [INFO] [stdout] Sep 25 14:52:00.065 DEBG[reqwest::connect] starting new connection: http://127.0.0.1:8000/ [INFO] [stdout] Sep 25 14:52:00.065 TRCE[] Http::connect; scheme=Some("http"), host=Some("127.0.0.1"), port=Some(Port(8000)) [INFO] [stdout] Sep 25 14:52:00.065 DEBG[] connecting to 127.0.0.1:8000 [INFO] [stdout] Sep 25 14:52:00.065 DEBG[] connected to 127.0.0.1:8000 [INFO] [stdout] Sep 25 14:52:00.065 TRCE[] client handshake Http1 [INFO] [stdout] Sep 25 14:52:00.065 TRCE[] handshake complete, spawning background dispatcher task [INFO] [stdout] Sep 25 14:52:00.065 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.065 TRCE[] checkout dropped for ("http", 127.0.0.1:8000) [INFO] [stdout] Sep 25 14:52:00.065 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.065 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.065 TRCE[] Client::encode method=GET, body=None [INFO] [stdout] Sep 25 14:52:00.066 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.066 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.066 DEBG[] flushed 97 bytes [INFO] [stdout] Sep 25 14:52:00.066 TRCE[] flushed({role=client}): State { reading: Init, writing: KeepAlive, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.071 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.071 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.071 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.071 TRCE[] received 97 bytes [INFO] [stdout] Sep 25 14:52:00.071 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.071 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.071 TRCE[] Request.parse bytes=97 [INFO] [stdout] Sep 25 14:52:00.071 TRCE[] Request.parse Complete(97) [INFO] [stdout] Sep 25 14:52:00.071 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.071 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.071 DEBG[] parsed 2 headers [INFO] [stdout] Sep 25 14:52:00.071 DEBG[] incoming body is empty [INFO] [stdout] Sep 25 14:52:00.071 TRCE[] flushed({role=server}): State { reading: KeepAlive, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.071 INFO[mikes_crawler::better_logging] Received request: /crawl/http%3A%2F%2F127.0.0.1%3A36803%2Fstart, REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.072 INFO[rocket::server] GET /crawl/http%3A%2F%2F127.0.0.1%3A36803%2Fstart: [INFO] [stdout] Sep 25 14:52:00.072 INFO[rocket::server] Matched: (crawl) GET /crawl/ [INFO] [stdout] Sep 25 14:52:00.072 TRCE[] checkout waiting for idle connection: ("http", 127.0.0.1:36803) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.072 DEBG[reqwest::connect] starting new connection: http://127.0.0.1:36803/, REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.072 TRCE[] Http::connect; scheme=Some("http"), host=Some("127.0.0.1"), port=Some(Port(36803)) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.072 DEBG[] connecting to 127.0.0.1:36803 , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.086 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.086 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.086 DEBG[] connected to 127.0.0.1:36803 , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.086 TRCE[] client handshake Http1 , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.086 TRCE[] handshake complete, spawning background dispatcher task , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.086 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.086 TRCE[] checkout dropped for ("http", 127.0.0.1:36803) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.086 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.086 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.086 TRCE[] Client::encode method=GET, body=None [INFO] [stdout] Sep 25 14:52:00.086 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.086 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.094 DEBG[] flushed 90 bytes [INFO] [stdout] Sep 25 14:52:00.095 TRCE[] flushed({role=client}): State { reading: Init, writing: KeepAlive, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.095 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.095 TRCE[] received 90 bytes [INFO] [stdout] Sep 25 14:52:00.095 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.095 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.095 TRCE[] Request.parse bytes=90 [INFO] [stdout] Sep 25 14:52:00.095 TRCE[] Request.parse Complete(90) [INFO] [stdout] Sep 25 14:52:00.095 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.095 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.095 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.095 DEBG[] incoming body is empty [INFO] [stdout] Sep 25 14:52:00.095 TRCE[httpmock::server] Routing incoming request: ServerRequestHeader { method: "GET", path: "/robots.txt", query: "", headers: [("accept", "*/*"), ("user-agent", "MikesCrawler"), ("host", "127.0.0.1:36803")] } [INFO] [stdout] Sep 25 14:52:00.097 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.109 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.109 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.109 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.109 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.109 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.109 DEBG[httpmock::server::web::handlers] Could not match any mock to the following request: HttpMockRequest { [INFO] [stdout] path: "/robots.txt", [INFO] [stdout] method: "GET", [INFO] [stdout] headers: Some( [INFO] [stdout] [ [INFO] [stdout] ( [INFO] [stdout] "accept", [INFO] [stdout] "*/*", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "user-agent", [INFO] [stdout] "MikesCrawler", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "host", [INFO] [stdout] "127.0.0.1:36803", [INFO] [stdout] ), [INFO] [stdout] ], [INFO] [stdout] ), [INFO] [stdout] query_params: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] body: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] } [INFO] [stdout] Sep 25 14:52:00.109 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.109 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.109 TRCE[] Server::encode status=404, body=Some(Known(53)), req_method=Some(GET) [INFO] [stdout] Sep 25 14:52:00.109 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.109 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.109 TRCE[] buffer.queue self.len=115 buf.len=53 [INFO] [stdout] Sep 25 14:52:00.109 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.109 TRCE[] received 168 bytes [INFO] [stdout] Sep 25 14:52:00.109 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.109 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.109 TRCE[] Response.parse bytes=168 [INFO] [stdout] Sep 25 14:52:00.109 TRCE[] Response.parse Complete(115) [INFO] [stdout] Sep 25 14:52:00.109 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.109 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.109 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.109 DEBG[] incoming body is content-length (53 bytes) [INFO] [stdout] Sep 25 14:52:00.109 TRCE[] decode; state=Length(53) [INFO] [stdout] Sep 25 14:52:00.109 DEBG[] incoming body completed [INFO] [stdout] Sep 25 14:52:00.109 TRCE[] maybe_notify; read_from_io blocked [INFO] [stdout] Sep 25 14:52:00.110 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.110 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.110 TRCE[] put; add idle connection for ("http", 127.0.0.1:36803) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.110 DEBG[] pooling idle connection for ("http", 127.0.0.1:36803) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.110 DEBG[reqwest::async_impl::client] response '404 Not Found' for http://127.0.0.1:36803/robots.txt, REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.110 TRCE[] take? ("http", 127.0.0.1:36803): expiration = Some(90s) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.110 DEBG[] reuse idle connection for ("http", 127.0.0.1:36803) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.110 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.110 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.110 TRCE[] Client::encode method=GET, body=None [INFO] [stdout] Sep 25 14:52:00.110 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.110 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.110 DEBG[] flushed 85 bytes [INFO] [stdout] Sep 25 14:52:00.110 TRCE[] flushed({role=client}): State { reading: Init, writing: KeepAlive, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.110 DEBG[] flushed 168 bytes [INFO] [stdout] Sep 25 14:52:00.111 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.111 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.111 TRCE[] received 85 bytes [INFO] [stdout] Sep 25 14:52:00.111 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.111 TRCE[] idle interval checking for expired [INFO] [stdout] Sep 25 14:52:00.111 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.111 TRCE[] Request.parse bytes=85 [INFO] [stdout] Sep 25 14:52:00.111 TRCE[] Request.parse Complete(85) [INFO] [stdout] Sep 25 14:52:00.111 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.111 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.111 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.111 DEBG[] incoming body is empty [INFO] [stdout] Sep 25 14:52:00.113 TRCE[httpmock::server] Routing incoming request: ServerRequestHeader { method: "GET", path: "/start", query: "", headers: [("accept", "*/*"), ("user-agent", "MikesCrawler"), ("host", "127.0.0.1:36803")] } [INFO] [stdout] Sep 25 14:52:00.113 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.113 TRCE[httpmock::server::matchers::targets] Cannot parse json value: EOF while parsing a value at line 1 column 0 [INFO] [stdout] Sep 25 14:52:00.113 TRCE[httpmock::server::matchers::targets] Cannot parse json value: EOF while parsing a value at line 1 column 0 [INFO] [stdout] Sep 25 14:52:00.113 DEBG[httpmock::server::web::handlers] Matched mock with id=0 to the following request: HttpMockRequest { [INFO] [stdout] path: "/start", [INFO] [stdout] method: "GET", [INFO] [stdout] headers: Some( [INFO] [stdout] [ [INFO] [stdout] ( [INFO] [stdout] "accept", [INFO] [stdout] "*/*", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "user-agent", [INFO] [stdout] "MikesCrawler", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "host", [INFO] [stdout] "127.0.0.1:36803", [INFO] [stdout] ), [INFO] [stdout] ], [INFO] [stdout] ), [INFO] [stdout] query_params: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] body: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] } [INFO] [stdout] Sep 25 14:52:00.113 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.113 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.113 TRCE[] Server::encode status=200, body=Some(Known(436)), req_method=Some(GET) [INFO] [stdout] Sep 25 14:52:00.113 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.113 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.113 TRCE[] buffer.queue self.len=102 buf.len=436 [INFO] [stdout] Sep 25 14:52:00.113 DEBG[] flushed 538 bytes [INFO] [stdout] Sep 25 14:52:00.113 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.113 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.113 TRCE[] received 538 bytes [INFO] [stdout] Sep 25 14:52:00.113 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.113 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.113 TRCE[] Response.parse bytes=538 [INFO] [stdout] Sep 25 14:52:00.113 TRCE[] Response.parse Complete(102) [INFO] [stdout] Sep 25 14:52:00.113 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.113 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.113 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.113 DEBG[] incoming body is content-length (436 bytes) [INFO] [stdout] Sep 25 14:52:00.113 TRCE[] decode; state=Length(436) [INFO] [stdout] Sep 25 14:52:00.113 DEBG[] incoming body completed [INFO] [stdout] Sep 25 14:52:00.113 TRCE[] maybe_notify; read_from_io blocked [INFO] [stdout] Sep 25 14:52:00.113 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.113 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.113 TRCE[] put; add idle connection for ("http", 127.0.0.1:36803) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.113 DEBG[] pooling idle connection for ("http", 127.0.0.1:36803) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.113 DEBG[reqwest::async_impl::client] response '200 OK' for http://127.0.0.1:36803/start, REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.113 INFO[mikes_crawler::crawler] Got body to process from http://127.0.0.1:36803/start containing 436 chars, REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.114 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.121 TRCE[] take? ("http", 127.0.0.1:36803): expiration = Some(90s) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.121 DEBG[] reuse idle connection for ("http", 127.0.0.1:36803) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.121 TRCE[] checkout waiting for idle connection: ("http", 127.0.0.1:36803) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.121 DEBG[reqwest::connect] starting new connection: http://127.0.0.1:36803/, REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.121 TRCE[] Http::connect; scheme=Some("http"), host=Some("127.0.0.1"), port=Some(Port(36803)) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.121 DEBG[] connecting to 127.0.0.1:36803 , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.121 TRCE[] checkout waiting for idle connection: ("http", 127.0.0.1:36803) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.121 DEBG[reqwest::connect] starting new connection: http://127.0.0.1:36803/, REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.131 TRCE[reqwest::blocking::wait] wait at most 30s [INFO] [stdout] Sep 25 14:52:00.131 TRCE[reqwest::blocking::wait] (ThreadId(4)) park timeout 29.99999529s [INFO] [stdout] Sep 25 14:52:00.131 TRCE[] checkout waiting for idle connection: ("http", 127.0.0.1:8000) [INFO] [stdout] Sep 25 14:52:00.131 DEBG[reqwest::connect] starting new connection: http://127.0.0.1:8000/ [INFO] [stdout] Sep 25 14:52:00.122 TRCE[] Http::connect; scheme=Some("http"), host=Some("127.0.0.1"), port=Some(Port(36803)) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.132 DEBG[] connecting to 127.0.0.1:36803 , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.132 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.132 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.132 TRCE[] checkout waiting for idle connection: ("http", 127.0.0.1:36803) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.132 DEBG[reqwest::connect] starting new connection: http://127.0.0.1:36803/, REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.132 TRCE[] Http::connect; scheme=Some("http"), host=Some("127.0.0.1"), port=Some(Port(36803)) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.133 DEBG[] connecting to 127.0.0.1:36803 , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.133 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.133 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.133 DEBG[] connected to 127.0.0.1:36803 , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.133 TRCE[] client handshake Http1 , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.133 TRCE[] handshake complete, spawning background dispatcher task , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.133 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.133 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.133 TRCE[] Client::encode method=GET, body=None [INFO] [stdout] Sep 25 14:52:00.133 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.133 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.133 DEBG[] flushed 87 bytes [INFO] [stdout] Sep 25 14:52:00.133 TRCE[] flushed({role=client}): State { reading: Init, writing: KeepAlive, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.133 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.133 TRCE[] checkout waiting for idle connection: ("http", 127.0.0.1:36803) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.133 DEBG[reqwest::connect] starting new connection: http://127.0.0.1:36803/, REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.133 TRCE[] Http::connect; scheme=Some("http"), host=Some("127.0.0.1"), port=Some(Port(36803)) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.133 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.133 DEBG[] connecting to 127.0.0.1:36803 , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.133 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.133 TRCE[] received 87 bytes [INFO] [stdout] Sep 25 14:52:00.133 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.133 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.133 DEBG[] connected to 127.0.0.1:36803 , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.133 TRCE[] client handshake Http1 , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.134 TRCE[] handshake complete, spawning background dispatcher task , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.134 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.134 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.134 DEBG[] connected to 127.0.0.1:36803 , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.134 TRCE[] client handshake Http1 , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.134 TRCE[] Request.parse bytes=87 [INFO] [stdout] Sep 25 14:52:00.134 TRCE[] handshake complete, spawning background dispatcher task , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.134 TRCE[] Request.parse Complete(87) [INFO] [stdout] Sep 25 14:52:00.134 DEBG[] connected to 127.0.0.1:36803 , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.134 TRCE[] client handshake Http1 , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.134 TRCE[] handshake complete, spawning background dispatcher task , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.134 TRCE[] checkout dropped for ("http", 127.0.0.1:36803) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.134 TRCE[] checkout dropped for ("http", 127.0.0.1:36803) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.134 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.134 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.134 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.134 DEBG[] incoming body is empty [INFO] [stdout] Sep 25 14:52:00.135 TRCE[httpmock::server] Routing incoming request: ServerRequestHeader { method: "GET", path: "/another", query: "", headers: [("accept", "*/*"), ("user-agent", "MikesCrawler"), ("host", "127.0.0.1:36803")] } [INFO] [stdout] Sep 25 14:52:00.135 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.136 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.137 TRCE[httpmock::server::matchers::targets] Cannot parse json value: EOF while parsing a value at line 1 column 0 [INFO] [stdout] Sep 25 14:52:00.137 TRCE[httpmock::server::matchers::targets] Cannot parse json value: EOF while parsing a value at line 1 column 0 [INFO] [stdout] Sep 25 14:52:00.137 DEBG[httpmock::server::web::handlers] Matched mock with id=1 to the following request: HttpMockRequest { [INFO] [stdout] path: "/another", [INFO] [stdout] method: "GET", [INFO] [stdout] headers: Some( [INFO] [stdout] [ [INFO] [stdout] ( [INFO] [stdout] "accept", [INFO] [stdout] "*/*", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "user-agent", [INFO] [stdout] "MikesCrawler", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "host", [INFO] [stdout] "127.0.0.1:36803", [INFO] [stdout] ), [INFO] [stdout] ], [INFO] [stdout] ), [INFO] [stdout] query_params: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] body: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] } [INFO] [stdout] Sep 25 14:52:00.137 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.137 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.137 TRCE[] Server::encode status=200, body=Some(Known(135)), req_method=Some(GET) [INFO] [stdout] Sep 25 14:52:00.137 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.137 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.137 TRCE[] buffer.queue self.len=117 buf.len=135 [INFO] [stdout] Sep 25 14:52:00.137 DEBG[] flushed 252 bytes [INFO] [stdout] Sep 25 14:52:00.137 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.138 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.134 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.140 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.140 TRCE[] Client::encode method=GET, body=None [INFO] [stdout] Sep 25 14:52:00.141 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.141 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.141 DEBG[] flushed 88 bytes [INFO] [stdout] Sep 25 14:52:00.141 TRCE[] flushed({role=client}): State { reading: Init, writing: KeepAlive, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.141 TRCE[] checkout dropped for ("http", 127.0.0.1:36803) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.141 TRCE[] checkout dropped for ("http", 127.0.0.1:36803) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.138 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.141 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.141 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.141 TRCE[] Client::encode method=GET, body=None [INFO] [stdout] Sep 25 14:52:00.141 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.141 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.141 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.141 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.141 TRCE[] Client::encode method=GET, body=None [INFO] [stdout] Sep 25 14:52:00.137 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.141 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.141 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.141 TRCE[] received 88 bytes [INFO] [stdout] Sep 25 14:52:00.141 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.141 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.141 TRCE[] Request.parse bytes=88 [INFO] [stdout] Sep 25 14:52:00.141 TRCE[] Request.parse Complete(88) [INFO] [stdout] Sep 25 14:52:00.142 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.142 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.142 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.141 DEBG[] flushed 85 bytes [INFO] [stdout] Sep 25 14:52:00.134 TRCE[] Http::connect; scheme=Some("http"), host=Some("127.0.0.1"), port=Some(Port(8000)) [INFO] [stdout] Sep 25 14:52:00.142 TRCE[] flushed({role=client}): State { reading: Init, writing: KeepAlive, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.142 DEBG[] incoming body is empty [INFO] [stdout] Sep 25 14:52:00.142 TRCE[httpmock::server] Routing incoming request: ServerRequestHeader { method: "GET", path: "/redirect", query: "", headers: [("accept", "*/*"), ("user-agent", "MikesCrawler"), ("host", "127.0.0.1:36803")] } [INFO] [stdout] Sep 25 14:52:00.142 DEBG[] connecting to 127.0.0.1:8000 [INFO] [stdout] Sep 25 14:52:00.142 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.142 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.142 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.142 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.142 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.142 DEBG[] connected to 127.0.0.1:8000 [INFO] [stdout] Sep 25 14:52:00.142 TRCE[httpmock::server::matchers::targets] Cannot parse json value: EOF while parsing a value at line 1 column 0 [INFO] [stdout] Sep 25 14:52:00.142 TRCE[httpmock::server::matchers::targets] Cannot parse json value: EOF while parsing a value at line 1 column 0 [INFO] [stdout] Sep 25 14:52:00.142 TRCE[] client handshake Http1 [INFO] [stdout] Sep 25 14:52:00.142 DEBG[httpmock::server::web::handlers] Matched mock with id=4 to the following request: HttpMockRequest { [INFO] [stdout] path: "/redirect", [INFO] [stdout] method: "GET", [INFO] [stdout] headers: Some( [INFO] [stdout] [ [INFO] [stdout] ( [INFO] [stdout] "accept", [INFO] [stdout] "*/*", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "user-agent", [INFO] [stdout] "MikesCrawler", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "host", [INFO] [stdout] "127.0.0.1:36803", [INFO] [stdout] ), [INFO] [stdout] ], [INFO] [stdout] ), [INFO] [stdout] query_params: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] body: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] } [INFO] [stdout] Sep 25 14:52:00.142 TRCE[] handshake complete, spawning background dispatcher task [INFO] [stdout] Sep 25 14:52:00.142 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.142 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.142 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.142 TRCE[] Server::encode status=301, body=None, req_method=Some(GET) [INFO] [stdout] Sep 25 14:52:00.142 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.142 TRCE[] checkout dropped for ("http", 127.0.0.1:8000) [INFO] [stdout] Sep 25 14:52:00.142 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.142 DEBG[] flushed 130 bytes [INFO] [stdout] Sep 25 14:52:00.142 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.142 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.142 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.142 TRCE[] Client::encode method=GET, body=None [INFO] [stdout] Sep 25 14:52:00.142 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.142 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.142 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.142 TRCE[] received 85 bytes [INFO] [stdout] Sep 25 14:52:00.138 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.143 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.143 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.143 DEBG[] flushed 83 bytes [INFO] [stdout] Sep 25 14:52:00.143 TRCE[] flushed({role=client}): State { reading: Init, writing: KeepAlive, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.144 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.144 TRCE[] Client::encode method=GET, body=None [INFO] [stdout] Sep 25 14:52:00.144 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.144 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.144 DEBG[] flushed 88 bytes [INFO] [stdout] Sep 25 14:52:00.144 TRCE[] flushed({role=client}): State { reading: Init, writing: KeepAlive, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.144 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.144 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.144 TRCE[] Request.parse bytes=85 [INFO] [stdout] Sep 25 14:52:00.144 TRCE[] Request.parse Complete(85) [INFO] [stdout] Sep 25 14:52:00.144 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.144 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.144 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.144 DEBG[] incoming body is empty [INFO] [stdout] Sep 25 14:52:00.144 TRCE[httpmock::server] Routing incoming request: ServerRequestHeader { method: "GET", path: "/third", query: "", headers: [("accept", "*/*"), ("user-agent", "MikesCrawler"), ("host", "127.0.0.1:36803")] } [INFO] [stdout] Sep 25 14:52:00.144 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.144 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.144 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.144 TRCE[httpmock::server::matchers::targets] Cannot parse json value: EOF while parsing a value at line 1 column 0 [INFO] [stdout] Sep 25 14:52:00.144 TRCE[httpmock::server::matchers::targets] Cannot parse json value: EOF while parsing a value at line 1 column 0 [INFO] [stdout] Sep 25 14:52:00.144 DEBG[httpmock::server::web::handlers] Matched mock with id=2 to the following request: HttpMockRequest { [INFO] [stdout] path: "/third", [INFO] [stdout] method: "GET", [INFO] [stdout] headers: Some( [INFO] [stdout] [ [INFO] [stdout] ( [INFO] [stdout] "accept", [INFO] [stdout] "*/*", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "user-agent", [INFO] [stdout] "MikesCrawler", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "host", [INFO] [stdout] "127.0.0.1:36803", [INFO] [stdout] ), [INFO] [stdout] ], [INFO] [stdout] ), [INFO] [stdout] query_params: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] body: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] } [INFO] [stdout] Sep 25 14:52:00.144 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.144 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.144 TRCE[] Server::encode status=200, body=Some(Known(116)), req_method=Some(GET) [INFO] [stdout] Sep 25 14:52:00.144 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.144 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.144 TRCE[] buffer.queue self.len=117 buf.len=116 [INFO] [stdout] Sep 25 14:52:00.144 DEBG[] flushed 233 bytes [INFO] [stdout] Sep 25 14:52:00.144 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.144 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.144 TRCE[] received 83 bytes [INFO] [stdout] Sep 25 14:52:00.144 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.144 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.144 TRCE[] Request.parse bytes=83 [INFO] [stdout] Sep 25 14:52:00.144 TRCE[] Request.parse Complete(83) [INFO] [stdout] Sep 25 14:52:00.144 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.144 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.144 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.144 DEBG[] incoming body is empty [INFO] [stdout] Sep 25 14:52:00.144 DEBG[] flushed 97 bytes [INFO] [stdout] Sep 25 14:52:00.144 TRCE[] flushed({role=client}): State { reading: Init, writing: KeepAlive, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.144 TRCE[httpmock::server] Routing incoming request: ServerRequestHeader { method: "GET", path: "/pdf", query: "", headers: [("accept", "*/*"), ("user-agent", "MikesCrawler"), ("host", "127.0.0.1:36803")] } [INFO] [stdout] Sep 25 14:52:00.138 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.145 TRCE[] received 252 bytes [INFO] [stdout] Sep 25 14:52:00.145 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.145 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.145 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.145 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.145 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.145 TRCE[] Response.parse bytes=252 [INFO] [stdout] Sep 25 14:52:00.145 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.145 TRCE[] Response.parse Complete(117) [INFO] [stdout] Sep 25 14:52:00.145 TRCE[httpmock::server::matchers::targets] Cannot parse json value: EOF while parsing a value at line 1 column 0 [INFO] [stdout] Sep 25 14:52:00.145 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.145 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.145 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.145 DEBG[] incoming body is content-length (135 bytes) [INFO] [stdout] Sep 25 14:52:00.145 TRCE[] decode; state=Length(135) [INFO] [stdout] Sep 25 14:52:00.145 DEBG[] incoming body completed [INFO] [stdout] Sep 25 14:52:00.145 TRCE[httpmock::server::matchers::targets] Cannot parse json value: EOF while parsing a value at line 1 column 0 [INFO] [stdout] Sep 25 14:52:00.145 TRCE[] maybe_notify; read_from_io blocked [INFO] [stdout] Sep 25 14:52:00.145 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.145 TRCE[] received 233 bytes [INFO] [stdout] Sep 25 14:52:00.145 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.145 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.145 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.145 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.145 TRCE[] Response.parse bytes=233 [INFO] [stdout] Sep 25 14:52:00.145 TRCE[] Response.parse Complete(117) [INFO] [stdout] Sep 25 14:52:00.145 TRCE[] put; add idle connection for ("http", 127.0.0.1:36803) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.145 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.145 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.145 DEBG[] pooling idle connection for ("http", 127.0.0.1:36803) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.145 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.145 DEBG[] incoming body is content-length (116 bytes) [INFO] [stdout] Sep 25 14:52:00.145 DEBG[reqwest::async_impl::client] response '200 OK' for http://127.0.0.1:36803/another, REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.145 TRCE[] decode; state=Length(116) [INFO] [stdout] Sep 25 14:52:00.145 DEBG[] incoming body completed [INFO] [stdout] Sep 25 14:52:00.145 TRCE[] maybe_notify; read_from_io blocked [INFO] [stdout] Sep 25 14:52:00.145 INFO[mikes_crawler::crawler] Got body to process from http://127.0.0.1:36803/another containing 135 chars, REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.145 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.145 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.146 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.146 TRCE[] received 130 bytes [INFO] [stdout] Sep 25 14:52:00.146 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.146 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.146 TRCE[] Response.parse bytes=130 [INFO] [stdout] Sep 25 14:52:00.146 TRCE[] Response.parse Complete(130) [INFO] [stdout] Sep 25 14:52:00.146 DEBG[httpmock::server::web::handlers] Matched mock with id=3 to the following request: HttpMockRequest { [INFO] [stdout] path: "/pdf", [INFO] [stdout] method: "GET", [INFO] [stdout] headers: Some( [INFO] [stdout] [ [INFO] [stdout] ( [INFO] [stdout] "accept", [INFO] [stdout] "*/*", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "user-agent", [INFO] [stdout] "MikesCrawler", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "host", [INFO] [stdout] "127.0.0.1:36803", [INFO] [stdout] ), [INFO] [stdout] ], [INFO] [stdout] ), [INFO] [stdout] query_params: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] body: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] } [INFO] [stdout] Sep 25 14:52:00.146 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.146 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.146 TRCE[] Server::encode status=200, body=Some(Known(4)), req_method=Some(GET) [INFO] [stdout] Sep 25 14:52:00.146 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.146 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.146 TRCE[] buffer.queue self.len=114 buf.len=4 [INFO] [stdout] Sep 25 14:52:00.147 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.147 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.147 DEBG[] flushed 118 bytes [INFO] [stdout] Sep 25 14:52:00.147 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.147 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.147 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.147 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.147 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.147 TRCE[] received 88 bytes [INFO] [stdout] Sep 25 14:52:00.147 DEBG[] incoming body is empty [INFO] [stdout] Sep 25 14:52:00.147 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.147 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.147 TRCE[] maybe_notify; read_from_io blocked [INFO] [stdout] Sep 25 14:52:00.147 TRCE[] Request.parse bytes=88 [INFO] [stdout] Sep 25 14:52:00.147 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.147 TRCE[] Request.parse Complete(88) [INFO] [stdout] Sep 25 14:52:00.147 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.147 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.147 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.147 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.147 DEBG[] incoming body is empty [INFO] [stdout] Sep 25 14:52:00.147 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.147 TRCE[] received 118 bytes [INFO] [stdout] Sep 25 14:52:00.147 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.147 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.147 TRCE[httpmock::server] Routing incoming request: ServerRequestHeader { method: "GET", path: "/relative", query: "", headers: [("accept", "*/*"), ("user-agent", "MikesCrawler"), ("host", "127.0.0.1:36803")] } [INFO] [stdout] Sep 25 14:52:00.147 TRCE[] Response.parse bytes=118 [INFO] [stdout] Sep 25 14:52:00.147 TRCE[] Response.parse Complete(114) [INFO] [stdout] Sep 25 14:52:00.147 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.147 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.147 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.147 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.147 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.147 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.147 DEBG[] incoming body is content-length (4 bytes) [INFO] [stdout] Sep 25 14:52:00.147 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.147 TRCE[] decode; state=Length(4) [INFO] [stdout] Sep 25 14:52:00.147 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.147 DEBG[] incoming body completed [INFO] [stdout] Sep 25 14:52:00.147 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.147 TRCE[] maybe_notify; read_from_io blocked [INFO] [stdout] Sep 25 14:52:00.147 TRCE[httpmock::server::matchers::targets] Cannot parse json value: EOF while parsing a value at line 1 column 0 [INFO] [stdout] Sep 25 14:52:00.147 TRCE[httpmock::server::matchers::targets] Cannot parse json value: EOF while parsing a value at line 1 column 0 [INFO] [stdout] Sep 25 14:52:00.147 DEBG[httpmock::server::web::handlers] Matched mock with id=5 to the following request: HttpMockRequest { [INFO] [stdout] path: "/relative", [INFO] [stdout] method: "GET", [INFO] [stdout] headers: Some( [INFO] [stdout] [ [INFO] [stdout] ( [INFO] [stdout] "accept", [INFO] [stdout] "*/*", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "user-agent", [INFO] [stdout] "MikesCrawler", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "host", [INFO] [stdout] "127.0.0.1:36803", [INFO] [stdout] ), [INFO] [stdout] ], [INFO] [stdout] ), [INFO] [stdout] query_params: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] body: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] } [INFO] [stdout] Sep 25 14:52:00.147 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.148 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.148 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.148 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.148 TRCE[] Server::encode status=200, body=Some(Known(113)), req_method=Some(GET) [INFO] [stdout] Sep 25 14:52:00.148 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.148 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.148 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.148 TRCE[] received 97 bytes [INFO] [stdout] Sep 25 14:52:00.148 TRCE[] buffer.queue self.len=117 buf.len=113 [INFO] [stdout] Sep 25 14:52:00.148 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.148 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.148 TRCE[] Request.parse bytes=97 [INFO] [stdout] Sep 25 14:52:00.148 TRCE[] Request.parse Complete(97) [INFO] [stdout] Sep 25 14:52:00.148 DEBG[] flushed 230 bytes [INFO] [stdout] Sep 25 14:52:00.148 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.148 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.148 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.148 DEBG[] parsed 2 headers [INFO] [stdout] Sep 25 14:52:00.148 DEBG[] incoming body is empty [INFO] [stdout] Sep 25 14:52:00.148 TRCE[] flushed({role=server}): State { reading: KeepAlive, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.148 INFO[mikes_crawler::better_logging] Received request: /crawl/http%3A%2F%2F127.0.0.1%3A41983%2Fstart, REQ: 5NuD [INFO] [stdout] Sep 25 14:52:00.148 INFO[rocket::server] GET /crawl/http%3A%2F%2F127.0.0.1%3A41983%2Fstart: [INFO] [stdout] Sep 25 14:52:00.148 INFO[rocket::server] Matched: (crawl) GET /crawl/ [INFO] [stdout] Sep 25 14:52:00.149 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.149 TRCE[] received 230 bytes [INFO] [stdout] Sep 25 14:52:00.149 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.149 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.149 TRCE[] put; add idle connection for ("http", 127.0.0.1:36803) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.150 DEBG[] pooling idle connection for ("http", 127.0.0.1:36803) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.150 DEBG[reqwest::async_impl::client] response '200 OK' for http://127.0.0.1:36803/third, REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.150 INFO[mikes_crawler::crawler] Got body to process from http://127.0.0.1:36803/third containing 116 chars, REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.150 TRCE[] put; add idle connection for ("http", 127.0.0.1:36803) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.150 DEBG[] pooling idle connection for ("http", 127.0.0.1:36803) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.150 DEBG[reqwest::async_impl::client] redirect policy disallowed redirection to 'http://127.0.0.1:36803/start', REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.150 DEBG[reqwest::async_impl::client] response '301 Moved Permanently' for http://127.0.0.1:36803/redirect, REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.150 INFO[mikes_crawler::crawler] Got redirect from http://127.0.0.1:36803/redirect to http://127.0.0.1:36803/start, REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.151 TRCE[] put; add idle connection for ("http", 127.0.0.1:36803) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.151 DEBG[] pooling idle connection for ("http", 127.0.0.1:36803) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.151 DEBG[reqwest::async_impl::client] response '200 OK' for http://127.0.0.1:36803/pdf, REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.151 INFO[mikes_crawler::crawler] Got non html response containing: x-application/something, REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.151 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.151 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.151 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.149 TRCE[] Response.parse bytes=230 [INFO] [stdout] Sep 25 14:52:00.152 TRCE[] Response.parse Complete(117) [INFO] [stdout] Sep 25 14:52:00.153 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.153 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.153 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.153 DEBG[] incoming body is content-length (113 bytes) [INFO] [stdout] Sep 25 14:52:00.153 TRCE[] decode; state=Length(113) [INFO] [stdout] Sep 25 14:52:00.153 DEBG[] incoming body completed [INFO] [stdout] Sep 25 14:52:00.153 TRCE[] maybe_notify; read_from_io blocked [INFO] [stdout] Sep 25 14:52:00.153 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.153 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.153 TRCE[] put; add idle connection for ("http", 127.0.0.1:36803) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.153 DEBG[] pooling idle connection for ("http", 127.0.0.1:36803) , REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.153 DEBG[reqwest::async_impl::client] response '200 OK' for http://127.0.0.1:36803/relative, REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.153 INFO[mikes_crawler::crawler] Got body to process from http://127.0.0.1:36803/relative containing 113 chars, REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.153 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.156 TRCE[] checkout waiting for idle connection: ("http", 127.0.0.1:41983) , REQ: 5NuD [INFO] [stdout] Sep 25 14:52:00.156 DEBG[reqwest::connect] starting new connection: http://127.0.0.1:41983/, REQ: 5NuD [INFO] [stdout] Sep 25 14:52:00.156 TRCE[] Http::connect; scheme=Some("http"), host=Some("127.0.0.1"), port=Some(Port(41983)) , REQ: 5NuD [INFO] [stdout] Sep 25 14:52:00.156 DEBG[] connecting to 127.0.0.1:41983 , REQ: 5NuD [INFO] [stdout] Sep 25 14:52:00.158 DEBG[] connected to 127.0.0.1:41983 , REQ: 5NuD [INFO] [stdout] Sep 25 14:52:00.158 TRCE[] client handshake Http1 , REQ: 5NuD [INFO] [stdout] Sep 25 14:52:00.158 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.158 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.158 TRCE[] handshake complete, spawning background dispatcher task , REQ: 5NuD [INFO] [stdout] Sep 25 14:52:00.158 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.159 TRCE[] checkout dropped for ("http", 127.0.0.1:41983) , REQ: 5NuD [INFO] [stdout] Sep 25 14:52:00.159 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.159 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.159 TRCE[] Client::encode method=GET, body=None [INFO] [stdout] Sep 25 14:52:00.159 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.159 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.159 DEBG[] flushed 90 bytes [INFO] [stdout] Sep 25 14:52:00.159 TRCE[] flushed({role=client}): State { reading: Init, writing: KeepAlive, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.159 INFO[rocket::server] Outcome: Success [INFO] [stdout] Sep 25 14:52:00.159 INFO[mikes_crawler::better_logging] Completed request /crawl/http%3A%2F%2F127.0.0.1%3A36803%2Fstart with status 200 OK in 0.087s, REQ: GHXW [INFO] [stdout] Sep 25 14:52:00.159 INFO[rocket::server] Response succeeded. [INFO] [stdout] Sep 25 14:52:00.159 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.159 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.159 TRCE[] Server::encode status=200, body=Some(Unknown), req_method=Some(GET) [INFO] [stdout] Sep 25 14:52:00.159 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.159 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.159 TRCE[] sized write, len = 817 [INFO] [stdout] Sep 25 14:52:00.159 TRCE[] buffer.queue self.len=243 buf.len=817 [INFO] [stdout] Sep 25 14:52:00.159 TRCE[] no more write body allowed, user body is_end_stream = false [INFO] [stdout] Sep 25 14:52:00.160 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.160 TRCE[] received 90 bytes [INFO] [stdout] Sep 25 14:52:00.160 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.160 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.160 TRCE[] Request.parse bytes=90 [INFO] [stdout] Sep 25 14:52:00.160 TRCE[] Request.parse Complete(90) [INFO] [stdout] Sep 25 14:52:00.160 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.160 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.160 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.160 DEBG[] incoming body is empty [INFO] [stdout] Sep 25 14:52:00.160 TRCE[httpmock::server] Routing incoming request: ServerRequestHeader { method: "GET", path: "/robots.txt", query: "", headers: [("accept", "*/*"), ("user-agent", "MikesCrawler"), ("host", "127.0.0.1:41983")] } [INFO] [stdout] Sep 25 14:52:00.160 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.160 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.160 TRCE[httpmock::server::matchers::targets] Cannot parse json value: EOF while parsing a value at line 1 column 0 [INFO] [stdout] Sep 25 14:52:00.160 TRCE[httpmock::server::matchers::targets] Cannot parse json value: EOF while parsing a value at line 1 column 0 [INFO] [stdout] Sep 25 14:52:00.160 DEBG[httpmock::server::web::handlers] Matched mock with id=1 to the following request: HttpMockRequest { [INFO] [stdout] path: "/robots.txt", [INFO] [stdout] method: "GET", [INFO] [stdout] headers: Some( [INFO] [stdout] [ [INFO] [stdout] ( [INFO] [stdout] "accept", [INFO] [stdout] "*/*", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "user-agent", [INFO] [stdout] "MikesCrawler", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "host", [INFO] [stdout] "127.0.0.1:41983", [INFO] [stdout] ), [INFO] [stdout] ], [INFO] [stdout] ), [INFO] [stdout] query_params: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] body: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] } [INFO] [stdout] Sep 25 14:52:00.160 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] Server::encode status=200, body=Some(Known(36)), req_method=Some(GET) [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] buffer.queue self.len=102 buf.len=36 [INFO] [stdout] Sep 25 14:52:00.161 DEBG[] flushed 138 bytes [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] received 138 bytes [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] Response.parse bytes=138 [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] received 1060 bytes [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] Response.parse Complete(102) [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] Response.parse bytes=1060 [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] Response.parse Complete(243) [INFO] [stdout] Sep 25 14:52:00.161 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.161 DEBG[] incoming body is content-length (36 bytes) [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] decode; state=Length(36) [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.161 DEBG[] incoming body completed [INFO] [stdout] Sep 25 14:52:00.161 DEBG[] parsed 8 headers [INFO] [stdout] Sep 25 14:52:00.161 DEBG[] incoming body is content-length (817 bytes) [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] maybe_notify; read_from_io blocked [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] decode; state=Length(817) [INFO] [stdout] Sep 25 14:52:00.161 DEBG[] incoming body completed [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] maybe_notify; read_from_io blocked [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] put; add idle connection for ("http", 127.0.0.1:41983) , REQ: 5NuD [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.161 DEBG[] pooling idle connection for ("http", 127.0.0.1:41983) , REQ: 5NuD [INFO] [stdout] Sep 25 14:52:00.161 DEBG[reqwest::async_impl::client] response '200 OK' for http://127.0.0.1:41983/robots.txt, REQ: 5NuD [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] put; add idle connection for ("http", 127.0.0.1:8000) [INFO] [stdout] Sep 25 14:52:00.161 DEBG[] pooling idle connection for ("http", 127.0.0.1:8000) [INFO] [stdout] Sep 25 14:52:00.161 DEBG[reqwest::async_impl::client] response '200 OK' for http://127.0.0.1:8000/crawl/http%3A%2F%2F127.0.0.1%3A36803%2Fstart [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] idle interval checking for expired [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] take? ("http", 127.0.0.1:41983): expiration = Some(90s) , REQ: 5NuD [INFO] [stdout] Sep 25 14:52:00.161 DEBG[] reuse idle connection for ("http", 127.0.0.1:41983) , REQ: 5NuD [INFO] [stdout] Sep 25 14:52:00.161 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.162 DEBG[] flushed 1060 bytes [INFO] [stdout] Sep 25 14:52:00.163 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.163 TRCE[reqwest::blocking::wait] wait at most 30s [INFO] [stdout] Sep 25 14:52:00.163 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.163 TRCE[] Client::encode method=GET, body=None [INFO] [stdout] Sep 25 14:52:00.163 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.163 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.163 DEBG[] flushed 85 bytes [INFO] [stdout] Sep 25 14:52:00.163 TRCE[] flushed({role=client}): State { reading: Init, writing: KeepAlive, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.163 TRCE[reqwest::blocking::client] closing runtime thread (ThreadId(23)) [INFO] [stdout] Sep 25 14:52:00.163 TRCE[reqwest::blocking::client] signaled close for runtime thread (ThreadId(23)) [INFO] [stdout] Sep 25 14:52:00.163 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.163 TRCE[] received 85 bytes [INFO] [stdout] Sep 25 14:52:00.163 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.163 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.163 TRCE[] Request.parse bytes=85 [INFO] [stdout] Sep 25 14:52:00.163 TRCE[] Request.parse Complete(85) [INFO] [stdout] Sep 25 14:52:00.163 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.163 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.163 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.163 DEBG[] incoming body is empty [INFO] [stdout] Sep 25 14:52:00.163 TRCE[httpmock::server] Routing incoming request: ServerRequestHeader { method: "GET", path: "/start", query: "", headers: [("accept", "*/*"), ("user-agent", "MikesCrawler"), ("host", "127.0.0.1:41983")] } [INFO] [stdout] Sep 25 14:52:00.163 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.163 TRCE[httpmock::server::matchers::targets] Cannot parse json value: EOF while parsing a value at line 1 column 0 [INFO] [stdout] Sep 25 14:52:00.164 TRCE[httpmock::server::matchers::targets] Cannot parse json value: EOF while parsing a value at line 1 column 0 [INFO] [stdout] Sep 25 14:52:00.164 DEBG[httpmock::server::web::handlers] Matched mock with id=0 to the following request: HttpMockRequest { [INFO] [stdout] path: "/start", [INFO] [stdout] method: "GET", [INFO] [stdout] headers: Some( [INFO] [stdout] [ [INFO] [stdout] ( [INFO] [stdout] "accept", [INFO] [stdout] "*/*", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "user-agent", [INFO] [stdout] "MikesCrawler", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "host", [INFO] [stdout] "127.0.0.1:41983", [INFO] [stdout] ), [INFO] [stdout] ], [INFO] [stdout] ), [INFO] [stdout] query_params: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] body: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] } [INFO] [stdout] Sep 25 14:52:00.164 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.164 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.164 TRCE[] Server::encode status=200, body=Some(Known(205)), req_method=Some(GET) [INFO] [stdout] Sep 25 14:52:00.164 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.164 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.164 TRCE[] buffer.queue self.len=102 buf.len=205 [INFO] [stdout] Sep 25 14:52:00.164 DEBG[] flushed 307 bytes [INFO] [stdout] Sep 25 14:52:00.164 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.164 TRCE[reqwest::blocking::client] (ThreadId(23)) Receiver is shutdown [INFO] [stdout] Sep 25 14:52:00.165 TRCE[reqwest::blocking::client] (ThreadId(23)) end runtime::block_on [INFO] [stdout] Sep 25 14:52:00.165 TRCE[reqwest::blocking::client] (ThreadId(23)) finished [INFO] [stdout] Sep 25 14:52:00.165 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.165 TRCE[] received 0 bytes [INFO] [stdout] Sep 25 14:52:00.165 TRCE[] parse eof [INFO] [stdout] Sep 25 14:52:00.165 TRCE[] State::close_read() [INFO] [stdout] Sep 25 14:52:00.165 DEBG[] read eof [INFO] [stdout] Sep 25 14:52:00.165 TRCE[] State::close_write() [INFO] [stdout] Sep 25 14:52:00.165 TRCE[] State::close_read() [INFO] [stdout] Sep 25 14:52:00.165 TRCE[] State::close_write() [INFO] [stdout] Sep 25 14:52:00.165 TRCE[] flushed({role=server}): State { reading: Closed, writing: Closed, keep_alive: Disabled } [INFO] [stdout] Sep 25 14:52:00.165 TRCE[] shut down IO complete [INFO] [stdout] Sep 25 14:52:00.166 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.166 TRCE[] received 307 bytes [INFO] [stdout] Sep 25 14:52:00.166 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.166 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.166 TRCE[] Response.parse bytes=307 [INFO] [stdout] Sep 25 14:52:00.166 TRCE[] Response.parse Complete(102) [INFO] [stdout] Sep 25 14:52:00.166 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.166 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.166 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.166 DEBG[] incoming body is content-length (205 bytes) [INFO] [stdout] Sep 25 14:52:00.166 TRCE[] decode; state=Length(205) [INFO] [stdout] Sep 25 14:52:00.166 DEBG[] incoming body completed [INFO] [stdout] Sep 25 14:52:00.166 TRCE[] maybe_notify; read_from_io blocked [INFO] [stdout] Sep 25 14:52:00.166 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.166 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.166 TRCE[] put; add idle connection for ("http", 127.0.0.1:41983) , REQ: 5NuD [INFO] [stdout] Sep 25 14:52:00.166 DEBG[] pooling idle connection for ("http", 127.0.0.1:41983) , REQ: 5NuD [INFO] [stdout] Sep 25 14:52:00.166 DEBG[reqwest::async_impl::client] response '200 OK' for http://127.0.0.1:41983/start, REQ: 5NuD [INFO] [stdout] Sep 25 14:52:00.166 INFO[mikes_crawler::crawler] Got body to process from http://127.0.0.1:41983/start containing 205 chars, REQ: 5NuD [INFO] [stdout] Sep 25 14:52:00.166 TRCE[reqwest::blocking::client] closed runtime thread (ThreadId(23)) [INFO] [stdout] test collected_things ... ok [INFO] [stdout] Sep 25 14:52:00.167 INFO[rocket::server] Outcome: Success [INFO] [stdout] Sep 25 14:52:00.167 INFO[mikes_crawler::better_logging] Completed request /crawl/http%3A%2F%2F127.0.0.1%3A41983%2Fstart with status 200 OK in 0.019s, REQ: 5NuD [INFO] [stdout] Sep 25 14:52:00.167 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.167 INFO[rocket::server] Response succeeded. [INFO] [stdout] Sep 25 14:52:00.167 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.167 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.167 TRCE[] Server::encode status=200, body=Some(Unknown), req_method=Some(GET) [INFO] [stdout] Sep 25 14:52:00.167 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.167 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.167 TRCE[] sized write, len = 221 [INFO] [stdout] Sep 25 14:52:00.167 TRCE[] buffer.queue self.len=243 buf.len=221 [INFO] [stdout] Sep 25 14:52:00.167 TRCE[] no more write body allowed, user body is_end_stream = false [INFO] [stdout] Sep 25 14:52:00.167 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.167 TRCE[] received 464 bytes [INFO] [stdout] Sep 25 14:52:00.168 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.168 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.168 TRCE[] Response.parse bytes=464 [INFO] [stdout] Sep 25 14:52:00.168 TRCE[] Response.parse Complete(243) [INFO] [stdout] Sep 25 14:52:00.168 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.168 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.168 DEBG[] parsed 8 headers [INFO] [stdout] Sep 25 14:52:00.168 DEBG[] incoming body is content-length (221 bytes) [INFO] [stdout] Sep 25 14:52:00.168 TRCE[] decode; state=Length(221) [INFO] [stdout] Sep 25 14:52:00.168 DEBG[] incoming body completed [INFO] [stdout] Sep 25 14:52:00.168 TRCE[] maybe_notify; read_from_io blocked [INFO] [stdout] Sep 25 14:52:00.168 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.168 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.168 TRCE[] put; add idle connection for ("http", 127.0.0.1:8000) [INFO] [stdout] Sep 25 14:52:00.168 DEBG[] pooling idle connection for ("http", 127.0.0.1:8000) [INFO] [stdout] Sep 25 14:52:00.168 DEBG[reqwest::async_impl::client] response '200 OK' for http://127.0.0.1:8000/crawl/http%3A%2F%2F127.0.0.1%3A41983%2Fstart [INFO] [stdout] Sep 25 14:52:00.168 DEBG[] flushed 464 bytes [INFO] [stdout] Sep 25 14:52:00.168 TRCE[reqwest::blocking::wait] wait at most 30s [INFO] [stdout] Sep 25 14:52:00.168 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.168 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.168 TRCE[reqwest::blocking::client] closing runtime thread (ThreadId(29)) [INFO] [stdout] Sep 25 14:52:00.168 TRCE[reqwest::blocking::client] signaled close for runtime thread (ThreadId(29)) [INFO] [stdout] Sep 25 14:52:00.168 TRCE[reqwest::blocking::client] (ThreadId(29)) Receiver is shutdown [INFO] [stdout] Sep 25 14:52:00.169 TRCE[reqwest::blocking::client] (ThreadId(29)) end runtime::block_on [INFO] [stdout] Sep 25 14:52:00.169 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.169 TRCE[] received 0 bytes [INFO] [stdout] Sep 25 14:52:00.169 TRCE[] parse eof [INFO] [stdout] Sep 25 14:52:00.169 TRCE[] State::close_read() [INFO] [stdout] Sep 25 14:52:00.169 DEBG[] read eof [INFO] [stdout] Sep 25 14:52:00.169 TRCE[] State::close_write() [INFO] [stdout] Sep 25 14:52:00.169 TRCE[] State::close_read() [INFO] [stdout] Sep 25 14:52:00.169 TRCE[] State::close_write() [INFO] [stdout] Sep 25 14:52:00.169 TRCE[] flushed({role=server}): State { reading: Closed, writing: Closed, keep_alive: Disabled } [INFO] [stdout] Sep 25 14:52:00.169 TRCE[] shut down IO complete [INFO] [stdout] Sep 25 14:52:00.170 TRCE[reqwest::blocking::client] (ThreadId(29)) finished [INFO] [stdout] Sep 25 14:52:00.172 TRCE[reqwest::blocking::client] closed runtime thread (ThreadId(29)) [INFO] [stdout] test ignores_things_excluded_by_robots ... ok [INFO] [stdout] Sep 25 14:52:00.231 TRCE[] checkout waiting for idle connection: ("http", 127.0.0.1:8000) [INFO] [stdout] Sep 25 14:52:00.231 TRCE[reqwest::blocking::wait] wait at most 30s [INFO] [stdout] Sep 25 14:52:00.231 TRCE[reqwest::blocking::wait] (ThreadId(6)) park timeout 29.99999576s [INFO] [stdout] Sep 25 14:52:00.234 DEBG[reqwest::connect] starting new connection: http://127.0.0.1:8000/ [INFO] [stdout] Sep 25 14:52:00.234 TRCE[] Http::connect; scheme=Some("http"), host=Some("127.0.0.1"), port=Some(Port(8000)) [INFO] [stdout] Sep 25 14:52:00.234 DEBG[] connecting to 127.0.0.1:8000 [INFO] [stdout] Sep 25 14:52:00.234 DEBG[] connected to 127.0.0.1:8000 [INFO] [stdout] Sep 25 14:52:00.234 TRCE[] client handshake Http1 [INFO] [stdout] Sep 25 14:52:00.234 TRCE[] handshake complete, spawning background dispatcher task [INFO] [stdout] Sep 25 14:52:00.234 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.234 TRCE[] checkout dropped for ("http", 127.0.0.1:8000) [INFO] [stdout] Sep 25 14:52:00.234 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.234 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.234 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.234 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.234 TRCE[] Client::encode method=GET, body=None [INFO] [stdout] Sep 25 14:52:00.234 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.234 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.234 DEBG[] flushed 97 bytes [INFO] [stdout] Sep 25 14:52:00.234 TRCE[] flushed({role=client}): State { reading: Init, writing: KeepAlive, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.234 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.234 TRCE[] received 97 bytes [INFO] [stdout] Sep 25 14:52:00.234 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.234 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.234 TRCE[] Request.parse bytes=97 [INFO] [stdout] Sep 25 14:52:00.234 TRCE[] Request.parse Complete(97) [INFO] [stdout] Sep 25 14:52:00.235 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.235 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.235 DEBG[] parsed 2 headers [INFO] [stdout] Sep 25 14:52:00.235 DEBG[] incoming body is empty [INFO] [stdout] Sep 25 14:52:00.235 TRCE[] flushed({role=server}): State { reading: KeepAlive, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.235 INFO[mikes_crawler::better_logging] Received request: /crawl/http%3A%2F%2F127.0.0.1%3A44445%2Fstart, REQ: xkul [INFO] [stdout] Sep 25 14:52:00.235 INFO[rocket::server] GET /crawl/http%3A%2F%2F127.0.0.1%3A44445%2Fstart: [INFO] [stdout] Sep 25 14:52:00.235 INFO[rocket::server] Matched: (crawl) GET /crawl/ [INFO] [stdout] Sep 25 14:52:00.235 TRCE[] checkout waiting for idle connection: ("http", 127.0.0.1:44445) , REQ: xkul [INFO] [stdout] Sep 25 14:52:00.235 DEBG[reqwest::connect] starting new connection: http://127.0.0.1:44445/, REQ: xkul [INFO] [stdout] Sep 25 14:52:00.235 TRCE[] Http::connect; scheme=Some("http"), host=Some("127.0.0.1"), port=Some(Port(44445)) , REQ: xkul [INFO] [stdout] Sep 25 14:52:00.235 DEBG[] connecting to 127.0.0.1:44445 , REQ: xkul [INFO] [stdout] Sep 25 14:52:00.235 DEBG[] connected to 127.0.0.1:44445 , REQ: xkul [INFO] [stdout] Sep 25 14:52:00.236 TRCE[] client handshake Http1 , REQ: xkul [INFO] [stdout] Sep 25 14:52:00.236 TRCE[] handshake complete, spawning background dispatcher task , REQ: xkul [INFO] [stdout] Sep 25 14:52:00.236 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.236 TRCE[] checkout dropped for ("http", 127.0.0.1:44445) , REQ: xkul [INFO] [stdout] Sep 25 14:52:00.236 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.236 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.236 TRCE[] Client::encode method=GET, body=None [INFO] [stdout] Sep 25 14:52:00.236 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.236 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.236 DEBG[] flushed 90 bytes [INFO] [stdout] Sep 25 14:52:00.236 TRCE[] flushed({role=client}): State { reading: Init, writing: KeepAlive, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.236 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.236 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.236 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.236 TRCE[] received 90 bytes [INFO] [stdout] Sep 25 14:52:00.236 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.236 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.236 TRCE[] Request.parse bytes=90 [INFO] [stdout] Sep 25 14:52:00.236 TRCE[] Request.parse Complete(90) [INFO] [stdout] Sep 25 14:52:00.236 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.236 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.236 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.236 DEBG[] incoming body is empty [INFO] [stdout] Sep 25 14:52:00.236 TRCE[httpmock::server] Routing incoming request: ServerRequestHeader { method: "GET", path: "/robots.txt", query: "", headers: [("accept", "*/*"), ("user-agent", "MikesCrawler"), ("host", "127.0.0.1:44445")] } [INFO] [stdout] Sep 25 14:52:00.236 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.236 DEBG[httpmock::server::web::handlers] Could not match any mock to the following request: HttpMockRequest { [INFO] [stdout] path: "/robots.txt", [INFO] [stdout] method: "GET", [INFO] [stdout] headers: Some( [INFO] [stdout] [ [INFO] [stdout] ( [INFO] [stdout] "accept", [INFO] [stdout] "*/*", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "user-agent", [INFO] [stdout] "MikesCrawler", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "host", [INFO] [stdout] "127.0.0.1:44445", [INFO] [stdout] ), [INFO] [stdout] ], [INFO] [stdout] ), [INFO] [stdout] query_params: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] body: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] } [INFO] [stdout] Sep 25 14:52:00.236 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.236 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.236 TRCE[] Server::encode status=404, body=Some(Known(53)), req_method=Some(GET) [INFO] [stdout] Sep 25 14:52:00.236 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.236 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.236 TRCE[] buffer.queue self.len=115 buf.len=53 [INFO] [stdout] Sep 25 14:52:00.236 DEBG[] flushed 168 bytes [INFO] [stdout] Sep 25 14:52:00.236 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.237 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.237 TRCE[] received 168 bytes [INFO] [stdout] Sep 25 14:52:00.237 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.237 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.237 TRCE[] Response.parse bytes=168 [INFO] [stdout] Sep 25 14:52:00.237 TRCE[] Response.parse Complete(115) [INFO] [stdout] Sep 25 14:52:00.237 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.237 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.237 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.237 DEBG[] incoming body is content-length (53 bytes) [INFO] [stdout] Sep 25 14:52:00.237 TRCE[] decode; state=Length(53) [INFO] [stdout] Sep 25 14:52:00.237 DEBG[] incoming body completed [INFO] [stdout] Sep 25 14:52:00.237 TRCE[] maybe_notify; read_from_io blocked [INFO] [stdout] Sep 25 14:52:00.237 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.237 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.237 TRCE[] put; add idle connection for ("http", 127.0.0.1:44445) , REQ: xkul [INFO] [stdout] Sep 25 14:52:00.237 DEBG[] pooling idle connection for ("http", 127.0.0.1:44445) , REQ: xkul [INFO] [stdout] Sep 25 14:52:00.237 DEBG[reqwest::async_impl::client] response '404 Not Found' for http://127.0.0.1:44445/robots.txt, REQ: xkul [INFO] [stdout] Sep 25 14:52:00.237 TRCE[] take? ("http", 127.0.0.1:44445): expiration = Some(90s) , REQ: xkul [INFO] [stdout] Sep 25 14:52:00.237 DEBG[] reuse idle connection for ("http", 127.0.0.1:44445) , REQ: xkul [INFO] [stdout] Sep 25 14:52:00.237 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.237 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.237 TRCE[] Client::encode method=GET, body=None [INFO] [stdout] Sep 25 14:52:00.237 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.237 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.237 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.237 TRCE[] received 85 bytes [INFO] [stdout] Sep 25 14:52:00.237 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.237 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.237 TRCE[] Request.parse bytes=85 [INFO] [stdout] Sep 25 14:52:00.237 TRCE[] Request.parse Complete(85) [INFO] [stdout] Sep 25 14:52:00.237 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.237 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.237 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.237 DEBG[] incoming body is empty [INFO] [stdout] Sep 25 14:52:00.238 TRCE[httpmock::server] Routing incoming request: ServerRequestHeader { method: "GET", path: "/start", query: "", headers: [("accept", "*/*"), ("user-agent", "MikesCrawler"), ("host", "127.0.0.1:44445")] } [INFO] [stdout] Sep 25 14:52:00.238 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.238 TRCE[httpmock::server::matchers::targets] Cannot parse json value: EOF while parsing a value at line 1 column 0 [INFO] [stdout] Sep 25 14:52:00.238 TRCE[httpmock::server::matchers::targets] Cannot parse json value: EOF while parsing a value at line 1 column 0 [INFO] [stdout] Sep 25 14:52:00.238 DEBG[httpmock::server::web::handlers] Matched mock with id=0 to the following request: HttpMockRequest { [INFO] [stdout] path: "/start", [INFO] [stdout] method: "GET", [INFO] [stdout] headers: Some( [INFO] [stdout] [ [INFO] [stdout] ( [INFO] [stdout] "accept", [INFO] [stdout] "*/*", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "user-agent", [INFO] [stdout] "MikesCrawler", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "host", [INFO] [stdout] "127.0.0.1:44445", [INFO] [stdout] ), [INFO] [stdout] ], [INFO] [stdout] ), [INFO] [stdout] query_params: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] body: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] } [INFO] [stdout] Sep 25 14:52:00.238 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.238 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.238 TRCE[] Server::encode status=200, body=Some(Known(137)), req_method=Some(GET) [INFO] [stdout] Sep 25 14:52:00.238 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.238 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.238 TRCE[] buffer.queue self.len=102 buf.len=137 [INFO] [stdout] Sep 25 14:52:00.238 DEBG[] flushed 85 bytes [INFO] [stdout] Sep 25 14:52:00.238 TRCE[] flushed({role=client}): State { reading: Init, writing: KeepAlive, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.238 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.238 TRCE[] received 239 bytes [INFO] [stdout] Sep 25 14:52:00.238 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.238 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.238 TRCE[] Response.parse bytes=239 [INFO] [stdout] Sep 25 14:52:00.238 TRCE[] Response.parse Complete(102) [INFO] [stdout] Sep 25 14:52:00.238 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.238 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.238 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.238 DEBG[] incoming body is content-length (137 bytes) [INFO] [stdout] Sep 25 14:52:00.238 TRCE[] decode; state=Length(137) [INFO] [stdout] Sep 25 14:52:00.238 DEBG[] incoming body completed [INFO] [stdout] Sep 25 14:52:00.238 TRCE[] maybe_notify; read_from_io blocked [INFO] [stdout] Sep 25 14:52:00.238 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.238 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.238 TRCE[] put; add idle connection for ("http", 127.0.0.1:44445) , REQ: xkul [INFO] [stdout] Sep 25 14:52:00.238 DEBG[] pooling idle connection for ("http", 127.0.0.1:44445) , REQ: xkul [INFO] [stdout] Sep 25 14:52:00.238 DEBG[reqwest::async_impl::client] response '200 OK' for http://127.0.0.1:44445/start, REQ: xkul [INFO] [stdout] Sep 25 14:52:00.238 INFO[mikes_crawler::crawler] Got body to process from http://127.0.0.1:44445/start containing 137 chars, REQ: xkul [INFO] [stdout] Sep 25 14:52:00.238 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.239 DEBG[] flushed 239 bytes [INFO] [stdout] Sep 25 14:52:00.239 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.240 INFO[rocket::server] Outcome: Success [INFO] [stdout] Sep 25 14:52:00.241 INFO[mikes_crawler::better_logging] Completed request /crawl/http%3A%2F%2F127.0.0.1%3A44445%2Fstart with status 200 OK in 0.005s, REQ: xkul [INFO] [stdout] Sep 25 14:52:00.241 INFO[rocket::server] Response succeeded. [INFO] [stdout] Sep 25 14:52:00.241 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.241 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.241 TRCE[] Server::encode status=200, body=Some(Unknown), req_method=Some(GET) [INFO] [stdout] Sep 25 14:52:00.241 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.241 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.241 TRCE[] sized write, len = 128 [INFO] [stdout] Sep 25 14:52:00.241 TRCE[] buffer.queue self.len=243 buf.len=128 [INFO] [stdout] Sep 25 14:52:00.241 TRCE[] no more write body allowed, user body is_end_stream = false [INFO] [stdout] Sep 25 14:52:00.245 DEBG[] flushed 371 bytes [INFO] [stdout] Sep 25 14:52:00.245 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.244 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.245 TRCE[] received 371 bytes [INFO] [stdout] Sep 25 14:52:00.245 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.245 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.245 TRCE[] Response.parse bytes=371 [INFO] [stdout] Sep 25 14:52:00.245 TRCE[] Response.parse Complete(243) [INFO] [stdout] Sep 25 14:52:00.245 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.245 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.245 DEBG[] parsed 8 headers [INFO] [stdout] Sep 25 14:52:00.245 DEBG[] incoming body is content-length (128 bytes) [INFO] [stdout] Sep 25 14:52:00.245 TRCE[] decode; state=Length(128) [INFO] [stdout] Sep 25 14:52:00.245 DEBG[] incoming body completed [INFO] [stdout] Sep 25 14:52:00.246 TRCE[] maybe_notify; read_from_io blocked [INFO] [stdout] Sep 25 14:52:00.246 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.246 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.246 TRCE[] put; add idle connection for ("http", 127.0.0.1:8000) [INFO] [stdout] Sep 25 14:52:00.246 DEBG[] pooling idle connection for ("http", 127.0.0.1:8000) [INFO] [stdout] Sep 25 14:52:00.246 DEBG[reqwest::async_impl::client] response '200 OK' for http://127.0.0.1:8000/crawl/http%3A%2F%2F127.0.0.1%3A44445%2Fstart [INFO] [stdout] Sep 25 14:52:00.246 TRCE[reqwest::blocking::wait] wait at most 30s [INFO] [stdout] Sep 25 14:52:00.246 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.246 TRCE[reqwest::blocking::client] closing runtime thread (ThreadId(24)) [INFO] [stdout] Sep 25 14:52:00.247 TRCE[reqwest::blocking::client] signaled close for runtime thread (ThreadId(24)) [INFO] [stdout] Sep 25 14:52:00.247 TRCE[reqwest::blocking::client] (ThreadId(24)) Receiver is shutdown [INFO] [stdout] Sep 25 14:52:00.248 TRCE[reqwest::blocking::client] (ThreadId(24)) end runtime::block_on [INFO] [stdout] Sep 25 14:52:00.248 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.248 TRCE[] received 0 bytes [INFO] [stdout] Sep 25 14:52:00.248 TRCE[] parse eof [INFO] [stdout] Sep 25 14:52:00.248 TRCE[] State::close_read() [INFO] [stdout] Sep 25 14:52:00.248 DEBG[] read eof [INFO] [stdout] Sep 25 14:52:00.248 TRCE[] State::close_write() [INFO] [stdout] Sep 25 14:52:00.248 TRCE[] State::close_read() [INFO] [stdout] Sep 25 14:52:00.249 TRCE[] State::close_write() [INFO] [stdout] Sep 25 14:52:00.249 TRCE[] flushed({role=server}): State { reading: Closed, writing: Closed, keep_alive: Disabled } [INFO] [stdout] Sep 25 14:52:00.249 TRCE[] shut down IO complete [INFO] [stdout] Sep 25 14:52:00.249 TRCE[reqwest::blocking::client] (ThreadId(24)) finished [INFO] [stdout] Sep 25 14:52:00.249 TRCE[reqwest::blocking::client] closed runtime thread (ThreadId(24)) [INFO] [stdout] test simple ... ok [INFO] [stdout] Sep 25 14:52:00.283 TRCE[reqwest::blocking::wait] wait at most 30s [INFO] [stdout] Sep 25 14:52:00.283 TRCE[reqwest::blocking::wait] (ThreadId(5)) park timeout 29.99999501s [INFO] [stdout] Sep 25 14:52:00.283 TRCE[] checkout waiting for idle connection: ("http", 127.0.0.1:8000) [INFO] [stdout] Sep 25 14:52:00.283 DEBG[reqwest::connect] starting new connection: http://127.0.0.1:8000/ [INFO] [stdout] Sep 25 14:52:00.283 TRCE[] Http::connect; scheme=Some("http"), host=Some("127.0.0.1"), port=Some(Port(8000)) [INFO] [stdout] Sep 25 14:52:00.284 DEBG[] connecting to 127.0.0.1:8000 [INFO] [stdout] Sep 25 14:52:00.284 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.284 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.284 DEBG[] connected to 127.0.0.1:8000 [INFO] [stdout] Sep 25 14:52:00.284 TRCE[] client handshake Http1 [INFO] [stdout] Sep 25 14:52:00.284 TRCE[] handshake complete, spawning background dispatcher task [INFO] [stdout] Sep 25 14:52:00.285 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.285 TRCE[] checkout dropped for ("http", 127.0.0.1:8000) [INFO] [stdout] Sep 25 14:52:00.285 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.285 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.285 TRCE[] Client::encode method=GET, body=None [INFO] [stdout] Sep 25 14:52:00.285 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.285 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.289 DEBG[] flushed 97 bytes [INFO] [stdout] Sep 25 14:52:00.289 TRCE[] flushed({role=client}): State { reading: Init, writing: KeepAlive, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.289 TRCE[reqwest::blocking::wait] wait at most 30s [INFO] [stdout] Sep 25 14:52:00.290 TRCE[reqwest::blocking::wait] (ThreadId(3)) park timeout 29.9999944s [INFO] [stdout] Sep 25 14:52:00.291 TRCE[] checkout waiting for idle connection: ("http", 127.0.0.1:8000) [INFO] [stdout] Sep 25 14:52:00.292 DEBG[reqwest::connect] starting new connection: http://127.0.0.1:8000/ [INFO] [stdout] Sep 25 14:52:00.292 TRCE[] Http::connect; scheme=Some("http"), host=Some("127.0.0.1"), port=Some(Port(8000)) [INFO] [stdout] Sep 25 14:52:00.292 DEBG[] connecting to 127.0.0.1:8000 [INFO] [stdout] Sep 25 14:52:00.289 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.292 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.292 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.292 TRCE[] received 97 bytes [INFO] [stdout] Sep 25 14:52:00.293 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.293 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.293 TRCE[] Request.parse bytes=97 [INFO] [stdout] Sep 25 14:52:00.293 TRCE[] Request.parse Complete(97) [INFO] [stdout] Sep 25 14:52:00.293 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.293 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.293 DEBG[] parsed 2 headers [INFO] [stdout] Sep 25 14:52:00.293 DEBG[] incoming body is empty [INFO] [stdout] Sep 25 14:52:00.293 TRCE[] flushed({role=server}): State { reading: KeepAlive, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.293 INFO[mikes_crawler::better_logging] Received request: /crawl/http%3A%2F%2F127.0.0.1%3A45879%2Fstart, REQ: 8dLK [INFO] [stdout] Sep 25 14:52:00.293 INFO[rocket::server] GET /crawl/http%3A%2F%2F127.0.0.1%3A45879%2Fstart: [INFO] [stdout] Sep 25 14:52:00.293 INFO[rocket::server] Matched: (crawl) GET /crawl/ [INFO] [stdout] Sep 25 14:52:00.294 TRCE[] checkout waiting for idle connection: ("http", 127.0.0.1:45879) , REQ: 8dLK [INFO] [stdout] Sep 25 14:52:00.294 DEBG[reqwest::connect] starting new connection: http://127.0.0.1:45879/, REQ: 8dLK [INFO] [stdout] Sep 25 14:52:00.294 TRCE[] Http::connect; scheme=Some("http"), host=Some("127.0.0.1"), port=Some(Port(45879)) , REQ: 8dLK [INFO] [stdout] Sep 25 14:52:00.294 DEBG[] connecting to 127.0.0.1:45879 , REQ: 8dLK [INFO] [stdout] Sep 25 14:52:00.293 DEBG[] connected to 127.0.0.1:8000 [INFO] [stdout] Sep 25 14:52:00.294 TRCE[] client handshake Http1 [INFO] [stdout] Sep 25 14:52:00.294 TRCE[] handshake complete, spawning background dispatcher task [INFO] [stdout] Sep 25 14:52:00.294 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.294 TRCE[] checkout dropped for ("http", 127.0.0.1:8000) [INFO] [stdout] Sep 25 14:52:00.294 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.294 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.294 TRCE[] Client::encode method=GET, body=None [INFO] [stdout] Sep 25 14:52:00.294 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.295 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.295 DEBG[] flushed 97 bytes [INFO] [stdout] Sep 25 14:52:00.295 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.295 TRCE[] received 97 bytes [INFO] [stdout] Sep 25 14:52:00.295 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.295 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.295 TRCE[] Request.parse bytes=97 [INFO] [stdout] Sep 25 14:52:00.296 TRCE[] Request.parse Complete(97) [INFO] [stdout] Sep 25 14:52:00.296 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.296 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.296 DEBG[] parsed 2 headers [INFO] [stdout] Sep 25 14:52:00.296 DEBG[] incoming body is empty [INFO] [stdout] Sep 25 14:52:00.296 TRCE[] flushed({role=server}): State { reading: KeepAlive, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.296 INFO[mikes_crawler::better_logging] Received request: /crawl/http%3A%2F%2F127.0.0.1%3A34993%2Fstart, REQ: pNd2 [INFO] [stdout] Sep 25 14:52:00.296 INFO[rocket::server] GET /crawl/http%3A%2F%2F127.0.0.1%3A34993%2Fstart: [INFO] [stdout] Sep 25 14:52:00.296 INFO[rocket::server] Matched: (crawl) GET /crawl/ [INFO] [stdout] Sep 25 14:52:00.296 TRCE[] checkout waiting for idle connection: ("http", 127.0.0.1:34993) , REQ: pNd2 [INFO] [stdout] Sep 25 14:52:00.296 DEBG[reqwest::connect] starting new connection: http://127.0.0.1:34993/, REQ: pNd2 [INFO] [stdout] Sep 25 14:52:00.296 TRCE[] Http::connect; scheme=Some("http"), host=Some("127.0.0.1"), port=Some(Port(34993)) , REQ: pNd2 [INFO] [stdout] Sep 25 14:52:00.294 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.297 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.298 DEBG[] connected to 127.0.0.1:45879 , REQ: 8dLK [INFO] [stdout] Sep 25 14:52:00.298 TRCE[] client handshake Http1 , REQ: 8dLK [INFO] [stdout] Sep 25 14:52:00.298 TRCE[] handshake complete, spawning background dispatcher task , REQ: 8dLK [INFO] [stdout] Sep 25 14:52:00.298 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.298 TRCE[] checkout dropped for ("http", 127.0.0.1:45879) , REQ: 8dLK [INFO] [stdout] Sep 25 14:52:00.298 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.298 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.298 TRCE[] Client::encode method=GET, body=None [INFO] [stdout] Sep 25 14:52:00.298 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.298 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.298 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.298 TRCE[] received 90 bytes [INFO] [stdout] Sep 25 14:52:00.298 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.298 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.298 TRCE[] Request.parse bytes=90 [INFO] [stdout] Sep 25 14:52:00.298 TRCE[] Request.parse Complete(90) [INFO] [stdout] Sep 25 14:52:00.298 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.298 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.298 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.298 DEBG[] incoming body is empty [INFO] [stdout] Sep 25 14:52:00.298 TRCE[httpmock::server] Routing incoming request: ServerRequestHeader { method: "GET", path: "/robots.txt", query: "", headers: [("accept", "*/*"), ("user-agent", "MikesCrawler"), ("host", "127.0.0.1:45879")] } [INFO] [stdout] Sep 25 14:52:00.298 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.298 DEBG[httpmock::server::web::handlers] Could not match any mock to the following request: HttpMockRequest { [INFO] [stdout] path: "/robots.txt", [INFO] [stdout] method: "GET", [INFO] [stdout] headers: Some( [INFO] [stdout] [ [INFO] [stdout] ( [INFO] [stdout] "accept", [INFO] [stdout] "*/*", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "user-agent", [INFO] [stdout] "MikesCrawler", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "host", [INFO] [stdout] "127.0.0.1:45879", [INFO] [stdout] ), [INFO] [stdout] ], [INFO] [stdout] ), [INFO] [stdout] query_params: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] body: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] } [INFO] [stdout] Sep 25 14:52:00.298 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.298 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.298 TRCE[] Server::encode status=404, body=Some(Known(53)), req_method=Some(GET) [INFO] [stdout] Sep 25 14:52:00.298 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.298 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.298 TRCE[] buffer.queue self.len=115 buf.len=53 [INFO] [stdout] Sep 25 14:52:00.299 DEBG[] flushed 168 bytes [INFO] [stdout] Sep 25 14:52:00.299 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.299 DEBG[] flushed 90 bytes [INFO] [stdout] Sep 25 14:52:00.299 TRCE[] flushed({role=client}): State { reading: Init, writing: KeepAlive, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.299 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.299 TRCE[] received 168 bytes [INFO] [stdout] Sep 25 14:52:00.299 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.299 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.299 TRCE[] Response.parse bytes=168 [INFO] [stdout] Sep 25 14:52:00.299 TRCE[] Response.parse Complete(115) [INFO] [stdout] Sep 25 14:52:00.299 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.299 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.299 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.299 DEBG[] incoming body is content-length (53 bytes) [INFO] [stdout] Sep 25 14:52:00.299 TRCE[] decode; state=Length(53) [INFO] [stdout] Sep 25 14:52:00.299 DEBG[] incoming body completed [INFO] [stdout] Sep 25 14:52:00.299 TRCE[] maybe_notify; read_from_io blocked [INFO] [stdout] Sep 25 14:52:00.299 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.299 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.299 TRCE[] put; add idle connection for ("http", 127.0.0.1:45879) , REQ: 8dLK [INFO] [stdout] Sep 25 14:52:00.299 DEBG[] pooling idle connection for ("http", 127.0.0.1:45879) , REQ: 8dLK [INFO] [stdout] Sep 25 14:52:00.299 DEBG[reqwest::async_impl::client] response '404 Not Found' for http://127.0.0.1:45879/robots.txt, REQ: 8dLK [INFO] [stdout] Sep 25 14:52:00.299 TRCE[] take? ("http", 127.0.0.1:45879): expiration = Some(90s) , REQ: 8dLK [INFO] [stdout] Sep 25 14:52:00.299 DEBG[] reuse idle connection for ("http", 127.0.0.1:45879) , REQ: 8dLK [INFO] [stdout] Sep 25 14:52:00.299 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.299 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.299 TRCE[] Client::encode method=GET, body=None [INFO] [stdout] Sep 25 14:52:00.299 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.299 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.299 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.299 TRCE[] received 85 bytes [INFO] [stdout] Sep 25 14:52:00.299 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.299 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.299 TRCE[] Request.parse bytes=85 [INFO] [stdout] Sep 25 14:52:00.299 TRCE[] Request.parse Complete(85) [INFO] [stdout] Sep 25 14:52:00.299 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.299 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.299 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.299 DEBG[] incoming body is empty [INFO] [stdout] Sep 25 14:52:00.300 TRCE[httpmock::server] Routing incoming request: ServerRequestHeader { method: "GET", path: "/start", query: "", headers: [("accept", "*/*"), ("user-agent", "MikesCrawler"), ("host", "127.0.0.1:45879")] } [INFO] [stdout] Sep 25 14:52:00.300 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.300 TRCE[httpmock::server::matchers::targets] Cannot parse json value: EOF while parsing a value at line 1 column 0 [INFO] [stdout] Sep 25 14:52:00.300 TRCE[httpmock::server::matchers::targets] Cannot parse json value: EOF while parsing a value at line 1 column 0 [INFO] [stdout] Sep 25 14:52:00.300 DEBG[httpmock::server::web::handlers] Matched mock with id=0 to the following request: HttpMockRequest { [INFO] [stdout] path: "/start", [INFO] [stdout] method: "GET", [INFO] [stdout] headers: Some( [INFO] [stdout] [ [INFO] [stdout] ( [INFO] [stdout] "accept", [INFO] [stdout] "*/*", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "user-agent", [INFO] [stdout] "MikesCrawler", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "host", [INFO] [stdout] "127.0.0.1:45879", [INFO] [stdout] ), [INFO] [stdout] ], [INFO] [stdout] ), [INFO] [stdout] query_params: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] body: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] } [INFO] [stdout] Sep 25 14:52:00.300 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.300 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.300 TRCE[] Server::encode status=301, body=None, req_method=Some(GET) [INFO] [stdout] Sep 25 14:52:00.300 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.300 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.300 DEBG[] flushed 107 bytes [INFO] [stdout] Sep 25 14:52:00.300 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.300 DEBG[] flushed 85 bytes [INFO] [stdout] Sep 25 14:52:00.300 TRCE[] flushed({role=client}): State { reading: Init, writing: KeepAlive, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.300 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.300 TRCE[] received 107 bytes [INFO] [stdout] Sep 25 14:52:00.300 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.300 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.300 TRCE[] Response.parse bytes=107 [INFO] [stdout] Sep 25 14:52:00.300 TRCE[] Response.parse Complete(107) [INFO] [stdout] Sep 25 14:52:00.300 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.300 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.300 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.300 DEBG[] incoming body is empty [INFO] [stdout] Sep 25 14:52:00.300 TRCE[] maybe_notify; read_from_io blocked [INFO] [stdout] Sep 25 14:52:00.300 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.300 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.300 TRCE[] put; add idle connection for ("http", 127.0.0.1:45879) , REQ: 8dLK [INFO] [stdout] Sep 25 14:52:00.300 DEBG[] pooling idle connection for ("http", 127.0.0.1:45879) , REQ: 8dLK [INFO] [stdout] Sep 25 14:52:00.300 DEBG[reqwest::async_impl::client] redirect policy disallowed redirection to 'http://127.0.0.1:45879/next', REQ: 8dLK [INFO] [stdout] Sep 25 14:52:00.300 DEBG[reqwest::async_impl::client] response '301 Moved Permanently' for http://127.0.0.1:45879/start, REQ: 8dLK [INFO] [stdout] Sep 25 14:52:00.300 INFO[mikes_crawler::crawler] Got redirect from http://127.0.0.1:45879/start to http://127.0.0.1:45879/next, REQ: 8dLK [INFO] [stdout] Sep 25 14:52:00.301 TRCE[] take? ("http", 127.0.0.1:45879): expiration = Some(90s) , REQ: 8dLK [INFO] [stdout] Sep 25 14:52:00.301 DEBG[] reuse idle connection for ("http", 127.0.0.1:45879) , REQ: 8dLK [INFO] [stdout] Sep 25 14:52:00.301 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.301 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.301 TRCE[] Client::encode method=GET, body=None [INFO] [stdout] Sep 25 14:52:00.301 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.301 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.301 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.301 TRCE[] received 84 bytes [INFO] [stdout] Sep 25 14:52:00.301 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.301 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.301 TRCE[] Request.parse bytes=84 [INFO] [stdout] Sep 25 14:52:00.301 TRCE[] Request.parse Complete(84) [INFO] [stdout] Sep 25 14:52:00.301 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.301 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.301 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.301 DEBG[] incoming body is empty [INFO] [stdout] Sep 25 14:52:00.301 TRCE[httpmock::server] Routing incoming request: ServerRequestHeader { method: "GET", path: "/next", query: "", headers: [("accept", "*/*"), ("user-agent", "MikesCrawler"), ("host", "127.0.0.1:45879")] } [INFO] [stdout] Sep 25 14:52:00.301 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.301 DEBG[httpmock::server::web::handlers] Could not match any mock to the following request: HttpMockRequest { [INFO] [stdout] path: "/next", [INFO] [stdout] method: "GET", [INFO] [stdout] headers: Some( [INFO] [stdout] [ [INFO] [stdout] ( [INFO] [stdout] "accept", [INFO] [stdout] "*/*", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "user-agent", [INFO] [stdout] "MikesCrawler", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "host", [INFO] [stdout] "127.0.0.1:45879", [INFO] [stdout] ), [INFO] [stdout] ], [INFO] [stdout] ), [INFO] [stdout] query_params: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] body: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] } [INFO] [stdout] Sep 25 14:52:00.301 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.301 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.301 TRCE[] Server::encode status=404, body=Some(Known(53)), req_method=Some(GET) [INFO] [stdout] Sep 25 14:52:00.301 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.301 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.301 TRCE[] buffer.queue self.len=115 buf.len=53 [INFO] [stdout] Sep 25 14:52:00.301 DEBG[] flushed 168 bytes [INFO] [stdout] Sep 25 14:52:00.301 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.295 TRCE[] flushed({role=client}): State { reading: Init, writing: KeepAlive, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.301 DEBG[] flushed 84 bytes [INFO] [stdout] Sep 25 14:52:00.301 TRCE[] flushed({role=client}): State { reading: Init, writing: KeepAlive, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.302 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.302 TRCE[] received 168 bytes [INFO] [stdout] Sep 25 14:52:00.302 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.302 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.302 TRCE[] Response.parse bytes=168 [INFO] [stdout] Sep 25 14:52:00.302 TRCE[] Response.parse Complete(115) [INFO] [stdout] Sep 25 14:52:00.304 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.305 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.306 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.307 DEBG[] incoming body is content-length (53 bytes) [INFO] [stdout] Sep 25 14:52:00.308 TRCE[] decode; state=Length(53) [INFO] [stdout] Sep 25 14:52:00.308 DEBG[] incoming body completed [INFO] [stdout] Sep 25 14:52:00.296 DEBG[] connecting to 127.0.0.1:34993 , REQ: pNd2 [INFO] [stdout] Sep 25 14:52:00.308 TRCE[] maybe_notify; read_from_io blocked [INFO] [stdout] Sep 25 14:52:00.310 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.310 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.310 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.311 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.311 DEBG[] connected to 127.0.0.1:34993 , REQ: pNd2 [INFO] [stdout] Sep 25 14:52:00.311 TRCE[] put; add idle connection for ("http", 127.0.0.1:45879) , REQ: 8dLK [INFO] [stdout] Sep 25 14:52:00.311 DEBG[] pooling idle connection for ("http", 127.0.0.1:45879) , REQ: 8dLK [INFO] [stdout] Sep 25 14:52:00.311 DEBG[reqwest::async_impl::client] response '404 Not Found' for http://127.0.0.1:45879/next, REQ: 8dLK [INFO] [stdout] Sep 25 14:52:00.311 TRCE[] client handshake Http1 , REQ: pNd2 [INFO] [stdout] Sep 25 14:52:00.311 TRCE[] handshake complete, spawning background dispatcher task , REQ: pNd2 [INFO] [stdout] Sep 25 14:52:00.311 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.311 TRCE[] checkout dropped for ("http", 127.0.0.1:34993) , REQ: pNd2 [INFO] [stdout] Sep 25 14:52:00.311 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.311 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.311 TRCE[] Client::encode method=GET, body=None [INFO] [stdout] Sep 25 14:52:00.311 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.311 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.311 DEBG[] flushed 90 bytes [INFO] [stdout] Sep 25 14:52:00.311 TRCE[] flushed({role=client}): State { reading: Init, writing: KeepAlive, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.311 INFO[mikes_crawler::crawler] Got response with status 404 Not Found: Not processing the body, REQ: 8dLK [INFO] [stdout] Sep 25 14:52:00.312 INFO[rocket::server] Outcome: Success [INFO] [stdout] Sep 25 14:52:00.312 INFO[mikes_crawler::better_logging] Completed request /crawl/http%3A%2F%2F127.0.0.1%3A45879%2Fstart with status 200 OK in 0.018s, REQ: 8dLK [INFO] [stdout] Sep 25 14:52:00.312 INFO[rocket::server] Response succeeded. [INFO] [stdout] Sep 25 14:52:00.312 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.312 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.312 TRCE[] Server::encode status=200, body=Some(Unknown), req_method=Some(GET) [INFO] [stdout] Sep 25 14:52:00.312 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.312 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.312 TRCE[] sized write, len = 241 [INFO] [stdout] Sep 25 14:52:00.312 TRCE[] buffer.queue self.len=243 buf.len=241 [INFO] [stdout] Sep 25 14:52:00.312 TRCE[] no more write body allowed, user body is_end_stream = false [INFO] [stdout] Sep 25 14:52:00.312 DEBG[] flushed 484 bytes [INFO] [stdout] Sep 25 14:52:00.312 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.312 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.312 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.312 TRCE[] received 484 bytes [INFO] [stdout] Sep 25 14:52:00.312 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.312 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.312 TRCE[] Response.parse bytes=484 [INFO] [stdout] Sep 25 14:52:00.312 TRCE[] Response.parse Complete(243) [INFO] [stdout] Sep 25 14:52:00.312 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.312 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.312 DEBG[] parsed 8 headers [INFO] [stdout] Sep 25 14:52:00.312 DEBG[] incoming body is content-length (241 bytes) [INFO] [stdout] Sep 25 14:52:00.312 TRCE[] decode; state=Length(241) [INFO] [stdout] Sep 25 14:52:00.312 DEBG[] incoming body completed [INFO] [stdout] Sep 25 14:52:00.313 TRCE[] maybe_notify; read_from_io blocked [INFO] [stdout] Sep 25 14:52:00.313 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.313 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.313 TRCE[] put; add idle connection for ("http", 127.0.0.1:8000) [INFO] [stdout] Sep 25 14:52:00.313 DEBG[] pooling idle connection for ("http", 127.0.0.1:8000) [INFO] [stdout] Sep 25 14:52:00.313 DEBG[reqwest::async_impl::client] response '200 OK' for http://127.0.0.1:8000/crawl/http%3A%2F%2F127.0.0.1%3A45879%2Fstart [INFO] [stdout] Sep 25 14:52:00.313 TRCE[reqwest::blocking::wait] wait at most 30s [INFO] [stdout] Sep 25 14:52:00.313 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.313 TRCE[reqwest::blocking::client] closing runtime thread (ThreadId(25)) [INFO] [stdout] Sep 25 14:52:00.313 TRCE[reqwest::blocking::client] signaled close for runtime thread (ThreadId(25)) [INFO] [stdout] Sep 25 14:52:00.313 TRCE[reqwest::blocking::client] (ThreadId(25)) Receiver is shutdown [INFO] [stdout] Sep 25 14:52:00.314 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.314 TRCE[] received 90 bytes [INFO] [stdout] Sep 25 14:52:00.314 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.315 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.316 TRCE[reqwest::blocking::client] (ThreadId(25)) end runtime::block_on [INFO] [stdout] Sep 25 14:52:00.316 TRCE[] Request.parse bytes=90 [INFO] [stdout] Sep 25 14:52:00.317 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.317 TRCE[] received 0 bytes [INFO] [stdout] Sep 25 14:52:00.317 TRCE[] parse eof [INFO] [stdout] Sep 25 14:52:00.317 TRCE[] State::close_read() [INFO] [stdout] Sep 25 14:52:00.317 TRCE[] Request.parse Complete(90) [INFO] [stdout] Sep 25 14:52:00.317 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.317 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.317 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.318 DEBG[] incoming body is empty [INFO] [stdout] Sep 25 14:52:00.318 TRCE[httpmock::server] Routing incoming request: ServerRequestHeader { method: "GET", path: "/robots.txt", query: "", headers: [("accept", "*/*"), ("user-agent", "MikesCrawler"), ("host", "127.0.0.1:34993")] } [INFO] [stdout] Sep 25 14:52:00.317 DEBG[] read eof [INFO] [stdout] Sep 25 14:52:00.318 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.318 DEBG[httpmock::server::web::handlers] Could not match any mock to the following request: HttpMockRequest { [INFO] [stdout] path: "/robots.txt", [INFO] [stdout] method: "GET", [INFO] [stdout] headers: Some( [INFO] [stdout] [ [INFO] [stdout] ( [INFO] [stdout] "accept", [INFO] [stdout] "*/*", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "user-agent", [INFO] [stdout] "MikesCrawler", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "host", [INFO] [stdout] "127.0.0.1:34993", [INFO] [stdout] ), [INFO] [stdout] ], [INFO] [stdout] ), [INFO] [stdout] query_params: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] body: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] } [INFO] [stdout] Sep 25 14:52:00.318 TRCE[] State::close_write() [INFO] [stdout] Sep 25 14:52:00.318 TRCE[] State::close_read() [INFO] [stdout] Sep 25 14:52:00.318 TRCE[] State::close_write() [INFO] [stdout] Sep 25 14:52:00.318 TRCE[] flushed({role=server}): State { reading: Closed, writing: Closed, keep_alive: Disabled } [INFO] [stdout] Sep 25 14:52:00.318 TRCE[] shut down IO complete [INFO] [stdout] Sep 25 14:52:00.319 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.319 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.319 TRCE[] Server::encode status=404, body=Some(Known(53)), req_method=Some(GET) [INFO] [stdout] Sep 25 14:52:00.319 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.319 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.319 TRCE[] buffer.queue self.len=115 buf.len=53 [INFO] [stdout] Sep 25 14:52:00.319 DEBG[] flushed 168 bytes [INFO] [stdout] Sep 25 14:52:00.319 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.319 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.319 TRCE[] received 168 bytes [INFO] [stdout] Sep 25 14:52:00.319 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.319 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.319 TRCE[] Response.parse bytes=168 [INFO] [stdout] Sep 25 14:52:00.319 TRCE[] Response.parse Complete(115) [INFO] [stdout] Sep 25 14:52:00.319 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.319 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.319 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.319 DEBG[] incoming body is content-length (53 bytes) [INFO] [stdout] Sep 25 14:52:00.319 TRCE[] decode; state=Length(53) [INFO] [stdout] Sep 25 14:52:00.319 DEBG[] incoming body completed [INFO] [stdout] Sep 25 14:52:00.319 TRCE[] maybe_notify; read_from_io blocked [INFO] [stdout] Sep 25 14:52:00.319 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.319 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.319 TRCE[] put; add idle connection for ("http", 127.0.0.1:34993) , REQ: pNd2 [INFO] [stdout] Sep 25 14:52:00.319 DEBG[] pooling idle connection for ("http", 127.0.0.1:34993) , REQ: pNd2 [INFO] [stdout] Sep 25 14:52:00.319 DEBG[reqwest::async_impl::client] response '404 Not Found' for http://127.0.0.1:34993/robots.txt, REQ: pNd2 [INFO] [stdout] Sep 25 14:52:00.319 TRCE[] take? ("http", 127.0.0.1:34993): expiration = Some(90s) , REQ: pNd2 [INFO] [stdout] Sep 25 14:52:00.319 DEBG[] reuse idle connection for ("http", 127.0.0.1:34993) , REQ: pNd2 [INFO] [stdout] Sep 25 14:52:00.320 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.320 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.320 TRCE[] Client::encode method=GET, body=None [INFO] [stdout] Sep 25 14:52:00.320 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.320 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.320 DEBG[] flushed 85 bytes [INFO] [stdout] Sep 25 14:52:00.320 TRCE[] flushed({role=client}): State { reading: Init, writing: KeepAlive, keep_alive: Busy } [INFO] [stdout] Sep 25 14:52:00.320 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.320 TRCE[] received 85 bytes [INFO] [stdout] Sep 25 14:52:00.320 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.320 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.320 TRCE[] Request.parse bytes=85 [INFO] [stdout] Sep 25 14:52:00.320 TRCE[] Request.parse Complete(85) [INFO] [stdout] Sep 25 14:52:00.320 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.320 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.320 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.320 DEBG[] incoming body is empty [INFO] [stdout] Sep 25 14:52:00.320 TRCE[httpmock::server] Routing incoming request: ServerRequestHeader { method: "GET", path: "/start", query: "", headers: [("accept", "*/*"), ("user-agent", "MikesCrawler"), ("host", "127.0.0.1:34993")] } [INFO] [stdout] Sep 25 14:52:00.320 TRCE[httpmock::server::web::handlers] Matching incoming HTTP request [INFO] [stdout] Sep 25 14:52:00.320 TRCE[httpmock::server::matchers::targets] Cannot parse json value: EOF while parsing a value at line 1 column 0 [INFO] [stdout] Sep 25 14:52:00.320 TRCE[httpmock::server::matchers::targets] Cannot parse json value: EOF while parsing a value at line 1 column 0 [INFO] [stdout] Sep 25 14:52:00.320 DEBG[httpmock::server::web::handlers] Matched mock with id=0 to the following request: HttpMockRequest { [INFO] [stdout] path: "/start", [INFO] [stdout] method: "GET", [INFO] [stdout] headers: Some( [INFO] [stdout] [ [INFO] [stdout] ( [INFO] [stdout] "accept", [INFO] [stdout] "*/*", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "user-agent", [INFO] [stdout] "MikesCrawler", [INFO] [stdout] ), [INFO] [stdout] ( [INFO] [stdout] "host", [INFO] [stdout] "127.0.0.1:34993", [INFO] [stdout] ), [INFO] [stdout] ], [INFO] [stdout] ), [INFO] [stdout] query_params: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] body: Some( [INFO] [stdout] [], [INFO] [stdout] ), [INFO] [stdout] } [INFO] [stdout] Sep 25 14:52:00.320 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.320 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.320 TRCE[] Server::encode status=200, body=Some(Known(4)), req_method=Some(GET) [INFO] [stdout] Sep 25 14:52:00.320 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.320 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.320 TRCE[] buffer.queue self.len=114 buf.len=4 [INFO] [stdout] Sep 25 14:52:00.320 DEBG[] flushed 118 bytes [INFO] [stdout] Sep 25 14:52:00.320 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.321 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.321 TRCE[] received 118 bytes [INFO] [stdout] Sep 25 14:52:00.321 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.321 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.321 TRCE[] Response.parse bytes=118 [INFO] [stdout] Sep 25 14:52:00.321 TRCE[] Response.parse Complete(114) [INFO] [stdout] Sep 25 14:52:00.321 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.321 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.321 DEBG[] parsed 3 headers [INFO] [stdout] Sep 25 14:52:00.321 DEBG[] incoming body is content-length (4 bytes) [INFO] [stdout] Sep 25 14:52:00.321 TRCE[] decode; state=Length(4) [INFO] [stdout] Sep 25 14:52:00.321 DEBG[] incoming body completed [INFO] [stdout] Sep 25 14:52:00.321 TRCE[] maybe_notify; read_from_io blocked [INFO] [stdout] Sep 25 14:52:00.321 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.321 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.321 TRCE[] put; add idle connection for ("http", 127.0.0.1:34993) , REQ: pNd2 [INFO] [stdout] Sep 25 14:52:00.321 DEBG[] pooling idle connection for ("http", 127.0.0.1:34993) , REQ: pNd2 [INFO] [stdout] Sep 25 14:52:00.321 DEBG[reqwest::async_impl::client] response '200 OK' for http://127.0.0.1:34993/start, REQ: pNd2 [INFO] [stdout] Sep 25 14:52:00.321 INFO[mikes_crawler::crawler] Got non html response containing: x-application/something, REQ: pNd2 [INFO] [stdout] Sep 25 14:52:00.321 INFO[rocket::server] Outcome: Success [INFO] [stdout] Sep 25 14:52:00.321 INFO[mikes_crawler::better_logging] Completed request /crawl/http%3A%2F%2F127.0.0.1%3A34993%2Fstart with status 200 OK in 0.025s, REQ: pNd2 [INFO] [stdout] Sep 25 14:52:00.321 TRCE[reqwest::blocking::client] (ThreadId(25)) finished [INFO] [stdout] Sep 25 14:52:00.322 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.322 INFO[rocket::server] Response succeeded. [INFO] [stdout] Sep 25 14:52:00.322 TRCE[] encode_headers [INFO] [stdout] Sep 25 14:52:00.322 TRCE[] -> encode_headers [INFO] [stdout] Sep 25 14:52:00.322 TRCE[] Server::encode status=200, body=Some(Unknown), req_method=Some(GET) [INFO] [stdout] Sep 25 14:52:00.322 TRCE[] <- encode_headers [INFO] [stdout] Sep 25 14:52:00.322 TRCE[] -- encode_headers [INFO] [stdout] Sep 25 14:52:00.322 TRCE[] sized write, len = 85 [INFO] [stdout] Sep 25 14:52:00.322 TRCE[] buffer.queue self.len=242 buf.len=85 [INFO] [stdout] Sep 25 14:52:00.322 TRCE[] no more write body allowed, user body is_end_stream = false [INFO] [stdout] Sep 25 14:52:00.322 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.322 TRCE[] received 327 bytes [INFO] [stdout] Sep 25 14:52:00.322 TRCE[] parse_headers [INFO] [stdout] Sep 25 14:52:00.322 TRCE[] -> parse_headers [INFO] [stdout] Sep 25 14:52:00.322 TRCE[] Response.parse bytes=327 [INFO] [stdout] Sep 25 14:52:00.322 TRCE[] Response.parse Complete(242) [INFO] [stdout] Sep 25 14:52:00.322 TRCE[] <- parse_headers [INFO] [stdout] Sep 25 14:52:00.322 TRCE[] -- parse_headers [INFO] [stdout] Sep 25 14:52:00.322 DEBG[] parsed 8 headers [INFO] [stdout] Sep 25 14:52:00.322 DEBG[] incoming body is content-length (85 bytes) [INFO] [stdout] Sep 25 14:52:00.322 TRCE[] decode; state=Length(85) [INFO] [stdout] Sep 25 14:52:00.322 DEBG[] incoming body completed [INFO] [stdout] Sep 25 14:52:00.322 TRCE[] maybe_notify; read_from_io blocked [INFO] [stdout] Sep 25 14:52:00.322 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.322 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.322 TRCE[] put; add idle connection for ("http", 127.0.0.1:8000) [INFO] [stdout] Sep 25 14:52:00.322 DEBG[] pooling idle connection for ("http", 127.0.0.1:8000) [INFO] [stdout] Sep 25 14:52:00.322 DEBG[reqwest::async_impl::client] response '200 OK' for http://127.0.0.1:8000/crawl/http%3A%2F%2F127.0.0.1%3A34993%2Fstart [INFO] [stdout] Sep 25 14:52:00.322 DEBG[] flushed 327 bytes [INFO] [stdout] Sep 25 14:52:00.322 TRCE[reqwest::blocking::wait] wait at most 30s [INFO] [stdout] Sep 25 14:52:00.322 TRCE[] flushed({role=server}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.322 TRCE[] flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } [INFO] [stdout] Sep 25 14:52:00.322 TRCE[reqwest::blocking::client] closing runtime thread (ThreadId(27)) [INFO] [stdout] Sep 25 14:52:00.323 TRCE[reqwest::blocking::client] (ThreadId(27)) Receiver is shutdown [INFO] [stdout] Sep 25 14:52:00.324 TRCE[reqwest::blocking::client] signaled close for runtime thread (ThreadId(27)) [INFO] [stdout] Sep 25 14:52:00.324 TRCE[reqwest::blocking::client] (ThreadId(27)) end runtime::block_on [INFO] [stdout] Sep 25 14:52:00.324 TRCE[reqwest::blocking::client] closed runtime thread (ThreadId(25)) [INFO] [stdout] Sep 25 14:52:00.324 TRCE[] Conn::read_head [INFO] [stdout] Sep 25 14:52:00.324 TRCE[] received 0 bytes [INFO] [stdout] Sep 25 14:52:00.324 TRCE[] parse eof [INFO] [stdout] Sep 25 14:52:00.324 TRCE[] State::close_read() [INFO] [stdout] Sep 25 14:52:00.324 DEBG[] read eof [INFO] [stdout] Sep 25 14:52:00.324 TRCE[] State::close_write() [INFO] [stdout] Sep 25 14:52:00.324 TRCE[] State::close_read() [INFO] [stdout] Sep 25 14:52:00.324 TRCE[reqwest::blocking::client] (ThreadId(27)) finished [INFO] [stdout] Sep 25 14:52:00.324 TRCE[] State::close_write() [INFO] [stdout] Sep 25 14:52:00.324 TRCE[] flushed({role=server}): State { reading: Closed, writing: Closed, keep_alive: Disabled } [INFO] [stdout] Sep 25 14:52:00.324 TRCE[] shut down IO complete [INFO] [stdout] Sep 25 14:52:00.324 TRCE[reqwest::blocking::client] closed runtime thread (ThreadId(27)) [INFO] [stdout] test relative_redirects ... ok [INFO] [stdout] test ignore_non_html ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.36s [INFO] [stdout] [INFO] [stderr] Doc-tests mikes_crawler [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "794345f89b033d1ddb16857ebf50bebce7ea4c726a8555c62cf32bab70df1bd9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "794345f89b033d1ddb16857ebf50bebce7ea4c726a8555c62cf32bab70df1bd9", kill_on_drop: false }` [INFO] [stdout] 794345f89b033d1ddb16857ebf50bebce7ea4c726a8555c62cf32bab70df1bd9