[INFO] cloning repository https://github.com/PooriaJ/stryvo
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/PooriaJ/stryvo" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPooriaJ%2Fstryvo", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPooriaJ%2Fstryvo'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a96aed16794f5f89dde997bb1166648fe35448ab
[INFO] testing PooriaJ/stryvo against beta-2026-01-20 for beta-1.94-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPooriaJ%2Fstryvo" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/PooriaJ/stryvo
[INFO] finished tweaking git repo https://github.com/PooriaJ/stryvo
[INFO] tweaked toml for git repo https://github.com/PooriaJ/stryvo written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/PooriaJ/stryvo on toolchain beta-2026-01-20
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-01-20" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/PooriaJ/stryvo 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-2026-01-20" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-01-20" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9fb940ea475b96c93ebd86ab587f099fc14cca3560bea79393d13a05d2ae3102
[INFO] running `Command { std: "docker" "start" "-a" "9fb940ea475b96c93ebd86ab587f099fc14cca3560bea79393d13a05d2ae3102", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9fb940ea475b96c93ebd86ab587f099fc14cca3560bea79393d13a05d2ae3102", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9fb940ea475b96c93ebd86ab587f099fc14cca3560bea79393d13a05d2ae3102", kill_on_drop: false }`
[INFO] [stdout] 9fb940ea475b96c93ebd86ab587f099fc14cca3560bea79393d13a05d2ae3102
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-01-20" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] afcbbd53b3e10feee216eeb4f5c96ef3d02f3848d321ee2d22a31fbda557c666
[INFO] running `Command { std: "docker" "start" "-a" "afcbbd53b3e10feee216eeb4f5c96ef3d02f3848d321ee2d22a31fbda557c666", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]    Compiling libc v0.2.175
[INFO] [stderr]    Compiling cfg-if v1.0.3
[INFO] [stderr]    Compiling find-msvc-tools v0.1.1
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling pin-project-lite v0.2.16
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling bytes v1.10.1
[INFO] [stderr]    Compiling memchr v2.7.5
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling cc v1.2.36
[INFO] [stderr]    Compiling zerocopy v0.8.26
[INFO] [stderr]    Compiling log v0.4.28
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling mio v1.0.4
[INFO] [stderr]    Compiling socket2 v0.6.0
[INFO] [stderr]    Compiling signal-hook-registry v1.4.6
[INFO] [stderr]    Compiling cmake v0.1.54
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling openssl-src v300.5.2+3.5.2
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling openssl-sys v0.9.109
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling itoa v1.0.15
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]    Compiling openssl v0.10.73
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling foreign-types v0.3.2
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling parking_lot v0.12.4
[INFO] [stderr]    Compiling libz-ng-sys v1.1.22
[INFO] [stderr]    Compiling indexmap v2.11.0
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling tracing-core v0.1.34
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling object v0.36.7
[INFO] [stderr]    Compiling bitflags v2.9.4
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling aws-lc-sys v0.32.3
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling litemap v0.8.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling tokio-openssl v0.6.5
[INFO] [stderr]    Compiling writeable v0.6.2
[INFO] [stderr]    Compiling ryu v1.0.20
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling gimli v0.31.1
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling typenum v1.18.0
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling slab v0.4.11
[INFO] [stderr]    Compiling http v1.3.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling tokio v1.47.1
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling addr2line v0.24.2
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling alloc-no-stdlib v2.0.4
[INFO] [stderr]    Compiling futures-task v0.3.31
[INFO] [stderr]    Compiling protobuf v2.28.0
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling hashbrown v0.12.3
[INFO] [stderr]    Compiling icu_properties_data v2.1.1
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]    Compiling rustc-demangle v0.1.26
[INFO] [stderr]    Compiling rust_decimal v1.37.2
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling icu_normalizer_data v2.1.1
[INFO] [stderr]    Compiling backtrace v0.3.75
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling alloc-stdlib v0.2.2
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling rustls-pki-types v1.13.0
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling pingora-error v0.6.0
[INFO] [stderr]    Compiling aws-lc-rs v1.14.1
[INFO] [stderr]    Compiling linked-hash-map v0.5.6
[INFO] [stderr]    Compiling os_str_bytes v6.6.1
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling prometheus v0.13.4
[INFO] [stderr]    Compiling regex-syntax v0.8.6
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]    Compiling clap_lex v0.2.4
[INFO] [stderr]    Compiling yaml-rust v0.4.5
[INFO] [stderr]    Compiling clap_derive v3.2.25
[INFO] [stderr]    Compiling pingora-http v0.6.0
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling async-stream v0.3.6
[INFO] [stderr]    Compiling zstd v0.13.3
[INFO] [stderr]    Compiling brotli-decompressor v2.5.1
[INFO] [stderr]    Compiling regex-automata v0.4.10
[INFO] [stderr]    Compiling flate2 v1.1.2
[INFO] [stderr]    Compiling tokio-util v0.7.16
[INFO] [stderr]    Compiling tokio-stream v0.1.17
[INFO] [stderr]    Compiling pingora-timeout v0.6.0
[INFO] [stderr]    Compiling trackable_derive v1.0.0
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling lru v0.14.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling termcolor v1.4.1
[INFO] [stderr]    Compiling thiserror v2.0.16
[INFO] [stderr]    Compiling textwrap v0.16.2
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling strsim v0.10.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.63
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]    Compiling chrono v0.4.41
[INFO] [stderr]    Compiling clap v3.2.25
[INFO] [stderr]    Compiling h2 v0.4.12
[INFO] [stderr]    Compiling regex v1.11.2
[INFO] [stderr]    Compiling neli-proc-macros v0.1.4
[INFO] [stderr]    Compiling trackable v1.3.0
[INFO] [stderr]    Compiling pingora-pool v0.6.0
[INFO] [stderr]    Compiling tokio-test v0.4.4
[INFO] [stderr]    Compiling sfv v0.10.4
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.1
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling brotli v3.5.0
[INFO] [stderr]    Compiling nix v0.24.3
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling serde_yaml v0.8.26
[INFO] [stderr]    Compiling pingora-runtime v0.6.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.16
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling daemonize v0.5.0
[INFO] [stderr]    Compiling is-terminal v0.4.16
[INFO] [stderr]    Compiling unicase v2.8.1
[INFO] [stderr]    Compiling openssl-probe v0.1.6
[INFO] [stderr]    Compiling httpdate v1.0.3
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling neli v0.6.5
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling powerfmt v0.2.0
[INFO] [stderr]    Compiling rustls v0.23.35
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling deranged v0.5.5
[INFO] [stderr]    Compiling hashbrown v0.16.0
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling anstyle-parse v0.2.7
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling rmp v0.8.14
[INFO] [stderr]    Compiling local-ip-address v0.6.5
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling thrift_codec v0.3.2
[INFO] [stderr]    Compiling cf-rustracing v1.1.0
[INFO] [stderr]    Compiling webpki-roots v1.0.4
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling hostname v0.4.1
[INFO] [stderr]    Compiling num-conv v0.1.0
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling smawk v0.3.2
[INFO] [stderr]    Compiling is_ci v1.2.0
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.1
[INFO] [stderr]    Compiling anstyle v1.0.11
[INFO] [stderr]    Compiling serde_json v1.0.143
[INFO] [stderr]    Compiling time-core v0.1.6
[INFO] [stderr]    Compiling anstyle-query v1.1.4
[INFO] [stderr]    Compiling unicode-linebreak v0.1.5
[INFO] [stderr]    Compiling colorchoice v1.0.4
[INFO] [stderr]    Compiling time v0.3.44
[INFO] [stderr]    Compiling anstream v0.6.20
[INFO] [stderr]    Compiling supports-color v2.1.0
[INFO] [stderr]    Compiling cf-rustracing-jaeger v1.2.2
[INFO] [stderr]    Compiling textwrap v0.15.2
[INFO] [stderr]    Compiling url v2.5.7
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling rmp-serde v1.3.0
[INFO] [stderr]    Compiling blake2 v0.10.6
[INFO] [stderr]    Compiling pingora-lru v0.6.0
[INFO] [stderr]    Compiling supports-hyperlinks v2.1.0
[INFO] [stderr]    Compiling supports-unicode v2.1.0
[INFO] [stderr]    Compiling pingora-header-serde v0.6.0
[INFO] [stderr]    Compiling backtrace-ext v0.2.1
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling miette-derive v5.10.0
[INFO] [stderr]    Compiling terminal_size v0.1.17
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling clap_lex v0.7.5
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling owo-colors v3.5.0
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]    Compiling winnow v0.7.13
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling clap_builder v4.5.47
[INFO] [stderr]    Compiling miette v5.10.0
[INFO] [stderr]    Compiling inotify v0.9.6
[INFO] [stderr]    Compiling yasna v0.5.2
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling clap_derive v4.5.47
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling pingora-ketama v0.6.0
[INFO] [stderr]    Compiling pem v3.0.6
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling filetime v0.2.26
[INFO] [stderr]    Compiling time v0.1.45
[INFO] [stderr]    Compiling mio v0.8.11
[INFO] [stderr]    Compiling lru v0.13.0
[INFO] [stderr]    Compiling nu-ansi-term v0.50.1
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling arc-swap v1.7.1
[INFO] [stderr]    Compiling sptr v0.3.2
[INFO] [stderr]    Compiling base64 v0.21.7
[INFO] [stderr]    Compiling tracing-subscriber v0.3.20
[INFO] [stderr]    Compiling concread v0.5.7
[INFO] [stderr]    Compiling clap v4.5.47
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling notify v6.1.1
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling rcgen v0.12.1
[INFO] [stderr]    Compiling kdl v4.7.1
[INFO] [stderr]    Compiling rustls-pemfile v2.2.0
[INFO] [stderr]    Compiling leaky-bucket v1.1.2
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling uuid v1.18.1
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling cidr v0.2.3
[INFO] [stderr]    Compiling rustls-webpki v0.103.8
[INFO] [stderr]    Compiling ureq v2.12.1
[INFO] [stderr]    Compiling acme-lib v0.9.1
[INFO] [stderr]    Compiling pingora-openssl v0.6.0
[INFO] [stderr]    Compiling pingora-openssl v0.3.0
[INFO] [stderr]    Compiling pingora-core v0.6.0
[INFO] [stderr]    Compiling pingora-cache v0.6.0
[INFO] [stderr]    Compiling pingora v0.6.0
[INFO] [stderr]    Compiling pingora-load-balancing v0.6.0
[INFO] [stderr]    Compiling pingora-proxy v0.6.0
[INFO] [stderr]    Compiling stryvo v0.7.5 (/opt/rustwide/workdir/source/stryvo)
[INFO] [stdout] warning: value assigned to `error` is never read
[INFO] [stdout]     --> source/stryvo/src/config/kdl/mod.rs:1156:5
[INFO] [stdout]      |
[INFO] [stdout] 1156 |     error: String,
[INFO] [stdout]      |     ^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `src` is never read
[INFO] [stdout]     --> source/stryvo/src/config/kdl/mod.rs:1159:5
[INFO] [stdout]      |
[INFO] [stdout] 1159 |     src: String,
[INFO] [stdout]      |     ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `err_span` is never read
[INFO] [stdout]     --> source/stryvo/src/config/kdl/mod.rs:1162:5
[INFO] [stdout]      |
[INFO] [stdout] 1162 |     err_span: SourceSpan,
[INFO] [stdout]      |     ^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `error` is never read
[INFO] [stdout]     --> source/stryvo/src/config/kdl/mod.rs:1156:5
[INFO] [stdout]      |
[INFO] [stdout] 1156 |     error: String,
[INFO] [stdout]      |     ^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `src` is never read
[INFO] [stdout]     --> source/stryvo/src/config/kdl/mod.rs:1159:5
[INFO] [stdout]      |
[INFO] [stdout] 1159 |     src: String,
[INFO] [stdout]      |     ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `err_span` is never read
[INFO] [stdout]     --> source/stryvo/src/config/kdl/mod.rs:1162:5
[INFO] [stdout]      |
[INFO] [stdout] 1162 |     err_span: SourceSpan,
[INFO] [stdout]      |     ^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 10m 48s
[INFO] running `Command { std: "docker" "inspect" "afcbbd53b3e10feee216eeb4f5c96ef3d02f3848d321ee2d22a31fbda557c666", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "afcbbd53b3e10feee216eeb4f5c96ef3d02f3848d321ee2d22a31fbda557c666", kill_on_drop: false }`
[INFO] [stdout] afcbbd53b3e10feee216eeb4f5c96ef3d02f3848d321ee2d22a31fbda557c666
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-01-20" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d774ce9eb71b5b496c3d445bbd70b5fe7f203adf57e3a3bd43a189060824ee26
[INFO] running `Command { std: "docker" "start" "-a" "d774ce9eb71b5b496c3d445bbd70b5fe7f203adf57e3a3bd43a189060824ee26", kill_on_drop: false }`
[INFO] [stderr]    Compiling bitflags v2.9.4
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling openssl v0.10.73
[INFO] [stderr]    Compiling tempfile v3.23.0
[INFO] [stderr]    Compiling tokio-openssl v0.6.5
[INFO] [stderr]    Compiling acme-lib v0.9.1
[INFO] [stderr]    Compiling pingora-openssl v0.6.0
[INFO] [stderr]    Compiling pingora-openssl v0.3.0
[INFO] [stderr]    Compiling pingora-core v0.6.0
[INFO] [stderr]    Compiling pingora-cache v0.6.0
[INFO] [stderr]    Compiling pingora v0.6.0
[INFO] [stderr]    Compiling pingora-load-balancing v0.6.0
[INFO] [stderr]    Compiling pingora-proxy v0.6.0
[INFO] [stderr]    Compiling stryvo v0.7.5 (/opt/rustwide/workdir/source/stryvo)
[INFO] [stdout] warning: value assigned to `error` is never read
[INFO] [stdout]     --> source/stryvo/src/config/kdl/mod.rs:1156:5
[INFO] [stdout]      |
[INFO] [stdout] 1156 |     error: String,
[INFO] [stdout]      |     ^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `src` is never read
[INFO] [stdout]     --> source/stryvo/src/config/kdl/mod.rs:1159:5
[INFO] [stdout]      |
[INFO] [stdout] 1159 |     src: String,
[INFO] [stdout]      |     ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `err_span` is never read
[INFO] [stdout]     --> source/stryvo/src/config/kdl/mod.rs:1162:5
[INFO] [stdout]      |
[INFO] [stdout] 1162 |     err_span: SourceSpan,
[INFO] [stdout]      |     ^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `error` is never read
[INFO] [stdout]     --> source/stryvo/src/config/kdl/mod.rs:1156:5
[INFO] [stdout]      |
[INFO] [stdout] 1156 |     error: String,
[INFO] [stdout]      |     ^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `src` is never read
[INFO] [stdout]     --> source/stryvo/src/config/kdl/mod.rs:1159:5
[INFO] [stdout]      |
[INFO] [stdout] 1159 |     src: String,
[INFO] [stdout]      |     ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `err_span` is never read
[INFO] [stdout]     --> source/stryvo/src/config/kdl/mod.rs:1162:5
[INFO] [stdout]      |
[INFO] [stdout] 1162 |     err_span: SourceSpan,
[INFO] [stdout]      |     ^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `error` is never read
[INFO] [stdout]     --> source/stryvo/src/config/kdl/mod.rs:1156:5
[INFO] [stdout]      |
[INFO] [stdout] 1156 |     error: String,
[INFO] [stdout]      |     ^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `src` is never read
[INFO] [stdout]     --> source/stryvo/src/config/kdl/mod.rs:1159:5
[INFO] [stdout]      |
[INFO] [stdout] 1159 |     src: String,
[INFO] [stdout]      |     ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `err_span` is never read
[INFO] [stdout]     --> source/stryvo/src/config/kdl/mod.rs:1162:5
[INFO] [stdout]      |
[INFO] [stdout] 1162 |     err_span: SourceSpan,
[INFO] [stdout]      |     ^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `error` is never read
[INFO] [stdout]     --> source/stryvo/src/config/kdl/mod.rs:1156:5
[INFO] [stdout]      |
[INFO] [stdout] 1156 |     error: String,
[INFO] [stdout]      |     ^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `src` is never read
[INFO] [stdout]     --> source/stryvo/src/config/kdl/mod.rs:1159:5
[INFO] [stdout]      |
[INFO] [stdout] 1159 |     src: String,
[INFO] [stdout]      |     ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `err_span` is never read
[INFO] [stdout]     --> source/stryvo/src/config/kdl/mod.rs:1162:5
[INFO] [stdout]      |
[INFO] [stdout] 1162 |     err_span: SourceSpan,
[INFO] [stdout]      |     ^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2m 36s
[INFO] running `Command { std: "docker" "inspect" "d774ce9eb71b5b496c3d445bbd70b5fe7f203adf57e3a3bd43a189060824ee26", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d774ce9eb71b5b496c3d445bbd70b5fe7f203adf57e3a3bd43a189060824ee26", kill_on_drop: false }`
[INFO] [stdout] d774ce9eb71b5b496c3d445bbd70b5fe7f203adf57e3a3bd43a189060824ee26
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-01-20" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] fb3712636b5aa74f1309f8f75e3dad86de1ecba1aca4b3ebc484fd2c17a20f37
[INFO] running `Command { std: "docker" "start" "-a" "fb3712636b5aa74f1309f8f75e3dad86de1ecba1aca4b3ebc484fd2c17a20f37", kill_on_drop: false }`
[INFO] [stderr] warning: value assigned to `error` is never read
[INFO] [stderr]     --> source/stryvo/src/config/kdl/mod.rs:1156:5
[INFO] [stderr]      |
[INFO] [stderr] 1156 |     error: String,
[INFO] [stderr]      |     ^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `src` is never read
[INFO] [stderr]     --> source/stryvo/src/config/kdl/mod.rs:1159:5
[INFO] [stderr]      |
[INFO] [stderr] 1159 |     src: String,
[INFO] [stderr]      |     ^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `err_span` is never read
[INFO] [stderr]     --> source/stryvo/src/config/kdl/mod.rs:1162:5
[INFO] [stderr]      |
[INFO] [stderr] 1162 |     err_span: SourceSpan,
[INFO] [stderr]      |     ^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: `stryvo` (lib) generated 3 warnings
[INFO] [stderr] warning: `stryvo` (bin "stryvo") generated 3 warnings (3 duplicates)
[INFO] [stderr] warning: `stryvo` (bin "stryvo" test) generated 3 warnings (3 duplicates)
[INFO] [stderr] warning: `stryvo` (lib test) generated 3 warnings (3 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.61s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/stryvo-e70b0e93d8e66368)
[INFO] [stdout] 
[INFO] [stdout] running 64 tests
[INFO] [stdout] test acme::challenge::tests::test_handle_request_parsing ... ok
[INFO] [stdout] test acme::certificate::tests::test_needs_renewal ... ok
[INFO] [stdout] test acme::certificate::tests::test_covers_domain_exact_match ... ok
[INFO] [stdout] test acme::certificate::tests::test_covers_domain_wildcard ... ok
[INFO] [stdout] test config::internal::tests::test_domain_config_validation_no_upstreams ... ok
[INFO] [stdout] test config::internal::tests::test_vhost_config_validation_empty_name ... ok
[INFO] [stdout] test config::internal::tests::test_vhost_config_validation_no_listeners ... ok
[INFO] [stdout] test acme::challenge::tests::test_add_remove_challenge ... ok
[INFO] [stdout] test acme::challenge::tests::test_challenge_server_creation ... ok
[INFO] [stdout] test acme::manager::tests::test_acme_manager_disabled ... ok
[INFO] [stdout] test acme::manager::tests::test_acme_manager_creation ... ok
[INFO] [stdout] test config::kdl::test::empty ... ok
[INFO] [stdout] test config::internal::tests::test_vhost_config_validation_success ... ok
[INFO] [stdout] test config::kdl::test::backward_compatibility ... ok
[INFO] [stdout] test config::kdl::test::one_service ... ok
[INFO] [stdout] test config::kdl::test::services_empty ... ok
[INFO] [stdout] test config::kdl::test::missing_default_domain ... ok
[INFO] [stdout] test acme::manager::tests::test_directory_creation ... ok
[INFO] [stdout] test config::yaml::tests::test_yaml_deserialization ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.139990Z[0m [32m INFO[0m [2mstryvo::config::toml[0m[2m:[0m TOML file contents: Toml { system: System { threads_per_service: 8 }, basic_proxy: [ProxyConfig { name: "Example1", listeners: [ListenerConfig { source: Tcp { addr: "0.0.0.0:8080", tls: None } }, ListenerConfig { source: Tcp { addr: "0.0.0.0:4443", tls: Some(ListenerTlsConfig { cert_path: "./assets/test.crt", key_path: "./assets/test.key" }) } }], connector: ConnectorConfig { proxy_addr: "91.107.223.4:443", tls_sni: Some("onevariable.com") }, path_control: PathControl { upstream_request_filters: [{"kind": "remove-header-key-regex", "pattern": ".*(secret|SECRET).*"}, {"key": "x-proxy-friend", "kind": "upsert-header", "value": "stryvo"}], upstream_response_filters: [{"kind": "remove-header-key-regex", "pattern": ".*ETag.*"}, {"key": "x-with-love-from", "kind": "upsert-header", "value": "stryvo"}] } }, ProxyConfig { name: "Example2", listeners: [ListenerConfig { source: Tcp { addr: "0.0.0.0:8000", tls: None } }], connector: ConnectorConfig { proxy_addr: "91.107.223.4:80", tls_sni: None }, path_control: PathControl { upstream_request_filters: [], upstream_response_filters: [] } }] }
[INFO] [stdout] test config::toml::test::load_example ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.140376Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Initializing certificate manager for VHost service 'test-vhost'
[INFO] [stdout] [2m2026-01-27T01:11:25.140408Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Loading default certificate from cert: "/nonexistent/default.crt", key: "/nonexistent/default.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.140469Z[0m [31mERROR[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate loading failed: SSL certificate file not found at path '"/nonexistent/default.crt"'
[INFO] [stdout] test config::kdl::test::domain_no_connectors ... ok[2m2026-01-27T01:11:25.140486Z[0m [31mERROR[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Please ensure the certificate file exists and is accessible
[INFO] [stdout] 
[INFO] [stdout] [2m2026-01-27T01:11:25.140514Z[0m [31mERROR[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m CRITICAL: Failed to load default certificate for VHost service 'test-vhost' - cert: "/nonexistent/default.crt", key: "/nonexistent/default.key", error:  InternalError
[INFO] [stdout] [2m2026-01-27T01:11:25.140545Z[0m [31mERROR[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Default certificate is required for VHost service to function - service cannot start
[INFO] [stdout] [2m2026-01-27T01:11:25.140683Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Initializing certificate manager for VHost service 'test-vhost'
[INFO] [stdout] [2m2026-01-27T01:11:25.140708Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Loading default certificate from cert: "/nonexistent/default.crt", key: "/nonexistent/default.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.140730Z[0m [31mERROR[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate loading failed: SSL certificate file not found at path '"/nonexistent/default.crt"'
[INFO] [stdout] [2m2026-01-27T01:11:25.140744Z[0m [31mERROR[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Please ensure the certificate file exists and is accessible
[INFO] [stdout] [2m2026-01-27T01:11:25.140757Z[0m [31mERROR[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m CRITICAL: Failed to load default certificate for VHost service 'test-vhost' - cert: "/nonexistent/default.crt", key: "/nonexistent/default.key", error:  InternalError
[INFO] [stdout] [2m2026-01-27T01:11:25.140777Z[0m [31mERROR[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Default certificate is required for VHost service to function - service cannot start
[INFO] [stdout] [2m2026-01-27T01:11:25.141452Z[0m [32m INFO[0m [2mstryvo::config::toml[0m[2m:[0m TOML file contents: Toml { system: System { threads_per_service: 8 }, basic_proxy: [ProxyConfig { name: "Example1", listeners: [ListenerConfig { source: Tcp { addr: "0.0.0.0:8080", tls: None } }, ListenerConfig { source: Tcp { addr: "0.0.0.0:4443", tls: Some(ListenerTlsConfig { cert_path: "./assets/test.crt", key_path: "./assets/test.key" }) } }], connector: ConnectorConfig { proxy_addr: "91.107.223.4:443", tls_sni: Some("onevariable.com") }, path_control: PathControl { upstream_request_filters: [{"kind": "remove-header-key-regex", "pattern": ".*(secret|SECRET).*"}, {"key": "x-proxy-friend", "kind": "upsert-header", "value": "stryvo"}], upstream_response_filters: [{"kind": "remove-header-key-regex", "pattern": ".*ETag.*"}, {"key": "x-with-love-from", "kind": "upsert-header", "value": "stryvo"}] } }, ProxyConfig { name: "Example2", listeners: [ListenerConfig { source: Tcp { addr: "0.0.0.0:8000", tls: None } }], connector: ConnectorConfig { proxy_addr: "91.107.223.4:80", tls_sni: None }, path_control: PathControl { upstream_request_filters: [], upstream_response_filters: [] } }] }
[INFO] [stdout] test config::toml::test::load_test ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.142133Z[0m [31mERROR[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate loading failed: no SSL configuration provided
[INFO] [stdout] [2m2026-01-27T01:11:25.142698Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 0!
[INFO] [stdout] [2m2026-01-27T01:11:25.142855Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Initializing certificate manager for VHost service 'test-vhost'
[INFO] [stdout] [2m2026-01-27T01:11:25.142878Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Loading default certificate from cert: "/nonexistent/default.crt", key: "/nonexistent/default.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.142895Z[0m [31mERROR[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate loading failed: SSL certificate file not found at path '"/nonexistent/default.crt"'
[INFO] [stdout] [2m2026-01-27T01:11:25.142908Z[0m [31mERROR[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Please ensure the certificate file exists and is accessible
[INFO] [stdout] [2m2026-01-27T01:11:25.142920Z[0m [31mERROR[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m CRITICAL: Failed to load default certificate for VHost service 'test-vhost' - cert: "/nonexistent/default.crt", key: "/nonexistent/default.key", error:  InternalError
[INFO] [stdout] [2m2026-01-27T01:11:25.142936Z[0m [31mERROR[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Default certificate is required for VHost service to function - service cannot start
[INFO] [stdout] test proxy::vhost::certificate_manager::tests::test_load_ssl_acceptor_with_missing_config ... ok
[INFO] [stdout] test proxy::vhost::certificate_manager::tests::test_file_to_domain_mapping ... ok
[INFO] [stdout] test proxy::vhost::certificate_manager::tests::test_certificate_stats ... ok
[INFO] [stdout] test proxy::vhost::certificate_manager::tests::test_hot_reload_functionality ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.145132Z[0m [31mERROR[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate loading failed: SSL certificate file not found at path '"/nonexistent/test.crt"'
[INFO] [stdout] [2m2026-01-27T01:11:25.145155Z[0m [31mERROR[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Please ensure the certificate file exists and is accessible
[INFO] [stdout] [2m2026-01-27T01:11:25.145248Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Initializing certificate manager for VHost service 'test-vhost'
[INFO] [stdout] [2m2026-01-27T01:11:25.145272Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Loading default certificate from cert: "/nonexistent/default.crt", key: "/nonexistent/default.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.145294Z[0m [31mERROR[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate loading failed: SSL certificate file not found at path '"/nonexistent/default.crt"'
[INFO] [stdout] [2m2026-01-27T01:11:25.145307Z[0m [31mERROR[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Please ensure the certificate file exists and is accessible
[INFO] [stdout] [2m2026-01-27T01:11:25.145319Z[0m [31mERROR[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m CRITICAL: Failed to load default certificate for VHost service 'test-vhost' - cert: "/nonexistent/default.crt", key: "/nonexistent/default.key", error:  InternalError
[INFO] [stdout] [2m2026-01-27T01:11:25.145336Z[0m [31mERROR[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Default certificate is required for VHost service to function - service cannot start
[INFO] [stdout] [2m2026-01-27T01:11:25.145767Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 5 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.145822Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'api.v1.service.prod.example.org' using pattern 'api.*.service.*.example.org' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.145857Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'api.beta.service.staging.example.org' using pattern 'api.*.service.*.example.org' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.145877Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 1!
[INFO] [stdout] [2m2026-01-27T01:11:25.145887Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'api.test-env.service.dev.example.org' using pattern 'api.*.service.*.example.org' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.145937Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing fallback: no specific configuration found for domain 'web.v1.service.prod.example.org', using default upstream -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.145981Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing fallback: no specific configuration found for domain 'api.v1.app.prod.example.org', using default upstream -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.146024Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing fallback: no specific configuration found for domain 'api.v1.service.prod.different.org', using default upstream -> 1 upstream(s)
[INFO] [stdout] test proxy::vhost::certificate_manager::tests::test_load_ssl_acceptor_with_missing_files ... ok
[INFO] [stdout] test proxy::vhost::certificate_manager::tests::test_reload_event_handling ... ok
[INFO] [stdout] test proxy::vhost::certificate_manager::tests::test_certificate_manager_creation_fails_with_missing_files ... ok
[INFO] [stdout] test proxy::vhost::router::tests::test_complex_wildcard_pattern_matching ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.146447Z[0m [31mERROR[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Invalid wildcard domain pattern: 'example.*'. Wildcards must be complete labels, cannot be in TLD position, and pattern must have at least one non-wildcard part.
[INFO] [stdout] [2m2026-01-27T01:11:25.146482Z[0m [31mERROR[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Invalid domain name: '.example.com'. Domain names must follow standard DNS naming conventions.
[INFO] [stdout] test proxy::vhost::router::tests::test_domain_config_validation_failure ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.146661Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Host header parsing successful: 'Example.COM:443' -> domain 'example.com'
[INFO] [stdout] test proxy::vhost::router::tests::test_extract_host_header ... ok
[INFO] [stdout] test proxy::vhost::router::tests::test_extract_host_header_missing ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.146921Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Host header parsing successful: 'API.Example.Com' -> domain 'api.example.com'
[INFO] [stdout] test proxy::vhost::router::tests::test_extract_host_header_no_port ... ok
[INFO] [stdout] test proxy::vhost::router::tests::test_domain_config_validation_success ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.147427Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 5 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.147473Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'sub1.sub2.multi.example.com' using pattern '*.*.multi.example.com' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.147513Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'api.v1.multi.example.com' using pattern '*.*.multi.example.com' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.147545Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'very.deep.multi.example.com' using pattern '*.*.multi.example.com' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.147584Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing fallback: no specific configuration found for domain 'sub.multi.example.com', using default upstream -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.147626Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing fallback: no specific configuration found for domain 'sub1.sub2.multi.different.com', using default upstream -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.147945Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 5 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.147973Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: found match for domain 'example.com' -> 2 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.148503Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 6 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.148528Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: found match for domain 'exact.wildcard.com' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.148558Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'other.wildcard.com' using pattern '*.wildcard.com' -> 1 upstream(s)
[INFO] [stdout] test proxy::vhost::router::tests::test_multi_level_wildcard_matching ... ok
[INFO] [stdout] test proxy::vhost::router::tests::test_multiple_backends_load_balancing ... ok
[INFO] [stdout] test proxy::vhost::router::tests::test_domain_label_validation ... ok
[INFO] [stdout] test proxy::vhost::router::tests::test_domain_name_validation ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.148937Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 5 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.148970Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: found match for domain 'example.com' -> 2 upstream(s)
[INFO] [stdout] test proxy::vhost::router::tests::test_route_request_case_insensitive ... ok
[INFO] [stdout] test config::kdl::test::vhost_parsing ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.149500Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 5 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.149529Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: found match for domain 'api.example.com' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.149547Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Upstream selection successful: selected first backend 192.168.1.20:80 for domain 'api.example.com' (load balancer fallback)
[INFO] [stdout] [2m2026-01-27T01:11:25.149904Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 5 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.149928Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Upstream selection: no Host header provided, selecting from default upstream
[INFO] [stdout] [2m2026-01-27T01:11:25.149943Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Default upstream selection successful: selected first backend 192.168.1.100:80 (graceful fallback for missing/invalid Host header)
[INFO] [stdout] test proxy::vhost::router::tests::test_select_upstream_peer_known_domain ... ok
[INFO] [stdout] test proxy::vhost::router::tests::test_select_upstream_peer_no_host ... ok
[INFO] [stdout] test proxy::vhost::router::tests::test_exact_match_precedence_over_wildcard ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.150392Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 5 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.150400Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 5 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.150439Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing fallback: no specific configuration found for domain 'unknown.domain.com', using default upstream -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.150457Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Upstream selection successful: selected first backend 192.168.1.100:80 for domain 'unknown.domain.com' (load balancer fallback)
[INFO] [stdout] [2m2026-01-27T01:11:25.150741Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 5 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.150778Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'sub.wildcard.com' using pattern '*.wildcard.com' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.150807Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'api.wildcard.com' using pattern '*.wildcard.com' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.150833Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'very-long-subdomain-name.wildcard.com' using pattern '*.wildcard.com' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.150868Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing fallback: no specific configuration found for domain 'sub.different.com', using default upstream -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.150899Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing fallback: no specific configuration found for domain 'wildcard.com', using default upstream -> 1 upstream(s)
[INFO] [stdout] test proxy::vhost::router::tests::test_vhost_router_creation ... ok
[INFO] [stdout] test proxy::vhost::router::tests::test_select_upstream_peer_unknown_domain ... ok
[INFO] [stdout] test proxy::vhost::router::tests::test_single_level_wildcard_matching ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.151296Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 5 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.151339Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'sub.wildcard.com' using pattern '*.wildcard.com' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.151368Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 5 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.151406Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'sub.wildcard.com' using pattern '*.wildcard.com' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.151442Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'sub.wildcard.com' using pattern '*.wildcard.com' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.151483Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'sub.wildcard.com' using pattern '*.wildcard.com' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.151669Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 5 domains
[INFO] [stdout] test proxy::vhost::router::tests::test_route_request_wildcard_match ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.151708Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'any.wildcard.com' using pattern '*.wildcard.com' -> 1 upstream(s)
[INFO] [stdout] test proxy::vhost::router::tests::test_wildcard_case_insensitive_matching ... ok
[INFO] [stdout] test proxy::vhost::router::tests::test_wildcard_pattern_validation ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.151755Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing fallback: no specific configuration found for domain 'any.nonmatching.com', using default upstream -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.151974Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Host header parsing successful: 'example.com:443' -> domain 'example.com'
[INFO] [stdout] test proxy::vhost::service::tests::test_extract_host_header_missing ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.152051Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 2!
[INFO] [stdout] test proxy::vhost::router::tests::test_wildcard_precedence_over_default ... ok
[INFO] [stdout] test proxy::vhost::service::tests::test_extract_host_header ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.152149Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Host header parsing successful: 'example.com' -> domain 'example.com'
[INFO] [stdout] [2m2026-01-27T01:11:25.152195Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Initializing certificate manager for VHost service 'test-vhost'
[INFO] [stdout] [2m2026-01-27T01:11:25.152216Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Loading default certificate from cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.152569Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 5 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.152616Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing fallback: no specific configuration found for domain 'unknown.com', using default upstream -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.152944Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 5 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.152974Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: found match for domain 'example.com' -> 2 upstream(s)
[INFO] [stdout] test proxy::vhost::service::tests::test_extract_host_header_no_port ... ok
[INFO] [stdout] test proxy::vhost::router::tests::test_route_request_default_fallback ... ok
[INFO] [stdout] test proxy::vhost::service::tests::test_stryvo_context_vhost_fields ... ok
[INFO] [stdout] test proxy::vhost::router::tests::test_route_request_exact_match ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.155000Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Initializing certificate manager for VHost service 'test-vhost'
[INFO] [stdout] [2m2026-01-27T01:11:25.155023Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Loading default certificate from cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.155046Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Initializing certificate manager for VHost service 'test-vhost'
[INFO] [stdout] [2m2026-01-27T01:11:25.155069Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Loading default certificate from cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.155117Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Initializing certificate manager for VHost service 'test-vhost'
[INFO] [stdout] [2m2026-01-27T01:11:25.155145Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Loading default certificate from cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.155356Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Initializing certificate manager for VHost service 'test-vhost'
[INFO] [stdout] [2m2026-01-27T01:11:25.155382Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Loading default certificate from cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.158214Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 3!
[INFO] [stdout] [2m2026-01-27T01:11:25.164442Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 4!
[INFO] [stdout] [2m2026-01-27T01:11:25.170676Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 5!
[INFO] [stdout] [2m2026-01-27T01:11:25.175891Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 6!
[INFO] [stdout] [2m2026-01-27T01:11:25.177555Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate loading successful - cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.177586Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate loading successful - cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.177725Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate loading successful - cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.177816Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate loading successful - cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.177929Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate loading successful - cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.177964Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Successfully loaded default certificate for VHost service 'test-vhost'
[INFO] [stdout] [2m2026-01-27T01:11:25.177982Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Successfully loaded default certificate for VHost service 'test-vhost'
[INFO] [stdout] [2m2026-01-27T01:11:25.178500Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate loading successful - cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.178529Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Successfully loaded default certificate for VHost service 'test-vhost'
[INFO] [stdout] [2m2026-01-27T01:11:25.178641Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Successfully loaded SSL certificate for domain 'example.com' - cert: "assets/certs/test.local.crt"
[INFO] [stdout] [2m2026-01-27T01:11:25.178666Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate manager successfully initialized for VHost service 'test-vhost' with 1 domain certificates (all domains loaded successfully)
[INFO] [stdout] [2m2026-01-27T01:11:25.179015Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Successfully loaded default certificate for VHost service 'test-vhost'
[INFO] [stdout] [2m2026-01-27T01:11:25.179223Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate loading successful - cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.179335Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Successfully loaded SSL certificate for domain 'example.com' - cert: "assets/certs/test.local.crt"
[INFO] [stdout] [2m2026-01-27T01:11:25.179362Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate manager successfully initialized for VHost service 'test-vhost' with 1 domain certificates (all domains loaded successfully)
[INFO] [stdout] [2m2026-01-27T01:11:25.179421Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 1 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.179453Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::service[0m[2m:[0m Created VHost proxy service 'test-vhost' with 1 domains and 1 listeners (certificates loaded: 1)
[INFO] [stdout] [2m2026-01-27T01:11:25.178500Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate loading successful - cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.179566Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate loading successful - cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.179629Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Successfully loaded SSL certificate for domain 'example.com' - cert: "assets/certs/test.local.crt"
[INFO] [stdout] [2m2026-01-27T01:11:25.179649Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate manager successfully initialized for VHost service 'test-vhost' with 1 domain certificates (all domains loaded successfully)
[INFO] [stdout] [2m2026-01-27T01:11:25.179673Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Successfully loaded SSL certificate for domain 'example.com' - cert: "assets/certs/test.local.crt"
[INFO] [stdout] [2m2026-01-27T01:11:25.179690Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate manager successfully initialized for VHost service 'test-vhost' with 1 domain certificates (all domains loaded successfully)
[INFO] [stdout] [2m2026-01-27T01:11:25.179694Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 1 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.179713Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::service[0m[2m:[0m Created VHost proxy service 'test-vhost' with 1 domains and 1 listeners (certificates loaded: 1)
[INFO] [stdout] [2m2026-01-27T01:11:25.179724Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 1 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.179739Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::service[0m[2m:[0m Created VHost proxy service 'test-vhost' with 1 domains and 1 listeners (certificates loaded: 1)
[INFO] [stdout] [2m2026-01-27T01:11:25.179752Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: found match for domain 'example.com' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.179767Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Upstream selection successful: selected first backend 192.168.1.10:80 for domain 'example.com' (load balancer fallback)
[INFO] [stdout] [2m2026-01-27T01:11:25.179781Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Upstream selection: no Host header provided, selecting from default upstream
[INFO] [stdout] [2m2026-01-27T01:11:25.179794Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Default upstream selection successful: selected first backend 192.168.1.100:80 (graceful fallback for missing/invalid Host header)
[INFO] [stdout] [2m2026-01-27T01:11:25.179796Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing fallback: no specific configuration found for domain 'unknown.com', using default upstream -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.179811Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Upstream selection successful: selected first backend 192.168.1.100:80 for domain 'unknown.com' (load balancer fallback)
[INFO] [stdout] [2m2026-01-27T01:11:25.179828Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Upstream selection: no Host header provided, selecting from default upstream
[INFO] [stdout] [2m2026-01-27T01:11:25.179831Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Host header parsing successful: 'invalid-domain.com' -> domain 'invalid-domain.com'
[INFO] [stdout] [2m2026-01-27T01:11:25.179838Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Default upstream selection successful: selected first backend 192.168.1.100:80 (graceful fallback for missing/invalid Host header)
[INFO] [stdout] [2m2026-01-27T01:11:25.179850Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing fallback: no specific configuration found for domain 'invalid-domain.com', using default upstream -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.179867Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Upstream selection successful: selected first backend 192.168.1.100:80 for domain 'invalid-domain.com' (load balancer fallback)
[INFO] [stdout] [2m2026-01-27T01:11:25.180089Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Successfully loaded default certificate for VHost service 'test-vhost'
[INFO] [stdout] [2m2026-01-27T01:11:25.180666Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate loading successful - cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.180797Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Successfully loaded SSL certificate for domain 'example.com' - cert: "assets/certs/test.local.crt"
[INFO] [stdout] [2m2026-01-27T01:11:25.180820Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate manager successfully initialized for VHost service 'test-vhost' with 1 domain certificates (all domains loaded successfully)
[INFO] [stdout] [2m2026-01-27T01:11:25.180866Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 1 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.180889Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::service[0m[2m:[0m Created VHost proxy service 'test-vhost' with 1 domains and 1 listeners (certificates loaded: 1)
[INFO] [stdout] [2m2026-01-27T01:11:25.180928Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Host header parsing successful: 'example.com' -> domain 'example.com'
[INFO] [stdout] [2m2026-01-27T01:11:25.180949Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: found match for domain 'example.com' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.180966Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Upstream selection successful: selected first backend 192.168.1.10:80 for domain 'example.com' (load balancer fallback)
[INFO] [stdout] test proxy::vhost::service::tests::test_upstream_peer_selection_graceful_fallback ... ok
[INFO] [stdout] test proxy::vhost::service::tests::test_vhost_routing_logic ... ok
[INFO] [stdout] test proxy::vhost::service::tests::test_vhost_service_creation ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.181167Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Created TLS settings with SNI callback for dynamic certificate selection
[INFO] [stdout] [2m2026-01-27T01:11:25.182189Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Created TLS settings for 2 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.182205Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 7!
[INFO] [stdout] test proxy::vhost::service::tests::test_upstream_peer_selection_with_host_header ... ok
[INFO] [stdout] test proxy::vhost::service::tests::test_certificate_manager_sni_extraction ... ok
[INFO] [stdout] test config::kdl::test::load_test ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.188396Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 8!
[INFO] [stdout] [2m2026-01-27T01:11:25.196237Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 9!
[INFO] [stdout] [2m2026-01-27T01:11:25.200467Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 10!
[INFO] [stdout] [2m2026-01-27T01:11:25.208252Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 11!
[INFO] [stdout] [2m2026-01-27T01:11:25.214233Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 12!
[INFO] [stdout] [2m2026-01-27T01:11:25.218463Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 13!
[INFO] [stdout] [2m2026-01-27T01:11:25.224730Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 14!
[INFO] [stdout] [2m2026-01-27T01:11:25.229980Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 15!
[INFO] [stdout] [2m2026-01-27T01:11:25.236236Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 16!
[INFO] [stdout] [2m2026-01-27T01:11:25.242498Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 17!
[INFO] [stdout] [2m2026-01-27T01:11:25.248772Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 18!
[INFO] [stdout] [2m2026-01-27T01:11:25.254027Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 19!
[INFO] [stdout] [2m2026-01-27T01:11:25.260256Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 20!
[INFO] [stdout] [2m2026-01-27T01:11:25.266618Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 21!
[INFO] [stdout] [2m2026-01-27T01:11:25.273255Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 22!
[INFO] [stdout] [2m2026-01-27T01:11:25.278508Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 23!
[INFO] [stdout] [2m2026-01-27T01:11:25.284783Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 24!
[INFO] [stdout] [2m2026-01-27T01:11:25.291252Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 25!
[INFO] [stdout] [2m2026-01-27T01:11:25.296526Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 26!
[INFO] [stdout] [2m2026-01-27T01:11:25.302807Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 27!
[INFO] [stdout] [2m2026-01-27T01:11:25.308084Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 28!
[INFO] [stdout] [2m2026-01-27T01:11:25.316267Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 29!
[INFO] [stdout] [2m2026-01-27T01:11:25.320542Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 30!
[INFO] [stdout] [2m2026-01-27T01:11:25.326823Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 31!
[INFO] [stdout] [2m2026-01-27T01:11:25.332202Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 32!
[INFO] [stdout] [2m2026-01-27T01:11:25.338474Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 33!
[INFO] [stdout] [2m2026-01-27T01:11:25.344758Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 34!
[INFO] [stdout] [2m2026-01-27T01:11:25.350040Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 35!
[INFO] [stdout] [2m2026-01-27T01:11:25.358264Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 36!
[INFO] [stdout] [2m2026-01-27T01:11:25.362524Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 37!
[INFO] [stdout] [2m2026-01-27T01:11:25.368798Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 38!
[INFO] [stdout] [2m2026-01-27T01:11:25.374077Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 39!
[INFO] [stdout] [2m2026-01-27T01:11:25.380371Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 40!
[INFO] [stdout] [2m2026-01-27T01:11:25.386644Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 41!
[INFO] [stdout] [2m2026-01-27T01:11:25.391907Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 42!
[INFO] [stdout] [2m2026-01-27T01:11:25.398201Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 43!
[INFO] [stdout] [2m2026-01-27T01:11:25.406259Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 44!
[INFO] [stdout] [2m2026-01-27T01:11:25.410507Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 45!
[INFO] [stdout] [2m2026-01-27T01:11:25.416765Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 46!
[INFO] [stdout] [2m2026-01-27T01:11:25.422022Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 47!
[INFO] [stdout] [2m2026-01-27T01:11:25.428258Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 48!
[INFO] [stdout] [2m2026-01-27T01:11:25.434541Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 49!
[INFO] [stdout] [2m2026-01-27T01:11:25.440828Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 50!
[INFO] [stdout] [2m2026-01-27T01:11:25.446117Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 51!
[INFO] [stdout] [2m2026-01-27T01:11:25.452389Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 52!
[INFO] [stdout] [2m2026-01-27T01:11:25.458752Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 53!
[INFO] [stdout] [2m2026-01-27T01:11:25.464016Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 54!
[INFO] [stdout] [2m2026-01-27T01:11:25.470260Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 55!
[INFO] [stdout] [2m2026-01-27T01:11:25.476531Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 56!
[INFO] [stdout] [2m2026-01-27T01:11:25.482808Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 57!
[INFO] [stdout] [2m2026-01-27T01:11:25.488076Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 58!
[INFO] [stdout] [2m2026-01-27T01:11:25.494382Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 59!
[INFO] [stdout] [2m2026-01-27T01:11:25.500655Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 60!
[INFO] [stdout] [2m2026-01-27T01:11:25.506232Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 61!
[INFO] [stdout] [2m2026-01-27T01:11:25.512497Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 62!
[INFO] [stdout] [2m2026-01-27T01:11:25.520261Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 63!
[INFO] [stdout] [2m2026-01-27T01:11:25.524502Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 64!
[INFO] [stdout] [2m2026-01-27T01:11:25.531550Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 65!
[INFO] [stdout] [2m2026-01-27T01:11:25.537243Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 66!
[INFO] [stdout] [2m2026-01-27T01:11:25.542510Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 67!
[INFO] [stdout] [2m2026-01-27T01:11:25.548845Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 68!
[INFO] [stdout] [2m2026-01-27T01:11:25.554190Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 69!
[INFO] [stdout] [2m2026-01-27T01:11:25.560513Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 70!
[INFO] [stdout] [2m2026-01-27T01:11:25.566237Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 71!
[INFO] [stdout] [2m2026-01-27T01:11:25.573252Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 72!
[INFO] [stdout] [2m2026-01-27T01:11:25.578574Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 73!
[INFO] [stdout] [2m2026-01-27T01:11:25.587264Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 74!
[INFO] [stdout] [2m2026-01-27T01:11:25.591226Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 75!
[INFO] [stdout] [2m2026-01-27T01:11:25.598253Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 76!
[INFO] [stdout] [2m2026-01-27T01:11:25.602497Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 77!
[INFO] [stdout] [2m2026-01-27T01:11:25.608819Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 78!
[INFO] [stdout] [2m2026-01-27T01:11:25.620274Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 79!
[INFO] [stdout] [2m2026-01-27T01:11:25.620341Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 80!
[INFO] [stdout] [2m2026-01-27T01:11:25.626576Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 81!
[INFO] [stdout] [2m2026-01-27T01:11:25.631880Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 82!
[INFO] [stdout] [2m2026-01-27T01:11:25.638217Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 83!
[INFO] [stdout] [2m2026-01-27T01:11:25.644552Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 84!
[INFO] [stdout] [2m2026-01-27T01:11:25.651237Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 85!
[INFO] [stdout] [2m2026-01-27T01:11:25.658254Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 86!
[INFO] [stdout] [2m2026-01-27T01:11:25.662560Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 87!
[INFO] [stdout] [2m2026-01-27T01:11:25.668865Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 88!
[INFO] [stdout] [2m2026-01-27T01:11:25.674190Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 89!
[INFO] [stdout] [2m2026-01-27T01:11:25.680505Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 90!
[INFO] [stdout] [2m2026-01-27T01:11:25.688257Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 91!
[INFO] [stdout] [2m2026-01-27T01:11:25.692560Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 92!
[INFO] [stdout] [2m2026-01-27T01:11:25.698869Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 93!
[INFO] [stdout] [2m2026-01-27T01:11:25.704210Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 94!
[INFO] [stdout] [2m2026-01-27T01:11:25.712255Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 95!
[INFO] [stdout] [2m2026-01-27T01:11:25.716502Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 96!
[INFO] [stdout] [2m2026-01-27T01:11:25.722833Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 97!
[INFO] [stdout] [2m2026-01-27T01:11:25.728185Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 98!
[INFO] [stdout] [2m2026-01-27T01:11:25.736263Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 99!
[INFO] [stdout] [2m2026-01-27T01:11:25.736375Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Rates [3mexpected_ttl[0m[2m=[0m62.7187156 [3mactual_ttl[0m[2m=[0m59.0
[INFO] [stdout] test proxy::rate_limiting::multi::test::smoke ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 64 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.62s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/stryvo-d4d96a52d3af3ba6)
[INFO] [stdout] 
[INFO] [stdout] running 64 tests
[INFO] [stdout] test acme::challenge::tests::test_handle_request_parsing ... ok
[INFO] [stdout] test acme::challenge::tests::test_challenge_server_creation ... ok
[INFO] [stdout] test acme::certificate::tests::test_needs_renewal ... ok
[INFO] [stdout] test acme::certificate::tests::test_covers_domain_exact_match ... ok
[INFO] [stdout] test config::internal::tests::test_domain_config_validation_no_upstreams ... ok
[INFO] [stdout] test acme::certificate::tests::test_covers_domain_wildcard ... ok
[INFO] [stdout] test acme::manager::tests::test_acme_manager_disabled ... ok
[INFO] [stdout] test acme::manager::tests::test_acme_manager_creation ... ok
[INFO] [stdout] test config::internal::tests::test_vhost_config_validation_empty_name ... ok
[INFO] [stdout] test config::internal::tests::test_vhost_config_validation_no_listeners ... ok
[INFO] [stdout] test acme::challenge::tests::test_add_remove_challenge ... ok
[INFO] [stdout] test acme::manager::tests::test_directory_creation ... ok
[INFO] [stdout] test config::kdl::test::services_empty ... ok
[INFO] [stdout] test config::kdl::test::domain_no_connectors ... ok
[INFO] [stdout] test config::kdl::test::empty ... ok
[INFO] [stdout] test config::kdl::test::backward_compatibility ... ok
[INFO] [stdout] test config::kdl::test::one_service ... ok
[INFO] [stdout] test config::kdl::test::missing_default_domain ... ok
[INFO] [stdout] test config::toml::test::load_example ... ok
[INFO] [stdout] test config::toml::test::load_test ... ok
[INFO] [stdout] test config::yaml::tests::test_yaml_deserialization ... ok
[INFO] [stdout] test proxy::vhost::certificate_manager::tests::test_hot_reload_functionality ... ok
[INFO] [stdout] test config::internal::tests::test_vhost_config_validation_success ... ok
[INFO] [stdout] test proxy::vhost::certificate_manager::tests::test_certificate_stats ... ok
[INFO] [stdout] test proxy::vhost::certificate_manager::tests::test_load_ssl_acceptor_with_missing_config ... ok
[INFO] [stdout] test proxy::vhost::certificate_manager::tests::test_load_ssl_acceptor_with_missing_files ... ok
[INFO] [stdout] test proxy::vhost::certificate_manager::tests::test_reload_event_handling ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.784484Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 5 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.784563Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'api.v1.service.prod.example.org' using pattern 'api.*.service.*.example.org' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.784609Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'api.beta.service.staging.example.org' using pattern 'api.*.service.*.example.org' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.784648Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'api.test-env.service.dev.example.org' using pattern 'api.*.service.*.example.org' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.784709Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing fallback: no specific configuration found for domain 'web.v1.service.prod.example.org', using default upstream -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.784757Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing fallback: no specific configuration found for domain 'api.v1.app.prod.example.org', using default upstream -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.784802Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing fallback: no specific configuration found for domain 'api.v1.service.prod.different.org', using default upstream -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.784994Z[0m [31mERROR[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Invalid wildcard domain pattern: 'example.*'. Wildcards must be complete labels, cannot be in TLD position, and pattern must have at least one non-wildcard part.
[INFO] [stdout] [2m2026-01-27T01:11:25.785024Z[0m [31mERROR[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Invalid domain name: '.example.com'. Domain names must follow standard DNS naming conventions.
[INFO] [stdout] test proxy::vhost::router::tests::test_complex_wildcard_pattern_matching ... ok
[INFO] [stdout] test proxy::vhost::router::tests::test_domain_config_validation_failure ... ok
[INFO] [stdout] test proxy::vhost::router::tests::test_domain_config_validation_success ... ok
[INFO] [stdout] test proxy::vhost::router::tests::test_domain_label_validation ... ok
[INFO] [stdout] test proxy::vhost::router::tests::test_domain_name_validation ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.785408Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Host header parsing successful: 'Example.COM:443' -> domain 'example.com'
[INFO] [stdout] test proxy::vhost::certificate_manager::tests::test_file_to_domain_mapping ... ok
[INFO] [stdout] test proxy::vhost::router::tests::test_extract_host_header ... ok
[INFO] [stdout] test proxy::vhost::router::tests::test_extract_host_header_missing ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.785541Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Host header parsing successful: 'API.Example.Com' -> domain 'api.example.com'
[INFO] [stdout] test proxy::vhost::router::tests::test_extract_host_header_no_port ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.785762Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 5 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.785790Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: found match for domain 'example.com' -> 2 upstream(s)
[INFO] [stdout] test proxy::vhost::router::tests::test_multiple_backends_load_balancing ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.786137Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 5 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.786159Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 5 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.786164Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: found match for domain 'example.com' -> 2 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.786198Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing fallback: no specific configuration found for domain 'unknown.com', using default upstream -> 1 upstream(s)
[INFO] [stdout] test proxy::vhost::router::tests::test_route_request_case_insensitive ... ok
[INFO] [stdout] test proxy::vhost::router::tests::test_route_request_default_fallback ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.786563Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 5 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.786590Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: found match for domain 'example.com' -> 2 upstream(s)
[INFO] [stdout] test proxy::vhost::router::tests::test_route_request_exact_match ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.786944Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 5 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.786980Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: found match for domain 'api.example.com' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.787000Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Upstream selection successful: selected first backend 192.168.1.20:80 for domain 'api.example.com' (load balancer fallback)
[INFO] [stdout] test proxy::vhost::router::tests::test_select_upstream_peer_known_domain ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.787364Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 5 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.787404Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'sub.wildcard.com' using pattern '*.wildcard.com' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.787718Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 5 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.787745Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Upstream selection: no Host header provided, selecting from default upstream
[INFO] [stdout] [2m2026-01-27T01:11:25.787763Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Default upstream selection successful: selected first backend 192.168.1.100:80 (graceful fallback for missing/invalid Host header)
[INFO] [stdout] test proxy::vhost::router::tests::test_route_request_wildcard_match ... ok
[INFO] [stdout] test proxy::vhost::router::tests::test_select_upstream_peer_no_host ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.788175Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 5 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.788230Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing fallback: no specific configuration found for domain 'unknown.domain.com', using default upstream -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.788252Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Upstream selection successful: selected first backend 192.168.1.100:80 for domain 'unknown.domain.com' (load balancer fallback)
[INFO] [stdout] [2m2026-01-27T01:11:25.788581Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 5 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.788622Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'sub.wildcard.com' using pattern '*.wildcard.com' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.788658Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'api.wildcard.com' using pattern '*.wildcard.com' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.788692Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'very-long-subdomain-name.wildcard.com' using pattern '*.wildcard.com' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.788740Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing fallback: no specific configuration found for domain 'sub.different.com', using default upstream -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.788783Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing fallback: no specific configuration found for domain 'wildcard.com', using default upstream -> 1 upstream(s)
[INFO] [stdout] test proxy::vhost::router::tests::test_select_upstream_peer_unknown_domain ... ok
[INFO] [stdout] test proxy::vhost::router::tests::test_single_level_wildcard_matching ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.789169Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 5 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.789236Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Initializing certificate manager for VHost service 'test-vhost'
[INFO] [stdout] [2m2026-01-27T01:11:25.789260Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Loading default certificate from cert: "/nonexistent/default.crt", key: "/nonexistent/default.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.789302Z[0m [31mERROR[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate loading failed: SSL certificate file not found at path '"/nonexistent/default.crt"'
[INFO] [stdout] [2m2026-01-27T01:11:25.789318Z[0m [31mERROR[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Please ensure the certificate file exists and is accessible
[INFO] [stdout] [2m2026-01-27T01:11:25.789330Z[0m [31mERROR[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m CRITICAL: Failed to load default certificate for VHost service 'test-vhost' - cert: "/nonexistent/default.crt", key: "/nonexistent/default.key", error:  InternalError
[INFO] [stdout] [2m2026-01-27T01:11:25.789350Z[0m [31mERROR[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Default certificate is required for VHost service to function - service cannot start
[INFO] [stdout] [2m2026-01-27T01:11:25.789459Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 5 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.789492Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'sub.wildcard.com' using pattern '*.wildcard.com' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.789517Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'sub.wildcard.com' using pattern '*.wildcard.com' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.789539Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'sub.wildcard.com' using pattern '*.wildcard.com' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.789649Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 6 domains
[INFO] [stdout] test proxy::vhost::router::tests::test_vhost_router_creation ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.789674Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: found match for domain 'exact.wildcard.com' -> 1 upstream(s)
[INFO] [stdout] test proxy::vhost::certificate_manager::tests::test_certificate_manager_creation_fails_with_missing_files ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.789700Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'other.wildcard.com' using pattern '*.wildcard.com' -> 1 upstream(s)
[INFO] [stdout] test proxy::vhost::router::tests::test_wildcard_case_insensitive_matching ... ok
[INFO] [stdout] test proxy::vhost::router::tests::test_exact_match_precedence_over_wildcard ... ok
[INFO] [stdout] test proxy::vhost::router::tests::test_wildcard_pattern_validation ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.791115Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Host header parsing successful: 'example.com:443' -> domain 'example.com'
[INFO] [stdout] test proxy::vhost::service::tests::test_extract_host_header ... ok
[INFO] [stdout] test proxy::vhost::service::tests::test_extract_host_header_missing ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.791475Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Host header parsing successful: 'example.com' -> domain 'example.com'
[INFO] [stdout] [2m2026-01-27T01:11:25.791629Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Initializing certificate manager for VHost service 'test-vhost'
[INFO] [stdout] [2m2026-01-27T01:11:25.791648Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Loading default certificate from cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] test proxy::vhost::service::tests::test_extract_host_header_no_port ... ok
[INFO] [stdout] test proxy::vhost::service::tests::test_stryvo_context_vhost_fields ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.791929Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Initializing certificate manager for VHost service 'test-vhost'
[INFO] [stdout] [2m2026-01-27T01:11:25.791956Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Loading default certificate from cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.792203Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 0!
[INFO] [stdout] [2m2026-01-27T01:11:25.792230Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Initializing certificate manager for VHost service 'test-vhost'
[INFO] [stdout] [2m2026-01-27T01:11:25.792251Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Loading default certificate from cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.792281Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 1!
[INFO] [stdout] [2m2026-01-27T01:11:25.793222Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 5 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.793272Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'any.wildcard.com' using pattern '*.wildcard.com' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.793326Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing fallback: no specific configuration found for domain 'any.nonmatching.com', using default upstream -> 1 upstream(s)
[INFO] [stdout] test proxy::vhost::router::tests::test_wildcard_precedence_over_default ... ok
[INFO] [stdout] test config::kdl::test::vhost_parsing ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.793984Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Initializing certificate manager for VHost service 'test-vhost'
[INFO] [stdout] [2m2026-01-27T01:11:25.794011Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Loading default certificate from cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.794987Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Initializing certificate manager for VHost service 'test-vhost'
[INFO] [stdout] [2m2026-01-27T01:11:25.795011Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Loading default certificate from cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.795694Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 5 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.795741Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'sub1.sub2.multi.example.com' using pattern '*.*.multi.example.com' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.795779Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'api.v1.multi.example.com' using pattern '*.*.multi.example.com' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.795807Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: wildcard match for domain 'very.deep.multi.example.com' using pattern '*.*.multi.example.com' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.795852Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing fallback: no specific configuration found for domain 'sub.multi.example.com', using default upstream -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.795898Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing fallback: no specific configuration found for domain 'sub1.sub2.multi.different.com', using default upstream -> 1 upstream(s)
[INFO] [stdout] test proxy::vhost::router::tests::test_multi_level_wildcard_matching ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.801220Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 2!
[INFO] [stdout] [2m2026-01-27T01:11:25.803488Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 3!
[INFO] [stdout] [2m2026-01-27T01:11:25.809710Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 4!
[INFO] [stdout] [2m2026-01-27T01:11:25.809891Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate loading successful - cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.810371Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate loading successful - cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.810415Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Successfully loaded default certificate for VHost service 'test-vhost'
[INFO] [stdout] [2m2026-01-27T01:11:25.811054Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate loading successful - cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.811209Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Successfully loaded SSL certificate for domain 'example.com' - cert: "assets/certs/test.local.crt"
[INFO] [stdout] [2m2026-01-27T01:11:25.811232Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate manager successfully initialized for VHost service 'test-vhost' with 1 domain certificates (all domains loaded successfully)
[INFO] [stdout] [2m2026-01-27T01:11:25.811504Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate loading successful - cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.811534Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Successfully loaded default certificate for VHost service 'test-vhost'
[INFO] [stdout] [2m2026-01-27T01:11:25.812276Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate loading successful - cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.812301Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Successfully loaded default certificate for VHost service 'test-vhost'
[INFO] [stdout] [2m2026-01-27T01:11:25.812904Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate loading successful - cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.813024Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Successfully loaded SSL certificate for domain 'example.com' - cert: "assets/certs/test.local.crt"
[INFO] [stdout] [2m2026-01-27T01:11:25.813044Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate manager successfully initialized for VHost service 'test-vhost' with 1 domain certificates (all domains loaded successfully)
[INFO] [stdout] [2m2026-01-27T01:11:25.813120Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 1 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.813154Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::service[0m[2m:[0m Created VHost proxy service 'test-vhost' with 1 domains and 1 listeners (certificates loaded: 1)
[INFO] [stdout] [2m2026-01-27T01:11:25.813249Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Successfully loaded default certificate for VHost service 'test-vhost'
[INFO] [stdout] [2m2026-01-27T01:11:25.813806Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate loading successful - cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.813912Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Successfully loaded SSL certificate for domain 'example.com' - cert: "assets/certs/test.local.crt"
[INFO] [stdout] [2m2026-01-27T01:11:25.813932Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate manager successfully initialized for VHost service 'test-vhost' with 1 domain certificates (all domains loaded successfully)
[INFO] [stdout] [2m2026-01-27T01:11:25.813977Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 1 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.813999Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::service[0m[2m:[0m Created VHost proxy service 'test-vhost' with 1 domains and 1 listeners (certificates loaded: 1)
[INFO] [stdout] [2m2026-01-27T01:11:25.814022Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: found match for domain 'example.com' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.814041Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Upstream selection successful: selected first backend 192.168.1.10:80 for domain 'example.com' (load balancer fallback)
[INFO] [stdout] [2m2026-01-27T01:11:25.814073Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing fallback: no specific configuration found for domain 'unknown.com', using default upstream -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.814092Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Upstream selection successful: selected first backend 192.168.1.100:80 for domain 'unknown.com' (load balancer fallback)
[INFO] [stdout] [2m2026-01-27T01:11:25.814132Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Upstream selection: no Host header provided, selecting from default upstream
[INFO] [stdout] [2m2026-01-27T01:11:25.814145Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Default upstream selection successful: selected first backend 192.168.1.100:80 (graceful fallback for missing/invalid Host header)
[INFO] [stdout] [2m2026-01-27T01:11:25.814506Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate loading successful - cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.814629Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Successfully loaded SSL certificate for domain 'example.com' - cert: "assets/certs/test.local.crt"
[INFO] [stdout] [2m2026-01-27T01:11:25.814651Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate manager successfully initialized for VHost service 'test-vhost' with 1 domain certificates (all domains loaded successfully)
[INFO] [stdout] [2m2026-01-27T01:11:25.814692Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 1 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.814710Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::service[0m[2m:[0m Created VHost proxy service 'test-vhost' with 1 domains and 1 listeners (certificates loaded: 1)
[INFO] [stdout] [2m2026-01-27T01:11:25.814763Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Host header parsing successful: 'example.com' -> domain 'example.com'
[INFO] [stdout] [2m2026-01-27T01:11:25.814783Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing successful: found match for domain 'example.com' -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.814802Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Upstream selection successful: selected first backend 192.168.1.10:80 for domain 'example.com' (load balancer fallback)
[INFO] [stdout] [2m2026-01-27T01:11:25.815627Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate loading successful - cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.815653Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Successfully loaded default certificate for VHost service 'test-vhost'
[INFO] [stdout] [2m2026-01-27T01:11:25.815926Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 5!
[INFO] [stdout] [2m2026-01-27T01:11:25.816205Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate loading successful - cert: "assets/certs/test.local.crt", key: "assets/certs/test.local.key"
[INFO] [stdout] [2m2026-01-27T01:11:25.816313Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Successfully loaded SSL certificate for domain 'example.com' - cert: "assets/certs/test.local.crt"
[INFO] [stdout] [2m2026-01-27T01:11:25.816330Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Certificate manager successfully initialized for VHost service 'test-vhost' with 1 domain certificates (all domains loaded successfully)
[INFO] [stdout] [2m2026-01-27T01:11:25.816686Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m VHost router initialized for 1 domains
[INFO] [stdout] [2m2026-01-27T01:11:25.816711Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::service[0m[2m:[0m Created VHost proxy service 'test-vhost' with 1 domains and 1 listeners (certificates loaded: 1)
[INFO] [stdout] [2m2026-01-27T01:11:25.816742Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Upstream selection: no Host header provided, selecting from default upstream
[INFO] [stdout] [2m2026-01-27T01:11:25.816755Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Default upstream selection successful: selected first backend 192.168.1.100:80 (graceful fallback for missing/invalid Host header)
[INFO] [stdout] [2m2026-01-27T01:11:25.816787Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Host header parsing successful: 'invalid-domain.com' -> domain 'invalid-domain.com'
[INFO] [stdout] [2m2026-01-27T01:11:25.816808Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Domain routing fallback: no specific configuration found for domain 'invalid-domain.com', using default upstream -> 1 upstream(s)
[INFO] [stdout] [2m2026-01-27T01:11:25.816826Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::router[0m[2m:[0m Upstream selection successful: selected first backend 192.168.1.100:80 for domain 'invalid-domain.com' (load balancer fallback)
[INFO] [stdout] [2m2026-01-27T01:11:25.817036Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Created TLS settings with SNI callback for dynamic certificate selection
[INFO] [stdout] [2m2026-01-27T01:11:25.818003Z[0m [32m INFO[0m [2mstryvo::proxy::vhost::certificate_manager[0m[2m:[0m Created TLS settings for 2 domains
[INFO] [stdout] test config::kdl::test::load_test ... ok
[INFO] [stdout] test proxy::vhost::service::tests::test_vhost_routing_logic ... ok
[INFO] [stdout] test proxy::vhost::service::tests::test_upstream_peer_selection_with_host_header ... ok
[INFO] [stdout] test proxy::vhost::service::tests::test_upstream_peer_selection_graceful_fallback ... ok
[INFO] [stdout] test proxy::vhost::service::tests::test_vhost_service_creation ... ok
[INFO] [stdout] test proxy::vhost::service::tests::test_certificate_manager_sni_extraction ... ok
[INFO] [stdout] [2m2026-01-27T01:11:25.823237Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 6!
[INFO] [stdout] [2m2026-01-27T01:11:25.828219Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 7!
[INFO] [stdout] [2m2026-01-27T01:11:25.833474Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 8!
[INFO] [stdout] [2m2026-01-27T01:11:25.839747Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 9!
[INFO] [stdout] [2m2026-01-27T01:11:25.846026Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 10!
[INFO] [stdout] [2m2026-01-27T01:11:25.851296Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 11!
[INFO] [stdout] [2m2026-01-27T01:11:25.857562Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 12!
[INFO] [stdout] [2m2026-01-27T01:11:25.863832Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 13!
[INFO] [stdout] [2m2026-01-27T01:11:25.869114Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 14!
[INFO] [stdout] [2m2026-01-27T01:11:25.878263Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 15!
[INFO] [stdout] [2m2026-01-27T01:11:25.881469Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 16!
[INFO] [stdout] [2m2026-01-27T01:11:25.888253Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 17!
[INFO] [stdout] [2m2026-01-27T01:11:25.893504Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 18!
[INFO] [stdout] [2m2026-01-27T01:11:25.901266Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 19!
[INFO] [stdout] [2m2026-01-27T01:11:25.905513Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 20!
[INFO] [stdout] [2m2026-01-27T01:11:25.911859Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 21!
[INFO] [stdout] [2m2026-01-27T01:11:25.917157Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 22!
[INFO] [stdout] [2m2026-01-27T01:11:25.923422Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 23!
[INFO] [stdout] [2m2026-01-27T01:11:25.932261Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 24!
[INFO] [stdout] [2m2026-01-27T01:11:25.935485Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 25!
[INFO] [stdout] [2m2026-01-27T01:11:25.941736Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 26!
[INFO] [stdout] [2m2026-01-27T01:11:25.948009Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 27!
[INFO] [stdout] [2m2026-01-27T01:11:25.953242Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 28!
[INFO] [stdout] [2m2026-01-27T01:11:25.959521Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 29!
[INFO] [stdout] [2m2026-01-27T01:11:25.965805Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 30!
[INFO] [stdout] [2m2026-01-27T01:11:25.971093Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 31!
[INFO] [stdout] [2m2026-01-27T01:11:25.979266Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 32!
[INFO] [stdout] [2m2026-01-27T01:11:25.983520Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 33!
[INFO] [stdout] [2m2026-01-27T01:11:25.989800Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 34!
[INFO] [stdout] [2m2026-01-27T01:11:25.995072Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 35!
[INFO] [stdout] [2m2026-01-27T01:11:26.001371Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 36!
[INFO] [stdout] [2m2026-01-27T01:11:26.008266Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 37!
[INFO] [stdout] [2m2026-01-27T01:11:26.013549Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 38!
[INFO] [stdout] [2m2026-01-27T01:11:26.019822Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 39!
[INFO] [stdout] [2m2026-01-27T01:11:26.026259Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 40!
[INFO] [stdout] [2m2026-01-27T01:11:26.033259Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 41!
[INFO] [stdout] [2m2026-01-27T01:11:26.039253Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 42!
[INFO] [stdout] [2m2026-01-27T01:11:26.043496Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 43!
[INFO] [stdout] [2m2026-01-27T01:11:26.049774Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 44!
[INFO] [stdout] [2m2026-01-27T01:11:26.055052Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 45!
[INFO] [stdout] [2m2026-01-27T01:11:26.061339Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 46!
[INFO] [stdout] [2m2026-01-27T01:11:26.069262Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 47!
[INFO] [stdout] [2m2026-01-27T01:11:26.073516Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 48!
[INFO] [stdout] [2m2026-01-27T01:11:26.079786Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 49!
[INFO] [stdout] [2m2026-01-27T01:11:26.085062Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 50!
[INFO] [stdout] [2m2026-01-27T01:11:26.091359Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 51!
[INFO] [stdout] [2m2026-01-27T01:11:26.097634Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 52!
[INFO] [stdout] [2m2026-01-27T01:11:26.104009Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 53!
[INFO] [stdout] [2m2026-01-27T01:11:26.109249Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 54!
[INFO] [stdout] [2m2026-01-27T01:11:26.115525Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 55!
[INFO] [stdout] [2m2026-01-27T01:11:26.121802Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 56!
[INFO] [stdout] [2m2026-01-27T01:11:26.127054Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 57!
[INFO] [stdout] [2m2026-01-27T01:11:26.133332Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 58!
[INFO] [stdout] [2m2026-01-27T01:11:26.139614Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 59!
[INFO] [stdout] [2m2026-01-27T01:11:26.145898Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 60!
[INFO] [stdout] [2m2026-01-27T01:11:26.151194Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 61!
[INFO] [stdout] [2m2026-01-27T01:11:26.157473Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 62!
[INFO] [stdout] [2m2026-01-27T01:11:26.163746Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 63!
[INFO] [stdout] [2m2026-01-27T01:11:26.169086Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 64!
[INFO] [stdout] [2m2026-01-27T01:11:26.175393Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 65!
[INFO] [stdout] [2m2026-01-27T01:11:26.181674Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 66!
[INFO] [stdout] [2m2026-01-27T01:11:26.187949Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 67!
[INFO] [stdout] [2m2026-01-27T01:11:26.193232Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 68!
[INFO] [stdout] [2m2026-01-27T01:11:26.199494Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 69!
[INFO] [stdout] [2m2026-01-27T01:11:26.205775Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 70!
[INFO] [stdout] [2m2026-01-27T01:11:26.212061Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 71!
[INFO] [stdout] [2m2026-01-27T01:11:26.217350Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 72!
[INFO] [stdout] [2m2026-01-27T01:11:26.223628Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 73!
[INFO] [stdout] [2m2026-01-27T01:11:26.229906Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 74!
[INFO] [stdout] [2m2026-01-27T01:11:26.236334Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 75!
[INFO] [stdout] [2m2026-01-27T01:11:26.241594Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 76!
[INFO] [stdout] [2m2026-01-27T01:11:26.247871Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 77!
[INFO] [stdout] [2m2026-01-27T01:11:26.253152Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 78!
[INFO] [stdout] [2m2026-01-27T01:11:26.259414Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 79!
[INFO] [stdout] [2m2026-01-27T01:11:26.265681Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 80!
[INFO] [stdout] [2m2026-01-27T01:11:26.271956Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 81!
[INFO] [stdout] [2m2026-01-27T01:11:26.277228Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 82!
[INFO] [stdout] [2m2026-01-27T01:11:26.283492Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 83!
[INFO] [stdout] [2m2026-01-27T01:11:26.289765Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 84!
[INFO] [stdout] [2m2026-01-27T01:11:26.295130Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 85!
[INFO] [stdout] [2m2026-01-27T01:11:26.301386Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 86!
[INFO] [stdout] [2m2026-01-27T01:11:26.307649Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 87!
[INFO] [stdout] [2m2026-01-27T01:11:26.313916Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 88!
[INFO] [stdout] [2m2026-01-27T01:11:26.320238Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 89!
[INFO] [stdout] [2m2026-01-27T01:11:26.325488Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 90!
[INFO] [stdout] [2m2026-01-27T01:11:26.334263Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 91!
[INFO] [stdout] [2m2026-01-27T01:11:26.339220Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 92!
[INFO] [stdout] [2m2026-01-27T01:11:26.343459Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 93!
[INFO] [stdout] [2m2026-01-27T01:11:26.350249Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 94!
[INFO] [stdout] [2m2026-01-27T01:11:26.357242Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 95!
[INFO] [stdout] [2m2026-01-27T01:11:26.361477Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 96!
[INFO] [stdout] [2m2026-01-27T01:11:26.367741Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 97!
[INFO] [stdout] [2m2026-01-27T01:11:26.374029Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Declined 98!
[INFO] [stdout] [2m2026-01-27T01:11:26.383263Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Approved 99!
[INFO] [stdout] [2m2026-01-27T01:11:26.383323Z[0m [32m INFO[0m [2mstryvo::proxy::rate_limiting::multi::test[0m[2m:[0m Rates [3mexpected_ttl[0m[2m=[0m62.8575836 [3mactual_ttl[0m[2m=[0m59.0
[INFO] [stdout] test proxy::rate_limiting::multi::test::smoke ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 64 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.62s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/e2e_vhost_tests.rs (/opt/rustwide/target/debug/deps/e2e_vhost_tests-b3d8e123b4b82c63)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test e2e_vhost_tests::test_error_conditions ... ok
[INFO] [stdout] test e2e_vhost_tests::test_fallback_scenarios ... ok
[INFO] [stdout] test e2e_vhost_tests::test_concurrent_requests ... ok
[INFO] [stdout] test e2e_vhost_tests::test_http_host_header_routing ... ok
[INFO] [stdout] test e2e_vhost_tests::test_https_sni_certificate_selection ... ok
[INFO] [stdout] test e2e_vhost_tests::test_complete_request_flow ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/error_handling_test.rs (/opt/rustwide/target/debug/deps/error_handling_test-4c11ccd03ebf9582)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test error_handling_tests::test_host_header_parsing_error_handling ... ok
[INFO] [stdout] test error_handling_tests::test_certificate_loading_error_handling ... ok
[INFO] [stdout] test error_handling_tests::test_domain_routing_error_handling ... ok
[INFO] [stdout] test error_handling_tests::test_sni_extraction_error_handling ... ok
[INFO] [stdout] test error_handling_tests::test_upstream_selection_error_handling ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration_test_hot_reload.rs (/opt/rustwide/target/debug/deps/integration_test_hot_reload-9ae036d2c2d04c0b)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test tests::test_reload_event_cloning ... ok
[INFO] [stdout] test test_file_to_domain_mapping_functionality ... ok
[INFO] [stdout] test test_certificate_reload_error_handling ... ok
[INFO] [stdout] test test_hot_reload_event_system ... ok
[INFO] [stdout] test tests::test_reload_event_debug_formatting ... ok
[INFO] [stdout] test test_hot_reload_timing_and_concurrency ... ok
[INFO] [stderr]      Running tests/integration_test_vhost.rs (/opt/rustwide/target/debug/deps/integration_test_vhost-b0d66104e2a5eff8)
[INFO] [stdout] test test_complete_hot_reload_workflow ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test integration_tests::test_main_vhost_validation_error_handling ... ok
[INFO] [stdout] test integration_tests::test_main_vhost_integration ... ok
[INFO] [stderr]    Doc-tests stryvo
[INFO] [stdout] test integration_tests::test_main_multiple_vhost_integration ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.36s
[INFO] [stdout] 
[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" "fb3712636b5aa74f1309f8f75e3dad86de1ecba1aca4b3ebc484fd2c17a20f37", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fb3712636b5aa74f1309f8f75e3dad86de1ecba1aca4b3ebc484fd2c17a20f37", kill_on_drop: false }`
[INFO] [stdout] fb3712636b5aa74f1309f8f75e3dad86de1ecba1aca4b3ebc484fd2c17a20f37
