[INFO] cloning repository https://github.com/ShaoG-R/kestrel-protocol [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ShaoG-R/kestrel-protocol" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FShaoG-R%2Fkestrel-protocol", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FShaoG-R%2Fkestrel-protocol'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] c6cec0f55e4c34e0335412d03afa5dba92cbbe64 [INFO] testing ShaoG-R/kestrel-protocol against 1.97.0-beta.6 for beta-1.98-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FShaoG-R%2Fkestrel-protocol" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/ShaoG-R/kestrel-protocol [INFO] finished tweaking git repo https://github.com/ShaoG-R/kestrel-protocol [INFO] tweaked toml for git repo https://github.com/ShaoG-R/kestrel-protocol written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/ShaoG-R/kestrel-protocol on toolchain 1.97.0-beta.6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/ShaoG-R/kestrel-protocol 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" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded io-uring v0.7.9 [INFO] [stderr] Downloaded pathdiff v0.2.3 [INFO] [stderr] Downloaded notify-debouncer-mini v0.6.0 [INFO] [stderr] Downloaded opener v0.8.2 [INFO] [stderr] Downloaded pest_generator v2.8.1 [INFO] [stderr] Downloaded notify v8.1.0 [INFO] [stderr] Downloaded pest_meta v2.8.1 [INFO] [stderr] Downloaded wide v0.7.33 [INFO] [stderr] Downloaded pest_derive v2.8.1 [INFO] [stderr] Downloaded toml_edit v0.15.0 [INFO] [stderr] Downloaded jiff-static v0.2.15 [INFO] [stderr] Downloaded clap_complete v4.5.55 [INFO] [stderr] Downloaded clap v4.5.41 [INFO] [stderr] Downloaded clap_builder v4.5.41 [INFO] [stderr] Downloaded jiff v0.2.15 [INFO] [stderr] Downloaded tokio v1.47.0 [INFO] [stderr] Downloaded mdbook-mermaid v0.15.0 [INFO] [stderr] Downloaded mdbook v0.4.52 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 60356a96a874e36a69628899766ab85311a01855bc52f9b76effeaf026f589e7 [INFO] running `Command { std: "docker" "start" "60356a96a874e36a69628899766ab85311a01855bc52f9b76effeaf026f589e7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "60356a96a874e36a69628899766ab85311a01855bc52f9b76effeaf026f589e7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "60356a96a874e36a69628899766ab85311a01855bc52f9b76effeaf026f589e7" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "60356a96a874e36a69628899766ab85311a01855bc52f9b76effeaf026f589e7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "60356a96a874e36a69628899766ab85311a01855bc52f9b76effeaf026f589e7" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.95 [INFO] [stderr] Compiling unicode-ident v1.0.18 [INFO] [stderr] Compiling libc v0.2.174 [INFO] [stderr] Compiling cfg-if v1.0.1 [INFO] [stderr] Compiling futures-core v0.3.31 [INFO] [stderr] Compiling getrandom v0.3.3 [INFO] [stderr] Compiling zerocopy v0.8.26 [INFO] [stderr] Compiling futures-sink v0.3.31 [INFO] [stderr] Compiling parking_lot_core v0.9.11 [INFO] [stderr] Compiling slab v0.4.10 [INFO] [stderr] Compiling lock_api v0.4.13 [INFO] [stderr] Compiling memchr v2.7.5 [INFO] [stderr] Compiling parking v2.2.1 [INFO] [stderr] Compiling concurrent-queue v2.5.0 [INFO] [stderr] Compiling thiserror v2.0.12 [INFO] [stderr] Compiling bytemuck v1.23.1 [INFO] [stderr] Compiling rayon-core v1.12.1 [INFO] [stderr] Compiling tracing-core v0.1.34 [INFO] [stderr] Compiling bytes v1.10.1 [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling crossbeam-queue v0.3.12 [INFO] [stderr] Compiling event-listener v5.4.0 [INFO] [stderr] Compiling arc-swap v1.7.1 [INFO] [stderr] Compiling safe_arch v0.7.4 [INFO] [stderr] Compiling event-listener-strategy v0.5.4 [INFO] [stderr] Compiling rayon v1.10.0 [INFO] [stderr] Compiling async-channel v2.5.0 [INFO] [stderr] Compiling wide v0.7.33 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Compiling syn v2.0.104 [INFO] [stderr] Compiling socket2 v0.6.0 [INFO] [stderr] Compiling mio v1.0.4 [INFO] [stderr] Compiling signal-hook-registry v1.4.5 [INFO] [stderr] Compiling num_cpus v1.17.0 [INFO] [stderr] Compiling rand_core v0.9.3 [INFO] [stderr] Compiling parking_lot v0.12.4 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling thiserror-impl v2.0.12 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling async-trait v0.1.88 [INFO] [stderr] Compiling tokio v1.47.0 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling tracing v0.1.41 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling kestrel-protocol v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 31.73s [INFO] running `Command { std: "docker" "inspect" "60356a96a874e36a69628899766ab85311a01855bc52f9b76effeaf026f589e7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "60356a96a874e36a69628899766ab85311a01855bc52f9b76effeaf026f589e7" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling log v0.4.27 [INFO] [stderr] Compiling itoa v1.0.15 [INFO] [stderr] Compiling stable_deref_trait v1.2.0 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling bitflags v2.9.1 [INFO] [stderr] Compiling aho-corasick v1.1.3 [INFO] [stderr] Compiling typenum v1.18.0 [INFO] [stderr] Compiling phf_shared v0.11.3 [INFO] [stderr] Compiling regex-syntax v0.8.5 [INFO] [stderr] Compiling syn v2.0.104 [INFO] [stderr] Compiling parking_lot_core v0.9.11 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling tracing-core v0.1.34 [INFO] [stderr] Compiling writeable v0.6.1 [INFO] [stderr] Compiling rustix v1.0.8 [INFO] [stderr] Compiling litemap v0.8.0 [INFO] [stderr] Compiling http v1.3.1 [INFO] [stderr] Compiling parking_lot v0.12.4 [INFO] [stderr] Compiling new_debug_unreachable v1.0.6 [INFO] [stderr] Compiling icu_properties_data v2.0.1 [INFO] [stderr] Compiling icu_normalizer_data v2.0.0 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling mio v1.0.4 [INFO] [stderr] Compiling linux-raw-sys v0.9.4 [INFO] [stderr] Compiling unicase v2.8.1 [INFO] [stderr] Compiling percent-encoding v2.3.1 [INFO] [stderr] Compiling anstyle-parse v0.2.7 [INFO] [stderr] Compiling colorchoice v1.0.4 [INFO] [stderr] Compiling mac v0.1.1 [INFO] [stderr] Compiling ucd-trie v0.1.7 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.1 [INFO] [stderr] Compiling ryu v1.0.20 [INFO] [stderr] Compiling anstyle-query v1.1.3 [INFO] [stderr] Compiling serde_json v1.0.141 [INFO] [stderr] Compiling precomputed-hash v0.1.1 [INFO] [stderr] Compiling anstyle v1.0.11 [INFO] [stderr] Compiling futf v0.1.5 [INFO] [stderr] Compiling form_urlencoded v1.2.1 [INFO] [stderr] Compiling rustversion v1.0.21 [INFO] [stderr] Compiling tendril v0.4.3 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Compiling inotify-sys v0.1.5 [INFO] [stderr] Compiling phf_generator v0.11.3 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling anstream v0.6.19 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling clap_lex v0.7.5 [INFO] [stderr] Compiling dtoa v1.0.10 [INFO] [stderr] Compiling string_cache_codegen v0.5.4 [INFO] [stderr] Compiling phf_codegen v0.11.3 [INFO] [stderr] Compiling dtoa-short v0.3.5 [INFO] [stderr] Compiling inotify v0.11.0 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling anyhow v1.0.98 [INFO] [stderr] Compiling num-modular v0.6.1 [INFO] [stderr] Compiling pulldown-cmark v0.10.3 [INFO] [stderr] Compiling notify-types v2.0.0 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling jiff v0.2.15 [INFO] [stderr] Compiling pulldown-cmark-escape v0.10.1 [INFO] [stderr] Compiling matchit v0.8.4 [INFO] [stderr] Compiling http-range-header v0.4.2 [INFO] [stderr] Compiling notify v8.1.0 [INFO] [stderr] Compiling hashbrown v0.12.3 [INFO] [stderr] Compiling web_atoms v0.1.3 [INFO] [stderr] Compiling pulldown-cmark v0.9.6 [INFO] [stderr] Compiling iana-time-zone v0.1.63 [INFO] [stderr] Compiling maplit v1.0.2 [INFO] [stderr] Compiling regex-syntax v0.6.29 [INFO] [stderr] Compiling itertools v0.10.5 [INFO] [stderr] Compiling num-order v1.2.0 [INFO] [stderr] Compiling regex-automata v0.4.9 [INFO] [stderr] Compiling crypto-common v0.1.6 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling chrono v0.4.41 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling is-terminal v0.4.16 [INFO] [stderr] Compiling combine v4.6.7 [INFO] [stderr] Compiling topological-sort v0.2.2 [INFO] [stderr] Compiling termcolor v1.4.1 [INFO] [stderr] Compiling toml_datetime v0.5.1 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Compiling sha1 v0.10.6 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling pathdiff v0.2.3 [INFO] [stderr] Compiling humantime v2.2.0 [INFO] [stderr] Compiling overload v0.1.1 [INFO] [stderr] Compiling nu-ansi-term v0.46.0 [INFO] [stderr] Compiling async-channel v2.5.0 [INFO] [stderr] Compiling rayon v1.10.0 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling regex-automata v0.1.10 [INFO] [stderr] Compiling terminal_size v0.4.2 [INFO] [stderr] Compiling tempfile v3.20.0 [INFO] [stderr] Compiling clap_builder v4.5.41 [INFO] [stderr] Compiling notify-debouncer-mini v0.6.0 [INFO] [stderr] Compiling matchers v0.1.0 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling regex v1.11.1 [INFO] [stderr] Compiling bstr v1.12.0 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling thiserror-impl v2.0.12 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Compiling tokio v1.47.0 [INFO] [stderr] Compiling phf_macros v0.11.3 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling cssparser-macros v0.6.1 [INFO] [stderr] Compiling match_token v0.35.0 [INFO] [stderr] Compiling clap v4.5.41 [INFO] [stderr] Compiling phf v0.11.3 [INFO] [stderr] Compiling globset v0.4.16 [INFO] [stderr] Compiling cssparser v0.35.0 [INFO] [stderr] Compiling thiserror v2.0.12 [INFO] [stderr] Compiling env_filter v0.1.3 [INFO] [stderr] Compiling pest v2.8.1 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling tungstenite v0.26.2 [INFO] [stderr] Compiling ignore v0.4.23 [INFO] [stderr] Compiling env_logger v0.11.8 [INFO] [stderr] Compiling yoke v0.8.0 [INFO] [stderr] Compiling clap_complete v4.5.55 [INFO] [stderr] Compiling opener v0.8.2 [INFO] [stderr] Compiling zerovec v0.11.2 [INFO] [stderr] Compiling zerotrie v0.2.2 [INFO] [stderr] Compiling tracing v0.1.41 [INFO] [stderr] Compiling toml_edit v0.15.0 [INFO] [stderr] Compiling env_logger v0.10.2 [INFO] [stderr] Compiling axum-core v0.5.2 [INFO] [stderr] Compiling async-trait v0.1.88 [INFO] [stderr] Compiling tracing-subscriber v0.3.19 [INFO] [stderr] Compiling pest_meta v2.8.1 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Compiling tinystr v0.8.1 [INFO] [stderr] Compiling potential_utf v0.1.2 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling derive_builder_core v0.20.2 [INFO] [stderr] Compiling icu_collections v2.0.0 [INFO] [stderr] Compiling icu_locale_core v2.0.0 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling icu_provider v2.0.0 [INFO] [stderr] Compiling pest_generator v2.8.1 [INFO] [stderr] Compiling derive_builder_macro v0.20.2 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling icu_normalizer v2.0.0 [INFO] [stderr] Compiling icu_properties v2.0.1 [INFO] [stderr] Compiling derive_builder v0.20.2 [INFO] [stderr] Compiling pest_derive v2.8.1 [INFO] [stderr] Compiling string_cache v0.8.9 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling serde_path_to_error v0.1.17 [INFO] [stderr] Compiling toml v0.5.11 [INFO] [stderr] Compiling hyper v1.6.0 [INFO] [stderr] Compiling tokio-util v0.7.15 [INFO] [stderr] Compiling tokio-tungstenite v0.26.2 [INFO] [stderr] Compiling tower v0.5.2 [INFO] [stderr] Compiling kestrel-protocol v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.0.3 [INFO] [stderr] Compiling markup5ever v0.35.0 [INFO] [stderr] Compiling tower-http v0.6.6 [INFO] [stderr] Compiling hyper-util v0.1.16 [INFO] [stderr] Compiling url v2.5.4 [INFO] [stderr] Compiling html5ever v0.35.0 [INFO] [stderr] Compiling elasticlunr-rs v3.0.2 [INFO] [stderr] Compiling handlebars v6.3.2 [INFO] [stderr] Compiling axum v0.8.4 [INFO] [stderr] Compiling ammonia v4.1.1 [INFO] [stderr] Compiling mdbook v0.4.52 [INFO] [stderr] Compiling mdbook-mermaid v0.15.0 [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 2m 26s [INFO] running `Command { std: "docker" "inspect" "60356a96a874e36a69628899766ab85311a01855bc52f9b76effeaf026f589e7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "60356a96a874e36a69628899766ab85311a01855bc52f9b76effeaf026f589e7" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.48s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/kestrel_protocol-51660fecccda4292) [INFO] [stdout] [INFO] [stdout] running 310 tests [INFO] [stdout] test core::endpoint::core::frame::tests::test_create_syn_frame ... ok [INFO] [stdout] test core::endpoint::core::frame::tests::test_create_ack_frame ... ok [INFO] [stdout] test core::endpoint::core::frame::tests::test_create_fin_frame ... ok [INFO] [stdout] test core::endpoint::core::sender::tests::test_packet_builder_add_frames_batch ... ok [INFO] [stdout] test core::endpoint::core::sender::tests::test_packet_builder_frame_equals_max_size ... ok [INFO] [stdout] test core::endpoint::core::sender::tests::test_packet_builder_flush_empty ... ok [INFO] [stdout] test core::endpoint::core::sender::tests::test_packet_builder_single_frame ... ok [INFO] [stdout] test core::endpoint::lifecycle::manager::tests::test_clear_event_listeners ... ok [INFO] [stdout] test core::endpoint::core::sender::tests::test_packet_builder_multiple_frames_fit ... ok [INFO] [stdout] test core::endpoint::lifecycle::manager::tests::test_activity_checks ... ok [INFO] [stdout] test core::endpoint::lifecycle::manager::tests::test_data_permission_checks ... ok [INFO] [stdout] test core::endpoint::lifecycle::manager::tests::test_event_callbacks ... ok [INFO] [stdout] test core::endpoint::lifecycle::manager::tests::test_force_close ... ok [INFO] [stdout] test core::endpoint::lifecycle::manager::tests::test_graceful_shutdown ... ok [INFO] [stdout] test core::endpoint::lifecycle::manager::tests::test_invalid_state_transitions ... ok [INFO] [stdout] test core::endpoint::lifecycle::manager::tests::test_lifecycle_manager_initialization ... ok [INFO] [stdout] test core::endpoint::lifecycle::manager::tests::test_path_validation ... ok [INFO] [stdout] test core::endpoint::lifecycle::transitions::tests::test_graceful_shutdown_transitions ... ok [INFO] [stdout] test core::endpoint::lifecycle::transitions::tests::test_execute_valid_transition ... ok [INFO] [stdout] test core::endpoint::lifecycle::validation::tests::test_activity_checks ... ok [INFO] [stdout] test core::endpoint::lifecycle::transitions::tests::test_state_name_for ... ok [INFO] [stdout] test core::endpoint::lifecycle::validation::tests::test_data_permissions ... ok [INFO] [stdout] test core::endpoint::lifecycle::validation::tests::test_graceful_shutdown_checks ... ok [INFO] [stdout] test core::endpoint::lifecycle::transitions::tests::test_event_listeners ... ok [INFO] [stdout] test core::endpoint::lifecycle::validation::tests::test_invalid_transitions ... ok [INFO] [stdout] test core::endpoint::lifecycle::validation::tests::test_valid_transitions ... ok [INFO] [stdout] test core::endpoint::lifecycle::manager::tests::test_state_transitions ... ok [INFO] [stdout] test core::endpoint::lifecycle::validation::tests::test_should_close ... ok [INFO] [stdout] test core::endpoint::lifecycle::transitions::tests::test_clear_event_listeners ... ok [INFO] [stdout] test core::endpoint::lifecycle::validation::tests::test_path_validation_checks ... ok [INFO] [stdout] test core::endpoint::processing::processors::ack::tests::test_ack_processor_can_handle ... ok [INFO] [stdout] test core::endpoint::processing::processors::ack::tests::test_processor_name ... ok [INFO] [stdout] test core::endpoint::processing::processors::connection::tests::test_processor_name ... ok [INFO] [stdout] test core::endpoint::processing::processors::connection::tests::test_connection_processor_can_handle ... ok [INFO] [stdout] test core::endpoint::processing::processors::data::tests::test_all_processor_interfaces_consistency ... ok [INFO] [stdout] test core::endpoint::processing::processors::data::tests::test_frame_type_validation ... ok [INFO] [stdout] test core::endpoint::processing::processors::data::tests::test_processor_type_identification ... ok [INFO] [stdout] test core::endpoint::processing::processors::data::tests::test_processor_name ... ok [INFO] [stdout] test core::endpoint::processing::processors::path::tests::test_path_processor_can_handle ... ok [INFO] [stdout] test core::endpoint::processing::processors::data::tests::test_push_processor_can_handle ... ok [INFO] [stdout] test core::endpoint::core::sender::tests::test_packet_builder_exceeds_mtu ... ok [INFO] [stdout] test core::endpoint::processing::operations::tests::test_processor_operations_fin_handling ... ok [INFO] [stdout] test core::endpoint::processing::operations::tests::test_endpoint_operations_basic_info ... ok [INFO] [stdout] test core::endpoint::processing::operations::tests::test_endpoint_operations_reliability_layer ... ok [INFO] [stdout] test core::endpoint::processing::operations::tests::test_processor_operations_ack_processing ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_calculate_next_wakeup_without_rto ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_calculate_next_wakeup_syn_received ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_calculate_next_wakeup_with_rto ... ok [INFO] [stdout] test core::endpoint::processing::operations::tests::test_endpoint_operations_state_management ... ok [INFO] [stdout] test core::endpoint::core::sender::tests::test_packet_builder_frame_larger_than_max_size ... ok [INFO] [stdout] test core::endpoint::processing::processors::path::tests::test_processor_name ... ok [INFO] [stdout] test core::endpoint::processing::processors::tests::test_frame_processor_routing ... ok [INFO] [stdout] test core::endpoint::tests::event_dispatcher::tests::test_event_dispatcher_frame_routing ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_check_connection_timeouts_idle_timeout ... ok [INFO] [stdout] test core::endpoint::processing::traits::tests::test_mock_endpoint_operations ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_check_connection_timeouts_no_timeout ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_fin_pending_eof_operations ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_should_trigger_timeout_handling ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_next_connection_timeout_deadline ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_time_until_next_timeout ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_timing_manager_with_start_time ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_timeout_debug_info ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_timing_manager_creation ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_timeout_event_enum ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_caller_side_performance ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_on_packet_received ... ok [INFO] [stdout] test core::endpoint::types::identity::tests::test_connection_identity_creation ... ok [INFO] [stdout] test core::endpoint::types::channels::tests::test_input_channel_status ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_unified_scheduler_cache_efficiency ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_unified_scheduler_performance ... ok [INFO] [stdout] test core::endpoint::types::channels::tests::test_channel_manager_creation ... ok [INFO] [stdout] test core::endpoint::types::identity::tests::test_connection_identity_matching ... ok [INFO] [stdout] test core::endpoint::types::channels::tests::test_user_stream_operations ... ok [INFO] [stdout] test core::endpoint::types::state::tests::test_connection_state_traits ... ok [INFO] [stdout] test core::endpoint::types::identity::tests::test_connection_identity_setters ... ok [INFO] [stdout] test core::endpoint::types::transport::tests::test_peer_window_operations ... ok [INFO] [stdout] test core::endpoint::types::transport::tests::test_transport_manager_with_window ... ok [INFO] [stdout] test core::endpoint::types::transport::tests::test_transport_stats ... ok [INFO] [stdout] test core::endpoint::types::transport::tests::test_transport_manager_creation ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_timing_state_updates ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_timing_manager_updates ... ok [INFO] [stdout] test core::endpoint::types::transport::tests::test_transport_manager_debug ... ok [INFO] [stdout] test core::endpoint::unified_scheduler::tests::test_cache_functionality ... ok [INFO] [stdout] test core::endpoint::unified_scheduler::tests::test_calculate_unified_deadline ... ok [INFO] [stdout] test core::endpoint::unified_scheduler::tests::test_statistics ... ok [INFO] [stdout] test core::endpoint::unified_scheduler::tests::test_cleanup_expired_data ... ok [INFO] [stdout] test core::endpoint::unified_scheduler::tests::test_prediction_with_insufficient_data ... ok [INFO] [stdout] test core::endpoint::lifecycle::transitions::tests::test_execute_invalid_transition ... ok [INFO] [stdout] test core::endpoint::unified_scheduler::tests::test_time_cache ... ok [INFO] [stdout] test core::endpoint::unified_scheduler::tests::test_unified_scheduler_creation ... ok [INFO] [stdout] test core::reliability::congestion::tests::test_vegas_avoidance_decrease_when_above_beta ... ok [INFO] [stdout] test core::reliability::congestion::tests::test_vegas_avoidance_increase_when_below_alpha ... ok [INFO] [stdout] test core::reliability::congestion::tests::test_vegas_avoidance_stable_between_alpha_beta ... ok [INFO] [stdout] test core::reliability::congestion::tests::test_vegas_initial_state ... ok [INFO] [stdout] test core::endpoint::unified_scheduler::tests::test_unified_timeout_check ... ok [INFO] [stdout] test core::reliability::congestion::tests::test_vegas_avoidance_decrease_clamp_to_min ... ok [INFO] [stdout] test core::reliability::congestion::tests::test_vegas_loss_with_no_rtt_sample ... ok [INFO] [stdout] test core::reliability::congestion::tests::test_vegas_min_rtt_tracking ... ok [INFO] [stdout] test core::reliability::congestion::tests::test_vegas_random_loss_clamp_to_min ... ok [INFO] [stdout] test core::reliability::congestion::tests::test_vegas_slow_start ... ok [INFO] [stdout] test core::reliability::congestion::tests::test_vegas_random_loss_reaction ... ok [INFO] [stdout] test core::reliability::packetizer::tests::test_packetize_prepend_frame ... ok [INFO] [stdout] test core::reliability::packetizer::tests::test_packetize_respects_cwnd ... ok [INFO] [stdout] test core::reliability::packetizer::tests::test_packetize_respects_flow_control ... ok [INFO] [stdout] test core::reliability::packetizer::tests::test_packetize_simple ... ok [INFO] [stdout] test core::reliability::packetizer::tests::test_packetize_zero_rtt_respects_congestion_window ... ok [INFO] [stdout] test core::reliability::congestion::tests::test_vegas_transition_to_congestion_avoidance ... ok [INFO] [stdout] test core::reliability::packetizer::tests::test_packetize_empty_buffer ... ok [INFO] [stdout] test core::reliability::packetizer::tests::test_packetize_zero_rtt_syn_ack_only ... ok [INFO] [stdout] test core::reliability::congestion::tests::test_vegas_congestive_loss_clamp_to_min ... ok [INFO] [stdout] test core::reliability::congestion::tests::test_vegas_congestive_loss_reaction ... ok [INFO] [stdout] test core::reliability::packetizer::tests::test_packetize_zero_rtt_syn_ack_with_data_multiple_packets ... ok [INFO] [stdout] test core::reliability::packetizer::tests::test_packetize_zero_rtt_syn_ack_with_data_single_packet ... ok [INFO] [stdout] test core::reliability::recv_buffer::tests::test_receive_duplicate_and_old_packets ... ok [INFO] [stdout] test core::reliability::recv_buffer::tests::test_receive_in_order_and_reassemble ... ok [INFO] [stdout] test core::reliability::recv_buffer::tests::test_sack_range_complex ... ok [INFO] [stdout] test core::reliability::recv_buffer::tests::test_sack_range_generation ... ok [INFO] [stdout] test core::reliability::retransmission::rtt::tests::test_rtt_estimator_min_rto_enforced ... ok [INFO] [stdout] test core::reliability::recv_buffer::tests::test_receive_out_of_order_and_reassemble ... ok [INFO] [stdout] test core::reliability::retransmission::rtt::tests::test_rtt_estimator_first_sample ... ok [INFO] [stdout] test core::reliability::recv_buffer::tests::test_receive_with_fin ... ok [INFO] [stdout] test core::reliability::retransmission::sack_manager::tests::test_encode_decode_sack_ranges ... ok [INFO] [stdout] test core::reliability::retransmission::sack_manager::tests::test_process_ack_cumulative_only ... ok [INFO] [stdout] test core::reliability::retransmission::sack_manager::tests::test_fast_retransmission ... ok [INFO] [stdout] test core::reliability::retransmission::sack_manager::tests::test_fast_retransmission_frame_reconstruction ... ok [INFO] [stdout] test core::reliability::retransmission::sack_manager::tests::test_should_send_standalone_ack ... ok [INFO] [stdout] test core::reliability::retransmission::rtt::tests::test_rtt_estimator_initialization ... ok [INFO] [stdout] test core::reliability::retransmission::sack_manager::tests::test_process_ack_with_sack ... ok [INFO] [stdout] test core::reliability::retransmission::rtt::tests::test_rtt_estimator_subsequent_samples ... ok [INFO] [stdout] test core::reliability::retransmission::sack_manager::tests::test_clear ... ok [INFO] [stdout] test core::reliability::retransmission::simple_retx_manager::tests::test_max_retries_reached ... ok [INFO] [stdout] test core::reliability::retransmission::simple_retx_manager::tests::test_retransmission_logic ... ok [INFO] [stdout] test core::reliability::retransmission::simple_retx_manager::tests::test_next_retransmission_deadline ... ok [INFO] [stdout] test core::reliability::retransmission::simple_retx_manager::tests::test_sack_acknowledgment ... ok [INFO] [stdout] test core::reliability::retransmission::tests::test_check_retransmission_timeouts_no_timeout ... ok [INFO] [stdout] test core::reliability::retransmission::tests::test_check_retransmission_timeouts_with_timeout ... ok [INFO] [stdout] test core::reliability::retransmission::tests::test_layered_retransmission_disabled ... ok [INFO] [stdout] test core::reliability::retransmission::tests::test_clear ... ok [INFO] [stdout] test core::reliability::retransmission::tests::test_frame_routing_to_correct_manager ... ok [INFO] [stdout] test core::reliability::retransmission::tests::test_next_retransmission_timeout_deadline ... ok [INFO] [stdout] test core::reliability::send_buffer::tests::test_capacity_limits ... ok [INFO] [stdout] test core::reliability::send_buffer::tests::test_stream_buffering_and_chunking ... ok [INFO] [stdout] test core::stream::tests::test_stream_eof ... ok [INFO] [stdout] test core::stream::tests::test_stream_read_into_small_buffers ... ok [INFO] [stdout] test core::reliability::retransmission::tests::test_layered_timeout_interface_consistency ... ok [INFO] [stdout] test core::reliability::retransmission::tests::test_unified_ack_processing ... ok [INFO] [stdout] test core::reliability::retransmission::tests::test_unified_retransmission_check ... ok [INFO] [stdout] test core::stream::tests::test_stream_read_multiple_chunks ... ok [INFO] [stdout] test core::stream::tests::test_stream_read_pre_buffered ... ok [INFO] [stdout] test core::stream::tests::test_stream_read_simple ... ok [INFO] [stdout] test core::reliability::retransmission::simple_retx_manager::tests::test_add_and_acknowledge_packet ... ok [INFO] [stdout] test core::reliability::retransmission::tests::test_next_retransmission_deadline ... ok [INFO] [stdout] test core::stream::tests::test_stream_read_multiple_sends ... ok [INFO] [stdout] test core::tests::reliability::test_server_0rtt_sends_data_correctly ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_check_idle_timeout ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_connection_timeout_deadline_after_activity ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_timeout_checks ... ok [INFO] [stdout] 2026-07-09T10:52:39.469964Z  INFO kestrel_protocol::core::tests::retransmission: --- RTO Recovery Test --- [INFO] [stdout] 2026-07-09T10:52:39.470008Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.470002Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=134 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.470010Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.470047Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2 remote_addr=127.0.0.1:1234 [INFO] [stdout] 2026-07-09T10:52:39.470055Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=134 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.470055Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.470019Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.470082Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.470083Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2 remote_addr=127.0.0.1:1234 [INFO] [stdout] 2026-07-09T10:52:39.470093Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.470091Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=1 remote_addr=127.0.0.1:5678 [INFO] [stdout] 2026-07-09T10:52:39.470095Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.470110Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.470123Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.470091Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=1 remote_addr=127.0.0.1:5678 [INFO] [stdout] 2026-07-09T10:52:39.470127Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=134 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.470131Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=1 remote_addr=127.0.0.1:5678 [INFO] [stdout] 2026-07-09T10:52:39.470169Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.470175Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.470144Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=134 remote_addr=127.0.0.1:9033 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 34, source_cid: 134 } } [INFO] [stdout] 2026-07-09T10:52:39.470180Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.470193Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=1 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.470207Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=134 [INFO] [stdout] 2026-07-09T10:52:39.470207Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2 remote_addr=127.0.0.1:1234 [INFO] [stdout] 2026-07-09T10:52:39.470210Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.470227Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=134 state=Established [INFO] [stdout] 2026-07-09T10:52:39.470224Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.470238Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.470263Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.470259Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=1 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.470277Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.470287Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=2 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.470288Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=34 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 34 } } [INFO] [stdout] 2026-07-09T10:52:39.470300Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=1 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.470317Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=34 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.470338Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=34 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 34, source_cid: 134 } } [INFO] [stdout] 2026-07-09T10:52:39.470357Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 34, source_cid: 134 } } [INFO] [stdout] 2026-07-09T10:52:39.470354Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.470368Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.470377Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=34 peer_cid=134 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.470384Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=1 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.470401Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.470406Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=1 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.470428Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 12345 } } [INFO] [stdout] 2026-07-09T10:52:39.470427Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.470434Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.470464Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.470462Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 12345 } } [INFO] [stdout] 2026-07-09T10:52:39.470472Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2 remote_addr=127.0.0.1:1234 [INFO] [stdout] 2026-07-09T10:52:39.470486Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=2 peer_cid=12345 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.470500Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-07-09T10:52:39.470503Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Received duplicate SYN, ignoring. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.470514Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=34 current_state=Connecting target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.470515Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.470518Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Push { header: ShortHeader { command: Push, connection_id: 0, payload_length: 11, recv_window_size: 1024, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"hello 0-rtt" } [INFO] [stdout] 2026-07-09T10:52:39.470531Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=34 from="Connecting" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.470540Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.470533Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.470544Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 0, payload_length: 11, recv_window_size: 1024, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"hello 0-rtt" } [INFO] [stdout] 2026-07-09T10:52:39.470555Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=34 peer_cid=134 [INFO] [stdout] 2026-07-09T10:52:39.470565Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=0 payload_len=11 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.470568Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2 remote_addr=127.0.0.1:1234 [INFO] [stdout] 2026-07-09T10:52:39.470572Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=34 frame=Push { header: ShortHeader { command: Push, connection_id: 34, payload_length: 4, recv_window_size: 256, timestamp: 3, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.470579Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.470584Z DEBUG kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in SynReceived state (0-RTT data) cid=2 seq=0 [INFO] [stdout] 2026-07-09T10:52:39.470591Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 34, payload_length: 4, recv_window_size: 256, timestamp: 3, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.470601Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.470610Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.470608Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=34 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-07-09T10:52:39.470615Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2 count=1 [INFO] [stdout] 2026-07-09T10:52:39.470638Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.470539Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=1 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.470680Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.470690Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=136 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.470701Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.470631Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.470123Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.470779Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.470785Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.470801Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.470816Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.470824Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.470834Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.470847Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=2 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.470844Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=36 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-07-09T10:52:39.470840Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.470642Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.470892Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=2 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.470906Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=2 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.470964Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.470970Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.471010Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.471016Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.471047Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.471057Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.471067Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.471090Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.470819Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.471096Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.471116Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=2 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.471125Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.471131Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 1, source_cid: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.471127Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2 remote_addr=127.0.0.1:1234 [INFO] [stdout] 2026-07-09T10:52:39.471163Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.471167Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=2 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.471179Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.471192Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.471206Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.471251Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 10, recv_window_size: 1024, timestamp: 100, sequence_number: 0, recv_next_sequence: 0 }, payload: b"final data" } [INFO] [stdout] 2026-07-09T10:52:39.471261Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.471307Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.471315Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=137 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.470860Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 12345, source_cid: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.471261Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.471343Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.471361Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.471363Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.471364Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=2 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.471379Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=2 peer_cid=1 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.471382Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.471393Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Received duplicate SYN, ignoring. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.471415Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.471438Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.471479Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.471489Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.471084Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.471521Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2 [INFO] [stdout] 2026-07-09T10:52:39.471535Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.471541Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.471565Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.471583Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=2 peer_cid=1 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.471597Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.471599Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Received duplicate SYN, ignoring. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.471609Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.471638Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=2 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.471658Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 1, source_cid: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.471091Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.471673Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.471690Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.471612Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.471746Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.471758Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] test core::tests::handshake::test_0rtt_handshake_with_client_data ... ok [INFO] [stdout] 2026-07-09T10:52:39.471006Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=2 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.471805Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=1 current_state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.471825Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Connecting" to="Closing" [INFO] [stdout] 2026-07-09T10:52:39.471845Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.471504Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.471901Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.471911Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.471931Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=2 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.471936Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.471940Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.471943Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 1, source_cid: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.471966Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 12345 } } [INFO] [stdout] 2026-07-09T10:52:39.472082Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 12345 } } [INFO] [stdout] 2026-07-09T10:52:39.472112Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=2 peer_cid=12345 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.472128Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Received duplicate SYN, ignoring. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.472128Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.472145Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.472157Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.472162Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=37 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-07-09T10:52:39.472186Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.472203Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.472210Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.472232Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.472242Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.472244Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.472257Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=2 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.472269Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 12345, source_cid: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.472311Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.470625Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=34 seq=0 payload_len=4 [INFO] [stdout] 2026-07-09T10:52:39.472341Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.472356Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=34 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 134, payload_length: 8, recv_window_size: 255, timestamp: 2, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.472392Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=34 [INFO] [stdout] 2026-07-09T10:52:39.472407Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=34 count=1 [INFO] [stdout] 2026-07-09T10:52:39.472410Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 21, recv_window_size: 1024, timestamp: 0, sequence_number: 10, recv_next_sequence: 0 }, payload: b"data from new address" } [INFO] [stdout] 2026-07-09T10:52:39.472440Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=34 state=Established [INFO] [stdout] 2026-07-09T10:52:39.472534Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Starting path validation cid=2 new_addr=127.0.0.1:9999 challenge_data=7692652882146881577 [INFO] [stdout] 2026-07-09T10:52:39.471977Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.471693Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2 remote_addr=127.0.0.1:1234 [INFO] [stdout] 2026-07-09T10:52:39.471979Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=138 remote_addr=127.0.0.1:9037 [INFO] [stdout] 2026-07-09T10:52:39.472593Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.472620Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=36 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.472307Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 10, recv_window_size: 1024, timestamp: 100, sequence_number: 0, recv_next_sequence: 0 }, payload: b"final data" } [INFO] [stdout] 2026-07-09T10:52:39.472658Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=0 payload_len=10 state=Established [INFO] [stdout] 2026-07-09T10:52:39.472693Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=0 payload_len=10 [INFO] [stdout] 2026-07-09T10:52:39.472694Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.472694Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.472719Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 2, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.471973Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.472768Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.472766Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Fin { header: ShortHeader { command: Fin, connection_id: 2, payload_length: 0, recv_window_size: 1024, timestamp: 101, sequence_number: 1, recv_next_sequence: 0 } } [INFO] [stdout] 2026-07-09T10:52:39.472792Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Fin { header: ShortHeader { command: Fin, connection_id: 2, payload_length: 0, recv_window_size: 1024, timestamp: 101, sequence_number: 1, recv_next_sequence: 0 } } [INFO] [stdout] 2026-07-09T10:52:39.472816Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.472271Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=37 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.472844Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.472727Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=2 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.472910Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.472925Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.472946Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=1 remote_addr=127.0.0.1:1234 [INFO] [stdout] 2026-07-09T10:52:39.472952Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=37 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.472986Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.473013Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=137 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.473015Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 1, source_cid: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.473026Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.473039Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 1, source_cid: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.473046Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.473049Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=1 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.471990Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.473071Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.473089Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Added packet to simple retransmission tracking seq=1 max_retries=5 retry_interval_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.473093Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=138 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.472572Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=Established target_state=ValidatingPath { new_addr: 127.0.0.1:9999, challenge_data: 7692652882146881577, notifier: Some(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: false, is_tx_task_set: false } }) }) } [INFO] [stdout] 2026-07-09T10:52:39.473111Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=2 first_frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 36, recv_window_size: 256, timestamp: 1, sequence_number: 0, recv_next_sequence: 0 }, payload: b"important data that must not be lost" } [INFO] [stdout] 2026-07-09T10:52:39.473131Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="Established" to="ValidatingPath" [INFO] [stdout] 2026-07-09T10:52:39.473146Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.473141Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.473184Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.472816Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=2 seq=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.473208Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Handling FIN in Established state cid=2 seq=1 [INFO] [stdout] 2026-07-09T10:52:39.473207Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=1 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.473249Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 254, timestamp: 3, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.473290Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.473304Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2 count=1 [INFO] [stdout] 2026-07-09T10:52:39.473304Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.473332Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=Established target_state=FinWait [INFO] [stdout] 2026-07-09T10:52:39.473339Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.473352Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="Established" to="FinWait" [INFO] [stdout] 2026-07-09T10:52:39.473359Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=1 current_state=Connecting target_state=Closed [INFO] [stdout] 2026-07-09T10:52:39.473176Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.473384Z  INFO kestrel_protocol::core::tests::retransmission: [Server] Sending probe to establish connection... [INFO] [stdout] 2026-07-09T10:52:39.473394Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Connecting" to="Closed" [INFO] [stdout] 2026-07-09T10:52:39.473397Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=2 delay_ms=30000 event_type=PathValidationTimeout [INFO] [stdout] 2026-07-09T10:52:39.473413Z DEBUG kestrel_protocol::core::reliability::retransmission: Cleared all in-flight packets from both SACK and simple retransmission managers. [INFO] [stdout] 2026-07-09T10:52:39.473427Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.473428Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.473455Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=1 [INFO] [stdout] 2026-07-09T10:52:39.473455Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 21, recv_window_size: 1024, timestamp: 0, sequence_number: 10, recv_next_sequence: 0 }, payload: b"data from new address" } [INFO] [stdout] 2026-07-09T10:52:39.473475Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.473520Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.473547Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=2 peer_cid=1 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.473566Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Received duplicate SYN, ignoring. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.473580Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.473595Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.473618Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.473630Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.473645Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="SynReceived" to="Established" [INFO] [stdout] test core::tests::shutdown::test_shutdown_when_connecting ... ok [INFO] [stdout] 2026-07-09T10:52:39.473668Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.473673Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=139 remote_addr=127.0.0.1:9038 [INFO] [stdout] 2026-07-09T10:52:39.473679Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.473694Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=2 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.473708Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 1, source_cid: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.473739Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.473757Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.473478Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=10 payload_len=21 state=ValidatingPath { new_addr: 127.0.0.1:9999, challenge_data: 7692652882146881577, notifier: None } [INFO] [stdout] 2026-07-09T10:52:39.473751Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=138 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.473783Z DEBUG kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH during path validation cid=2 seq=10 [INFO] [stdout] 2026-07-09T10:52:39.473813Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.473814Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 2, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\n\0\0\0\n" } [INFO] [stdout] 2026-07-09T10:52:39.473846Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.472539Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=34 [INFO] [stdout] 2026-07-09T10:52:39.473927Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.473951Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.473966Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-07-09T10:52:39.473977Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-07-09T10:52:39.473971Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=137 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.473979Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.473987Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-07-09T10:52:39.473995Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=137 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.473999Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-07-09T10:52:39.474000Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=1 remote_addr=127.0.0.1:5678 [INFO] [stdout] 2026-07-09T10:52:39.474011Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-07-09T10:52:39.474015Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.474022Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-07-09T10:52:39.474024Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.474029Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.474033Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-07-09T10:52:39.474036Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=137 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.474051Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.474049Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=137 remote_addr=127.0.0.1:9036 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 37, source_cid: 137 } } [INFO] [stdout] 2026-07-09T10:52:39.474074Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=137 [INFO] [stdout] 2026-07-09T10:52:39.474070Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=1 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.474089Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=137 state=Established [INFO] [stdout] 2026-07-09T10:52:39.474130Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.474143Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.474162Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=1 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.474205Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.474211Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2 [INFO] [stdout] 2026-07-09T10:52:39.474230Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=38 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-07-09T10:52:39.474266Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.474269Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.474288Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2 remote_addr=127.0.0.1:1234 [INFO] [stdout] 2026-07-09T10:52:39.474298Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.474321Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=38 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.474332Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.474358Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.474379Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.474384Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.474416Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.474419Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=38 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] test core::tests::handshake::test_1rtt_handshake_with_server_data ... 2026-07-09T10:52:39.473055Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=1 peer_cid=2 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.474436Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=2 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] ok [INFO] [stdout] 2026-07-09T10:52:39.474466Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.474497Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.474504Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.474528Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.474533Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=139 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.474540Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.473859Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=ValidatingPath { new_addr: 127.0.0.1:9999, challenge_data: 7692652882146881577, notifier: Some(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: true, is_rx_task_set: false, is_tx_task_set: false } }) }) } [INFO] [stdout] 2026-07-09T10:52:39.474562Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.474573Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-07-09T10:52:39.474578Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.474587Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=1 current_state=Connecting target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.474593Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=2 peer_cid=1 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.474606Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Received duplicate SYN, ignoring. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.474604Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Connecting" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.474617Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.474624Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.474628Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.474631Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=PathResponse { header: ShortHeader { command: PathResponse, connection_id: 2, payload_length: 8, recv_window_size: 0, timestamp: 0, sequence_number: 999, recv_next_sequence: 0 }, challenge_data: 7692652882146881577 } [INFO] [stdout] 2026-07-09T10:52:39.474644Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.474638Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 4, recv_window_size: 256, timestamp: 4, sequence_number: 0, recv_next_sequence: 0 }, payload: b"ping" } [INFO] [stdout] 2026-07-09T10:52:39.474659Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.474661Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PathProcessor" frame_type=PathResponse { header: ShortHeader { command: PathResponse, connection_id: 2, payload_length: 8, recv_window_size: 0, timestamp: 0, sequence_number: 999, recv_next_sequence: 0 }, challenge_data: 7692652882146881577 } [INFO] [stdout] 2026-07-09T10:52:39.474667Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=1 peer_cid=2 [INFO] [stdout] 2026-07-09T10:52:39.474676Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.474685Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=2 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.474684Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Push { header: ShortHeader { command: Push, connection_id: 1, payload_length: 4, recv_window_size: 256, timestamp: 1, sequence_number: 0, recv_next_sequence: 0 }, payload: b"pong" } [INFO] [stdout] 2026-07-09T10:52:39.474683Z DEBUG kestrel_protocol::core::endpoint::processing::processors::path: Processing PathResponse frame cid=2 seq=999 challenge_data=7692652882146881577 src_addr=127.0.0.1:9999 state=ValidatingPath { new_addr: 127.0.0.1:9999, challenge_data: 7692652882146881577, notifier: None } [INFO] [stdout] 2026-07-09T10:52:39.474696Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 1, source_cid: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.474702Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 1, payload_length: 4, recv_window_size: 256, timestamp: 1, sequence_number: 0, recv_next_sequence: 0 }, payload: b"pong" } [INFO] [stdout] 2026-07-09T10:52:39.474708Z  INFO kestrel_protocol::core::endpoint::processing::processors::path: Path validation successful, migrating connection cid=2 old_addr=127.0.0.1:1234 new_addr=127.0.0.1:9999 [INFO] [stdout] 2026-07-09T10:52:39.474723Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.474719Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=1 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-07-09T10:52:39.474725Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Completing path validation cid=2 success=true [INFO] [stdout] 2026-07-09T10:52:39.474735Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.474735Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=1 seq=0 payload_len=4 [INFO] [stdout] 2026-07-09T10:52:39.474738Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=ValidatingPath { new_addr: 127.0.0.1:9999, challenge_data: 7692652882146881577, notifier: Some(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: true, is_rx_task_set: false, is_tx_task_set: false } }) }) } target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.474764Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.474758Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 255, timestamp: 4, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.474763Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="ValidatingPath" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.474776Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.474781Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.474788Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.474793Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=1 count=1 [INFO] [stdout] 2026-07-09T10:52:39.474808Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.474815Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.474832Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.474846Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-07-09T10:52:39.473371Z TRACE kestrel_protocol::core::endpoint::core::event_loop: All data drained after FIN, closing user stream (sending EOF). cid=2 [INFO] [stdout] 2026-07-09T10:52:39.474905Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=FinWait [INFO] [stdout] 2026-07-09T10:52:39.474932Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 4, recv_window_size: 256, timestamp: 4, sequence_number: 0, recv_next_sequence: 0 }, payload: b"ping" } [INFO] [stdout] 2026-07-09T10:52:39.474960Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 4, recv_window_size: 256, timestamp: 4, sequence_number: 0, recv_next_sequence: 0 }, payload: b"ping" } [INFO] [stdout] 2026-07-09T10:52:39.474979Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-07-09T10:52:39.474988Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 1, source_cid: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.474997Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=0 payload_len=4 [INFO] [stdout] 2026-07-09T10:52:39.475027Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 1, source_cid: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.475023Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 4, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.475030Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 10, recv_window_size: 1024, timestamp: 100, sequence_number: 0, recv_next_sequence: 0 }, payload: b"final data" } [INFO] [stdout] 2026-07-09T10:52:39.475056Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 255, timestamp: 4, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.475062Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=1 peer_cid=2 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.475060Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 10, recv_window_size: 1024, timestamp: 100, sequence_number: 0, recv_next_sequence: 0 }, payload: b"final data" } [INFO] [stdout] 2026-07-09T10:52:39.475081Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=0 payload_len=10 state=FinWait [INFO] [stdout] 2026-07-09T10:52:39.475083Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 255, timestamp: 4, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.475101Z DEBUG kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in FinWait state cid=2 seq=0 [INFO] [stdout] 2026-07-09T10:52:39.475105Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.475105Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=2 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.475116Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.475123Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.475127Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2 [INFO] [stdout] 2026-07-09T10:52:39.475131Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=FinWait [INFO] [stdout] 2026-07-09T10:52:39.475143Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=2 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.475151Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-07-09T10:52:39.475162Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=1 current_state=Connecting target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.474863Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:9999 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 1, payload_length: 20, recv_window_size: 255, timestamp: 3, sequence_number: 2, recv_next_sequence: 0 }, payload: b"data after migration" } [INFO] [stdout] 2026-07-09T10:52:39.475181Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.475185Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Connecting" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.475198Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.475205Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=1 peer_cid=2 [INFO] [stdout] 2026-07-09T10:52:39.475203Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.475221Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Push { header: ShortHeader { command: Push, connection_id: 1, payload_length: 5, recv_window_size: 256, timestamp: 1, sequence_number: 0, recv_next_sequence: 0 }, payload: b"probe" } [INFO] [stdout] 2026-07-09T10:52:39.475224Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=3 srtt_ms=3 rttvar_ms=1 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.475245Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.475242Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 1, payload_length: 5, recv_window_size: 256, timestamp: 1, sequence_number: 0, recv_next_sequence: 0 }, payload: b"probe" } [INFO] [stdout] 2026-07-09T10:52:39.475258Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.475260Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=1 seq=0 payload_len=5 state=Established [INFO] [stdout] 2026-07-09T10:52:39.475276Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.475276Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=1 seq=0 payload_len=5 [INFO] [stdout] 2026-07-09T10:52:39.475289Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2 count=1 [INFO] [stdout] 2026-07-09T10:52:39.475315Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.475313Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2 [INFO] [stdout] 2026-07-09T10:52:39.475388Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=1 current_state=Established [INFO] [stdout] 2026-07-09T10:52:39.475298Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 255, timestamp: 5, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.475409Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Established" to="Closing" [INFO] [stdout] 2026-07-09T10:52:39.475432Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.475440Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.475454Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Added packet to simple retransmission tracking seq=1 max_retries=5 retry_interval_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.475456Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=1 count=1 [INFO] [stdout] 2026-07-09T10:52:39.475502Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.474048Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=34 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 134, payload_length: 1200, recv_window_size: 256, timestamp: 4, sequence_number: 0, recv_next_sequence: 1 }, payload: b"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" } [INFO] [stdout] 2026-07-09T10:52:39.475661Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.472728Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=36 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.475711Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=140 remote_addr=127.0.0.1:9039 [INFO] [stdout] 2026-07-09T10:52:39.475797Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=136 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.475832Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=136 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.475829Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=37 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 37 } } [INFO] [stdout] 2026-07-09T10:52:39.475857Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.475886Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] test core::tests::lifecycle::test_connection_migration ... ok [INFO] [stdout] 2026-07-09T10:52:39.475901Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=136 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.475915Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=136 remote_addr=127.0.0.1:9035 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 36, source_cid: 136 } } [INFO] [stdout] 2026-07-09T10:52:39.475954Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=136 [INFO] [stdout] 2026-07-09T10:52:39.475868Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=37 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.476020Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=37 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 37, source_cid: 137 } } [INFO] [stdout] 2026-07-09T10:52:39.476023Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 1, source_cid: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.476050Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 37, source_cid: 137 } } [INFO] [stdout] 2026-07-09T10:52:39.473291Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 36, recv_window_size: 256, timestamp: 1, sequence_number: 0, recv_next_sequence: 0 }, payload: b"important data that must not be lost" } [INFO] [stdout] 2026-07-09T10:52:39.476083Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=37 peer_cid=137 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.476092Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 36, recv_window_size: 256, timestamp: 1, sequence_number: 0, recv_next_sequence: 0 }, payload: b"important data that must not be lost" } [INFO] [stdout] 2026-07-09T10:52:39.476122Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=0 payload_len=36 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.476144Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.476147Z DEBUG kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in SynReceived state (0-RTT data) cid=2 seq=0 [INFO] [stdout] 2026-07-09T10:52:39.476188Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.476207Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Fin { header: ShortHeader { command: Fin, connection_id: 2, payload_length: 0, recv_window_size: 256, timestamp: 1, sequence_number: 1, recv_next_sequence: 0 } } [INFO] [stdout] 2026-07-09T10:52:39.476229Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Fin { header: ShortHeader { command: Fin, connection_id: 2, payload_length: 0, recv_window_size: 256, timestamp: 1, sequence_number: 1, recv_next_sequence: 0 } } [INFO] [stdout] 2026-07-09T10:52:39.476257Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=2 seq=1 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.476285Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Handling FIN in SynReceived state (0-RTT close) cid=2 seq=1 [INFO] [stdout] 2026-07-09T10:52:39.476331Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 254, timestamp: 5, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.476376Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=SynReceived target_state=FinWait [INFO] [stdout] 2026-07-09T10:52:39.476396Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="SynReceived" to="FinWait" [INFO] [stdout] 2026-07-09T10:52:39.476422Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.476455Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2 count=1 [INFO] [stdout] 2026-07-09T10:52:39.476482Z TRACE kestrel_protocol::core::endpoint::core::event_loop: All data drained after FIN, closing user stream (sending EOF). cid=2 [INFO] [stdout] 2026-07-09T10:52:39.476504Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=FinWait [INFO] [stdout] 2026-07-09T10:52:39.476613Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=1 [INFO] [stdout] 2026-07-09T10:52:39.476765Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2 [INFO] [stdout] 2026-07-09T10:52:39.476696Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 255, timestamp: 5, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.476836Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 255, timestamp: 5, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.476860Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=2 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.476903Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2 [INFO] [stdout] 2026-07-09T10:52:39.476924Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=2 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.476969Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.476986Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.477006Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=3 srtt_ms=3 rttvar_ms=1 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.477006Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.477024Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.477036Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.477054Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.477071Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.477143Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=139 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.477176Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.477201Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=1 remote_addr=127.0.0.1:5678 [INFO] [stdout] 2026-07-09T10:52:39.477236Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.477285Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.477295Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.477326Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=39 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-07-09T10:52:39.476236Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-07-09T10:52:39.477383Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.477386Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=37 current_state=Connecting target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.477411Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=37 from="Connecting" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.477443Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=37 peer_cid=137 [INFO] [stdout] 2026-07-09T10:52:39.477440Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.477461Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=37 frame=Push { header: ShortHeader { command: Push, connection_id: 37, payload_length: 4, recv_window_size: 256, timestamp: 4, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.477468Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=39 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.477489Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 37, payload_length: 4, recv_window_size: 256, timestamp: 4, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.477512Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=37 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-07-09T10:52:39.477535Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=37 seq=0 payload_len=4 [INFO] [stdout] 2026-07-09T10:52:39.477538Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.477558Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=37 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 137, payload_length: 8, recv_window_size: 255, timestamp: 5, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.477573Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=39 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.477588Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=37 [INFO] [stdout] 2026-07-09T10:52:39.477603Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=37 count=1 [INFO] [stdout] 2026-07-09T10:52:39.477634Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=37 state=Established [INFO] [stdout] 2026-07-09T10:52:39.475979Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=136 state=Established [INFO] [stdout] 2026-07-09T10:52:39.477723Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=36 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 36 } } [INFO] [stdout] 2026-07-09T10:52:39.477768Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=36 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.477766Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=138 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.477791Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=138 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.477828Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.477837Z  INFO kestrel_protocol::core::tests::retransmission: [Client] Handshake complete. [INFO] [stdout] 2026-07-09T10:52:39.477845Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.477851Z  INFO kestrel_protocol::core::tests::retransmission: [Client] Writing message... [INFO] [stdout] 2026-07-09T10:52:39.477327Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=1 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.477901Z  INFO kestrel_protocol::core::tests::retransmission: [Server] Reading message... [INFO] [stdout] 2026-07-09T10:52:39.477792Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=36 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 36, source_cid: 136 } } [INFO] [stdout] 2026-07-09T10:52:39.477936Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 36, source_cid: 136 } } [INFO] [stdout] 2026-07-09T10:52:39.477958Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=36 peer_cid=136 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.477969Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.477997Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.477990Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.477995Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.478012Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.478023Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=1 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.478035Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.478022Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 29, recv_window_size: 256, timestamp: 7, sequence_number: 0, recv_next_sequence: 1 }, payload: b"hello, this is a test message" } [INFO] [stdout] 2026-07-09T10:52:39.478063Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.478073Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-07-09T10:52:39.478086Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=36 current_state=Connecting target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.478105Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=36 from="Connecting" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.478142Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.478145Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=36 peer_cid=136 [INFO] [stdout] 2026-07-09T10:52:39.478153Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.478166Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2 remote_addr=127.0.0.1:1234 [INFO] [stdout] 2026-07-09T10:52:39.478165Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=36 frame=Push { header: ShortHeader { command: Push, connection_id: 36, payload_length: 4, recv_window_size: 256, timestamp: 7, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.478176Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2 remote_addr=127.0.0.1:1234 [INFO] [stdout] 2026-07-09T10:52:39.478186Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 36, payload_length: 4, recv_window_size: 256, timestamp: 7, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.478197Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.478205Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=36 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-07-09T10:52:39.478215Z  INFO kestrel_protocol::core::tests::retransmission: Intentionally dropping client data packet post-handshake seq=0 [INFO] [stdout] 2026-07-09T10:52:39.478222Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=36 seq=0 payload_len=4 [INFO] [stdout] 2026-07-09T10:52:39.478232Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.478246Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=36 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 136, payload_length: 8, recv_window_size: 255, timestamp: 7, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.478249Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.478254Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=2 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.478278Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=36 [INFO] [stdout] 2026-07-09T10:52:39.477866Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=138 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.478311Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=36 count=1 [INFO] [stdout] 2026-07-09T10:52:39.478310Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=138 remote_addr=127.0.0.1:9037 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 38, source_cid: 138 } } [INFO] [stdout] 2026-07-09T10:52:39.478352Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=36 state=Established [INFO] [stdout] 2026-07-09T10:52:39.478380Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=138 [INFO] [stdout] 2026-07-09T10:52:39.478343Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.478440Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Syn { header: LongHeader { command: Syn, protocol_version: 0, destination_cid: 2, source_cid: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.478457Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 0, destination_cid: 2, source_cid: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.478459Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=36 [INFO] [stdout] 2026-07-09T10:52:39.478474Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=2 peer_cid=1 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.478485Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.478493Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Received duplicate SYN, ignoring. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.478499Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.478505Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.478511Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-07-09T10:52:39.478402Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=138 state=Established [INFO] [stdout] 2026-07-09T10:52:39.478537Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-07-09T10:52:39.478557Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-07-09T10:52:39.478568Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-07-09T10:52:39.478516Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.478573Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=37 [INFO] [stdout] 2026-07-09T10:52:39.478647Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.475570Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=34 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 134, payload_length: 1200, recv_window_size: 256, timestamp: 4, sequence_number: 1, recv_next_sequence: 1 }, payload: b"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" } [INFO] [stdout] 2026-07-09T10:52:39.478667Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.478702Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-07-09T10:52:39.478712Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-07-09T10:52:39.478722Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-07-09T10:52:39.478739Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-07-09T10:52:39.478750Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-07-09T10:52:39.478768Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-07-09T10:52:39.478778Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-07-09T10:52:39.478711Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=34 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 134, payload_length: 1200, recv_window_size: 256, timestamp: 4, sequence_number: 2, recv_next_sequence: 1 }, payload: b"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" } [INFO] [stdout] 2026-07-09T10:52:39.478791Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=37 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 137, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 0, recv_next_sequence: 1 }, payload: b"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" } [INFO] [stdout] 2026-07-09T10:52:39.478830Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=34 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 134, payload_length: 1200, recv_window_size: 256, timestamp: 4, sequence_number: 3, recv_next_sequence: 1 }, payload: b"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" } [INFO] [stdout] 2026-07-09T10:52:39.478945Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=37 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 137, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 1, recv_next_sequence: 1 }, payload: b"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" } [INFO] [stdout] 2026-07-09T10:52:39.478960Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=34 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 134, payload_length: 1200, recv_window_size: 256, timestamp: 4, sequence_number: 4, recv_next_sequence: 1 }, payload: b"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" } [INFO] [stdout] 2026-07-09T10:52:39.479070Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=37 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 137, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 2, recv_next_sequence: 1 }, payload: b"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" } [INFO] [stdout] 2026-07-09T10:52:39.479074Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=34 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 134, payload_length: 1200, recv_window_size: 256, timestamp: 4, sequence_number: 5, recv_next_sequence: 1 }, payload: b"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" } [INFO] [stdout] 2026-07-09T10:52:39.479183Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=37 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 137, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 3, recv_next_sequence: 1 }, payload: b"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" } [INFO] [stdout] 2026-07-09T10:52:39.479189Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=34 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 134, payload_length: 1200, recv_window_size: 256, timestamp: 4, sequence_number: 6, recv_next_sequence: 1 }, payload: b"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" } [INFO] [stdout] 2026-07-09T10:52:39.479291Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=37 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 137, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 4, recv_next_sequence: 1 }, payload: b"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" } [INFO] [stdout] 2026-07-09T10:52:39.479300Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=34 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 134, payload_length: 1200, recv_window_size: 256, timestamp: 4, sequence_number: 7, recv_next_sequence: 1 }, payload: b"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" } [INFO] [stdout] 2026-07-09T10:52:39.479410Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=34 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 134, payload_length: 640, recv_window_size: 256, timestamp: 4, sequence_number: 8, recv_next_sequence: 1 }, payload: b"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" } [INFO] [stdout] 2026-07-09T10:52:39.479403Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=37 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 137, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 5, recv_next_sequence: 1 }, payload: b"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" } [INFO] [stdout] 2026-07-09T10:52:39.479505Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=34 state=Established [INFO] [stdout] 2026-07-09T10:52:39.479506Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=37 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 137, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 6, recv_next_sequence: 1 }, payload: b"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" } [INFO] [stdout] 2026-07-09T10:52:39.479589Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=38 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 38 } } [INFO] [stdout] 2026-07-09T10:52:39.479623Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=38 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.479651Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=38 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 38, source_cid: 138 } } [INFO] [stdout] 2026-07-09T10:52:39.479678Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 38, source_cid: 138 } } [INFO] [stdout] 2026-07-09T10:52:39.479702Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=38 peer_cid=138 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.479608Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=37 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 137, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 7, recv_next_sequence: 1 }, payload: b"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" } [INFO] [stdout] 2026-07-09T10:52:39.479730Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=37 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 137, payload_length: 640, recv_window_size: 256, timestamp: 6, sequence_number: 8, recv_next_sequence: 1 }, payload: b"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" } [INFO] [stdout] 2026-07-09T10:52:39.479808Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=37 state=Established [INFO] [stdout] 2026-07-09T10:52:39.478596Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-07-09T10:52:39.480017Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-07-09T10:52:39.480037Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-07-09T10:52:39.480059Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=36 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 136, payload_length: 1200, recv_window_size: 256, timestamp: 7, sequence_number: 0, recv_next_sequence: 1 }, payload: b"################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################" } [INFO] [stdout] 2026-07-09T10:52:39.480263Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.480190Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=36 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 136, payload_length: 1200, recv_window_size: 256, timestamp: 7, sequence_number: 1, recv_next_sequence: 1 }, payload: b"################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################" } [INFO] [stdout] 2026-07-09T10:52:39.480301Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.480339Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-07-09T10:52:39.480359Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=38 current_state=Connecting target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.480377Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=38 from="Connecting" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.480302Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=36 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 136, payload_length: 1200, recv_window_size: 256, timestamp: 7, sequence_number: 2, recv_next_sequence: 1 }, payload: b"################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################" } [INFO] [stdout] 2026-07-09T10:52:39.480401Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=38 peer_cid=138 [INFO] [stdout] 2026-07-09T10:52:39.480418Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=38 frame=Push { header: ShortHeader { command: Push, connection_id: 38, payload_length: 4, recv_window_size: 256, timestamp: 5, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.480445Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 38, payload_length: 4, recv_window_size: 256, timestamp: 5, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.480465Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=38 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-07-09T10:52:39.480488Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=38 seq=0 payload_len=4 [INFO] [stdout] 2026-07-09T10:52:39.480413Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=36 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 136, payload_length: 1200, recv_window_size: 256, timestamp: 7, sequence_number: 3, recv_next_sequence: 1 }, payload: b"################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################" } [INFO] [stdout] test core::tests::shutdown::test_data_is_fully_read_before_shutdown_eof ... ok [INFO] [stdout] 2026-07-09T10:52:39.480514Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=38 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 138, payload_length: 8, recv_window_size: 255, timestamp: 6, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.480645Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=38 [INFO] [stdout] 2026-07-09T10:52:39.475479Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Fin { header: ShortHeader { command: Fin, connection_id: 2, payload_length: 0, recv_window_size: 256, timestamp: 5, sequence_number: 1, recv_next_sequence: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.480689Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=38 count=1 [INFO] [stdout] 2026-07-09T10:52:39.480698Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.480721Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=38 state=Established [INFO] [stdout] 2026-07-09T10:52:39.478280Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.480788Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.480820Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=38 [INFO] [stdout] 2026-07-09T10:52:39.480822Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.480851Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.480865Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=2 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.480894Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.480909Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-07-09T10:52:39.480921Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-07-09T10:52:39.480932Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-07-09T10:52:39.480944Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-07-09T10:52:39.480955Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-07-09T10:52:39.480973Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-07-09T10:52:39.480983Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-07-09T10:52:39.481032Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.481067Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.480998Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=38 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 138, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 0, recv_next_sequence: 1 }, payload: b"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" } [INFO] [stdout] 2026-07-09T10:52:39.476052Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 1, source_cid: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.481086Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.481118Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=1 peer_cid=2 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.481127Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=2 peer_cid=1 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.481145Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Received duplicate SYN, ignoring. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.481159Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.481181Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.481182Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.481205Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.481207Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.481224Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.481244Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-07-09T10:52:39.481245Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.481254Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=1 current_state=Connecting target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.481257Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=2 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.481270Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Connecting" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.481271Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 1, source_cid: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.481289Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.481302Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.481303Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 5, recv_window_size: 256, timestamp: 7, sequence_number: 0, recv_next_sequence: 0 }, payload: b"hello" } [INFO] [stdout] 2026-07-09T10:52:39.481318Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.481332Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=1 peer_cid=2 [INFO] [stdout] 2026-07-09T10:52:39.481357Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.481357Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.481374Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.481487Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.481486Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=38 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 138, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 1, recv_next_sequence: 1 }, payload: b"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" } [INFO] [stdout] 2026-07-09T10:52:39.481588Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 4, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.481615Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 4, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.481644Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=1 recv_next_seq=0 recv_window=255 payload_len=8 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.481675Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Closing state cid=1 [INFO] [stdout] 2026-07-09T10:52:39.481692Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=1 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.481617Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=38 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 138, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 2, recv_next_sequence: 1 }, payload: b"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" } [INFO] [stdout] 2026-07-09T10:52:39.481735Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.481763Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.481788Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=6 srtt_ms=6 rttvar_ms=3 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.481805Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.481816Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.481736Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=38 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 138, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 3, recv_next_sequence: 1 }, payload: b"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" } [INFO] [stdout] 2026-07-09T10:52:39.481839Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.477638Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.481938Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.481845Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=38 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 138, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 4, recv_next_sequence: 1 }, payload: b"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" } [INFO] [stdout] 2026-07-09T10:52:39.481974Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=140 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.481376Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.481984Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=38 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 138, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 5, recv_next_sequence: 1 }, payload: b"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" } [INFO] [stdout] 2026-07-09T10:52:39.482100Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 5, recv_window_size: 256, timestamp: 7, sequence_number: 0, recv_next_sequence: 0 }, payload: b"hello" } [INFO] [stdout] 2026-07-09T10:52:39.482137Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 5, recv_window_size: 256, timestamp: 7, sequence_number: 0, recv_next_sequence: 0 }, payload: b"hello" } [INFO] [stdout] 2026-07-09T10:52:39.482163Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=0 payload_len=5 state=Established [INFO] [stdout] 2026-07-09T10:52:39.482186Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=0 payload_len=5 [INFO] [stdout] 2026-07-09T10:52:39.482106Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=38 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 138, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 6, recv_next_sequence: 1 }, payload: b"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" } [INFO] [stdout] 2026-07-09T10:52:39.482216Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 7, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.482255Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.482271Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2 count=1 [INFO] [stdout] 2026-07-09T10:52:39.482296Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.482217Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=38 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 138, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 7, recv_next_sequence: 1 }, payload: b"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" } [INFO] [stdout] 2026-07-09T10:52:39.482377Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=1 current_state=Established [INFO] [stdout] 2026-07-09T10:52:39.482421Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Established" to="Closing" [INFO] [stdout] 2026-07-09T10:52:39.482459Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.482474Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Added packet to simple retransmission tracking seq=1 max_retries=5 retry_interval_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.482499Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Fin { header: ShortHeader { command: Fin, connection_id: 2, payload_length: 0, recv_window_size: 256, timestamp: 8, sequence_number: 1, recv_next_sequence: 0 } } [INFO] [stdout] 2026-07-09T10:52:39.482535Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.482563Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.482604Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 1, source_cid: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.482640Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 1, source_cid: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.482665Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=1 peer_cid=2 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.482706Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=139 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.482716Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.482750Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=139 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.482772Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.482784Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.482796Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.482817Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-07-09T10:52:39.482844Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=1 current_state=Connecting target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.482901Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Connecting" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.482932Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.482948Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 5, recv_window_size: 256, timestamp: 5, sequence_number: 0, recv_next_sequence: 0 }, payload: b"hello" } [INFO] [stdout] 2026-07-09T10:52:39.482994Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=1 peer_cid=2 [INFO] [stdout] 2026-07-09T10:52:39.483018Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.483033Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.483051Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.483078Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=141 remote_addr=127.0.0.1:9040 [INFO] [stdout] 2026-07-09T10:52:39.482331Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=38 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 138, payload_length: 640, recv_window_size: 256, timestamp: 6, sequence_number: 8, recv_next_sequence: 1 }, payload: b"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" } [INFO] [stdout] 2026-07-09T10:52:39.483166Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=38 state=Established [INFO] [stdout] 2026-07-09T10:52:39.483245Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=140 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.483373Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.483408Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=40 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-07-09T10:52:39.483457Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.483493Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.482816Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=139 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.483604Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=139 remote_addr=127.0.0.1:9038 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 39, source_cid: 139 } } [INFO] [stdout] 2026-07-09T10:52:39.483644Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=139 [INFO] [stdout] 2026-07-09T10:52:39.483661Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=139 state=Established [INFO] [stdout] 2026-07-09T10:52:39.483703Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.483736Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.483762Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=141 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.483840Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=39 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 39 } } [INFO] [stdout] 2026-07-09T10:52:39.484535Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=39 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.484564Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=39 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 39, source_cid: 139 } } [INFO] [stdout] 2026-07-09T10:52:39.484584Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 39, source_cid: 139 } } [INFO] [stdout] 2026-07-09T10:52:39.484605Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=39 peer_cid=139 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.484676Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.484705Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.484746Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-07-09T10:52:39.484761Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=39 current_state=Connecting target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.484781Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=39 from="Connecting" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.484808Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=39 peer_cid=139 [INFO] [stdout] 2026-07-09T10:52:39.484827Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=39 frame=Push { header: ShortHeader { command: Push, connection_id: 39, payload_length: 4, recv_window_size: 256, timestamp: 9, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.484849Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 39, payload_length: 4, recv_window_size: 256, timestamp: 9, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.485058Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.485102Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=142 remote_addr=127.0.0.1:9041 [INFO] [stdout] 2026-07-09T10:52:39.481866Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.480715Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.480555Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=36 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 136, payload_length: 1200, recv_window_size: 256, timestamp: 7, sequence_number: 4, recv_next_sequence: 1 }, payload: b"################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################" } [INFO] [stdout] 2026-07-09T10:52:39.485197Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Fin { header: ShortHeader { command: Fin, connection_id: 2, payload_length: 0, recv_window_size: 256, timestamp: 5, sequence_number: 1, recv_next_sequence: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.485223Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Fin { header: ShortHeader { command: Fin, connection_id: 2, payload_length: 0, recv_window_size: 256, timestamp: 5, sequence_number: 1, recv_next_sequence: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.485242Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=2 seq=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.485258Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Handling FIN in Established state cid=2 seq=1 [INFO] [stdout] 2026-07-09T10:52:39.485290Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 14, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.485220Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=36 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 136, payload_length: 1200, recv_window_size: 256, timestamp: 7, sequence_number: 5, recv_next_sequence: 1 }, payload: b"################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################" } [INFO] [stdout] 2026-07-09T10:52:39.485323Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.485343Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=Established target_state=FinWait [INFO] [stdout] 2026-07-09T10:52:39.485369Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="Established" to="FinWait" [INFO] [stdout] 2026-07-09T10:52:39.485389Z TRACE kestrel_protocol::core::endpoint::core::event_loop: All data drained after FIN, closing user stream (sending EOF). cid=2 [INFO] [stdout] 2026-07-09T10:52:39.485407Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=FinWait [INFO] [stdout] 2026-07-09T10:52:39.485342Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=36 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 136, payload_length: 1200, recv_window_size: 256, timestamp: 7, sequence_number: 6, recv_next_sequence: 1 }, payload: b"################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################" } [INFO] [stdout] 2026-07-09T10:52:39.485451Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=36 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 136, payload_length: 1200, recv_window_size: 256, timestamp: 7, sequence_number: 7, recv_next_sequence: 1 }, payload: b"################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################" } [INFO] [stdout] 2026-07-09T10:52:39.485540Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=2 current_state=FinWait [INFO] [stdout] 2026-07-09T10:52:39.485568Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="FinWait" to="Closing" [INFO] [stdout] 2026-07-09T10:52:39.485589Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.485604Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Added packet to simple retransmission tracking seq=1 max_retries=5 retry_interval_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.485747Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.485771Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=1 remote_addr=127.0.0.1:5678 [INFO] [stdout] 2026-07-09T10:52:39.485757Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 7, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.485805Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.485799Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 7, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.485821Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=1 recv_next_seq=0 recv_window=255 payload_len=8 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.485841Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Closing state cid=1 [INFO] [stdout] 2026-07-09T10:52:39.485857Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=1 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.484224Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 5, recv_window_size: 256, timestamp: 5, sequence_number: 0, recv_next_sequence: 0 }, payload: b"hello" } [INFO] [stdout] 2026-07-09T10:52:39.485908Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.485909Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 5, recv_window_size: 256, timestamp: 5, sequence_number: 0, recv_next_sequence: 0 }, payload: b"hello" } [INFO] [stdout] 2026-07-09T10:52:39.485932Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.485933Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=0 payload_len=5 state=Established [INFO] [stdout] 2026-07-09T10:52:39.485953Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=4 srtt_ms=4 rttvar_ms=2 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.485961Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=0 payload_len=5 [INFO] [stdout] 2026-07-09T10:52:39.485973Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.485987Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.485987Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 7, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.486007Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.486023Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.486027Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.486039Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2 count=1 [INFO] [stdout] 2026-07-09T10:52:39.486065Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.486068Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Fin { header: ShortHeader { command: Fin, connection_id: 2, payload_length: 0, recv_window_size: 256, timestamp: 8, sequence_number: 1, recv_next_sequence: 0 } } [INFO] [stdout] 2026-07-09T10:52:39.486089Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Fin { header: ShortHeader { command: Fin, connection_id: 2, payload_length: 0, recv_window_size: 256, timestamp: 8, sequence_number: 1, recv_next_sequence: 0 } } [INFO] [stdout] 2026-07-09T10:52:39.486105Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=2 seq=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.486119Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Handling FIN in Established state cid=2 seq=1 [INFO] [stdout] 2026-07-09T10:52:39.486140Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 11, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.486159Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 7, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.486176Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.486183Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 7, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.486193Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=Established target_state=FinWait [INFO] [stdout] 2026-07-09T10:52:39.486205Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=1 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.486210Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="Established" to="FinWait" [INFO] [stdout] 2026-07-09T10:52:39.486222Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=1 [INFO] [stdout] 2026-07-09T10:52:39.486233Z TRACE kestrel_protocol::core::endpoint::core::event_loop: All data drained after FIN, closing user stream (sending EOF). cid=2 [INFO] [stdout] 2026-07-09T10:52:39.486234Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=1 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.486250Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=FinWait [INFO] [stdout] 2026-07-09T10:52:39.486259Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.486274Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.486290Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=3 srtt_ms=3 rttvar_ms=1 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.486305Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.486314Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.486328Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.486341Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.486370Z  INFO kestrel_protocol::core::endpoint::core::handlers: Actively migrating to new address. cid=1 new_addr=127.0.0.1:9999 [INFO] [stdout] 2026-07-09T10:52:39.486381Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=1 [INFO] [stdout] 2026-07-09T10:52:39.486426Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Starting path validation cid=1 new_addr=127.0.0.1:9999 challenge_data=6848514549050257855 [INFO] [stdout] 2026-07-09T10:52:39.486441Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=1 current_state=Established target_state=ValidatingPath { new_addr: 127.0.0.1:9999, challenge_data: 6848514549050257855, notifier: Some(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: false, is_tx_task_set: false } }) }) } [INFO] [stdout] 2026-07-09T10:52:39.486456Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2 [INFO] [stdout] 2026-07-09T10:52:39.486463Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Established" to="ValidatingPath" [INFO] [stdout] 2026-07-09T10:52:39.486489Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.486500Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=ValidatingPath { new_addr: 127.0.0.1:9999, challenge_data: 6848514549050257855, notifier: Some(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: false, is_tx_task_set: false } }) }) } [INFO] [stdout] 2026-07-09T10:52:39.485854Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.486573Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=1 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.486651Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.486672Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=1 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] test core::tests::shutdown::test_shutdown_when_established ... ok [INFO] [stdout] 2026-07-09T10:52:39.486747Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=39 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-07-09T10:52:39.486775Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=39 seq=0 payload_len=4 [INFO] [stdout] 2026-07-09T10:52:39.486790Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.486799Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=39 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 139, payload_length: 8, recv_window_size: 255, timestamp: 9, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.486812Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2 remote_addr=127.0.0.1:1234 [INFO] [stdout] 2026-07-09T10:52:39.486833Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=39 [INFO] [stdout] 2026-07-09T10:52:39.486848Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=39 count=1 [INFO] [stdout] 2026-07-09T10:52:39.484492Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=40 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.486861Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.486942Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.486952Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.486983Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.487007Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.487029Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=2 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.487074Z TRACE mio::poll: registering event source with poller: token=Token(136413798565248), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.487103Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-07-09T10:52:39.487141Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.487151Z TRACE mio::poll: registering event source with poller: token=Token(136413798522496), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.487166Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.487186Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.487201Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=2 peer_cid=1 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.487216Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Received duplicate SYN, ignoring. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.487230Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.487243Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.487274Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.487291Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.487315Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.487326Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.487325Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.487340Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=2 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.487345Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-07-09T10:52:39.487362Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.487359Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 1, source_cid: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.487384Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:46455) [INFO] [stdout] 2026-07-09T10:52:39.487389Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.487430Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.485624Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Fin { header: ShortHeader { command: Fin, connection_id: 1, payload_length: 0, recv_window_size: 256, timestamp: 14, sequence_number: 1, recv_next_sequence: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.487471Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.487481Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.487493Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.487495Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=40 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.487506Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.487516Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.487544Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 14, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.487576Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 14, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.487585Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=140 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.487600Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=1 recv_next_seq=1 recv_window=255 payload_len=8 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.487609Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=140 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.487609Z TRACE mio::poll: registering event source with poller: token=Token(136413798607104), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.487619Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Closing state cid=1 [INFO] [stdout] 2026-07-09T10:52:39.487632Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.487633Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=1 recv_next_seq=1 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.487642Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.487656Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=140 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.487667Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Packet acknowledged by SACK seq=1 [INFO] [stdout] 2026-07-09T10:52:39.487678Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=140 remote_addr=127.0.0.1:9039 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 40, source_cid: 140 } } [INFO] [stdout] 2026-07-09T10:52:39.487682Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=1 sack_ranges_count=1 sack_acked_count=0 simple_acked_count=1 rtt_samples_count=0 [INFO] [stdout] 2026-07-09T10:52:39.487703Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.487706Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=140 [INFO] [stdout] 2026-07-09T10:52:39.487721Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=2 [INFO] [stdout] 2026-07-09T10:52:39.487726Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=140 state=Established [INFO] [stdout] 2026-07-09T10:52:39.487788Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=40 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 40 } } [INFO] [stdout] 2026-07-09T10:52:39.487801Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.487827Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Added packet to simple retransmission tracking seq=2 max_retries=5 retry_interval_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.487839Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=40 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.487849Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-07-09T10:52:39.487860Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.487858Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=40 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 40, source_cid: 140 } } [INFO] [stdout] 2026-07-09T10:52:39.487863Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Fin { header: ShortHeader { command: Fin, connection_id: 2, payload_length: 0, recv_window_size: 256, timestamp: 17, sequence_number: 2, recv_next_sequence: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.487896Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 40, source_cid: 140 } } [INFO] [stdout] 2026-07-09T10:52:39.487899Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:47341) [INFO] [stdout] 2026-07-09T10:52:39.487913Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=40 peer_cid=140 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.487920Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.487929Z  INFO kestrel_protocol::core::tests::state: [Client] Connecting A... [INFO] [stdout] 2026-07-09T10:52:39.487958Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-07-09T10:52:39.487967Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.487979Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-07-09T10:52:39.487984Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.488011Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.488016Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-07-09T10:52:39.488026Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=40 current_state=Connecting target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.488019Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Fin { header: ShortHeader { command: Fin, connection_id: 1, payload_length: 0, recv_window_size: 256, timestamp: 14, sequence_number: 1, recv_next_sequence: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.488042Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=40 from="Connecting" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.488046Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Fin { header: ShortHeader { command: Fin, connection_id: 1, payload_length: 0, recv_window_size: 256, timestamp: 14, sequence_number: 1, recv_next_sequence: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.488058Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=40 peer_cid=140 [INFO] [stdout] 2026-07-09T10:52:39.488067Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=1 seq=1 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.488074Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=40 frame=Push { header: ShortHeader { command: Push, connection_id: 40, payload_length: 4, recv_window_size: 256, timestamp: 11, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.488087Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Handling FIN in Closing state cid=1 seq=1 [INFO] [stdout] 2026-07-09T10:52:39.488095Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 40, payload_length: 4, recv_window_size: 256, timestamp: 11, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.488101Z  INFO kestrel_protocol::core::tests::state: [Server] Waiting for conn A [INFO] [stdout] 2026-07-09T10:52:39.488112Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=40 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-07-09T10:52:39.488119Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-07-09T10:52:39.488110Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 255, timestamp: 17, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.488127Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=40 seq=0 payload_len=4 [INFO] [stdout] 2026-07-09T10:52:39.488132Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-07-09T10:52:39.488142Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=1 current_state=Closing target_state=ClosingWait [INFO] [stdout] 2026-07-09T10:52:39.488161Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.488161Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Closing" to="ClosingWait" [INFO] [stdout] 2026-07-09T10:52:39.488163Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=40 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 140, payload_length: 8, recv_window_size: 255, timestamp: 4, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.488178Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.488192Z TRACE kestrel_protocol::core::endpoint::core::event_loop: All data drained after FIN, closing user stream (sending EOF). cid=1 [INFO] [stdout] 2026-07-09T10:52:39.488193Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=40 [INFO] [stdout] 2026-07-09T10:52:39.488207Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=40 count=1 [INFO] [stdout] 2026-07-09T10:52:39.488211Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=ClosingWait [INFO] [stdout] 2026-07-09T10:52:39.488230Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=40 state=Established [INFO] [stdout] 2026-07-09T10:52:39.488250Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Fin { header: ShortHeader { command: Fin, connection_id: 2, payload_length: 0, recv_window_size: 256, timestamp: 17, sequence_number: 2, recv_next_sequence: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.488272Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Fin { header: ShortHeader { command: Fin, connection_id: 2, payload_length: 0, recv_window_size: 256, timestamp: 17, sequence_number: 2, recv_next_sequence: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.488286Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=3788118680 [INFO] [stdout] 2026-07-09T10:52:39.488290Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=2 seq=2 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.488302Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=141 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.488305Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Handling FIN in Closing state cid=2 seq=2 [INFO] [stdout] 2026-07-09T10:52:39.488318Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=3788118680 remote_addr=127.0.0.1:46455 [INFO] [stdout] 2026-07-09T10:52:39.488328Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.488347Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.488350Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=40 [INFO] [stdout] 2026-07-09T10:52:39.488371Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.488375Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.488394Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.488408Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-07-09T10:52:39.488404Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=3788118680 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.488419Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-07-09T10:52:39.488431Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-07-09T10:52:39.488442Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-07-09T10:52:39.488454Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-07-09T10:52:39.488464Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-07-09T10:52:39.488474Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-07-09T10:52:39.488495Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.488522Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=3788118680 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.488488Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=40 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 140, payload_length: 1200, recv_window_size: 256, timestamp: 4, sequence_number: 0, recv_next_sequence: 1 }, payload: b"''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''" } [INFO] [stdout] 2026-07-09T10:52:39.488611Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.488650Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=41 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-07-09T10:52:39.488692Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.488625Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=40 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 140, payload_length: 1200, recv_window_size: 256, timestamp: 4, sequence_number: 1, recv_next_sequence: 1 }, payload: b"''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''" } [INFO] [stdout] 2026-07-09T10:52:39.488710Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 1, source_cid: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.488729Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.488740Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 1, source_cid: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.488759Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=1 peer_cid=2 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.488763Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=41 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.488813Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.488736Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=40 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 140, payload_length: 1200, recv_window_size: 256, timestamp: 4, sequence_number: 2, recv_next_sequence: 1 }, payload: b"''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''" } [INFO] [stdout] 2026-07-09T10:52:39.488834Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.488839Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.488892Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-07-09T10:52:39.488905Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=39 state=Established [INFO] [stdout] 2026-07-09T10:52:39.488906Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=1 current_state=Connecting target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.488927Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Connecting" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.488951Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.488969Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 4, recv_window_size: 256, timestamp: 3, sequence_number: 0, recv_next_sequence: 0 }, payload: b"ping" } [INFO] [stdout] 2026-07-09T10:52:39.488989Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.489003Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=1 peer_cid=2 [INFO] [stdout] 2026-07-09T10:52:39.489001Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=PathChallenge { header: ShortHeader { command: PathChallenge, connection_id: 2, payload_length: 8, recv_window_size: 0, timestamp: 9, sequence_number: 1, recv_next_sequence: 0 }, challenge_data: 6848514549050257855 } [INFO] [stdout] 2026-07-09T10:52:39.489021Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Push { header: ShortHeader { command: Push, connection_id: 1, payload_length: 4, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"pong" } [INFO] [stdout] 2026-07-09T10:52:39.489029Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.489033Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PathProcessor" frame_type=PathChallenge { header: ShortHeader { command: PathChallenge, connection_id: 2, payload_length: 8, recv_window_size: 0, timestamp: 9, sequence_number: 1, recv_next_sequence: 0 }, challenge_data: 6848514549050257855 } [INFO] [stdout] 2026-07-09T10:52:39.489043Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 1, payload_length: 4, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"pong" } [INFO] [stdout] 2026-07-09T10:52:39.489055Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=142 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.489061Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=1 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-07-09T10:52:39.489060Z DEBUG kestrel_protocol::core::endpoint::processing::processors::path: Processing PathChallenge frame cid=2 seq=1 challenge_data=6848514549050257855 src_addr=127.0.0.1:1234 state=Established [INFO] [stdout] 2026-07-09T10:52:39.489078Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=1 seq=0 payload_len=4 [INFO] [stdout] 2026-07-09T10:52:39.489086Z TRACE kestrel_protocol::core::endpoint::processing::processors::path: Sending PathResponse cid=2 challenge_data=6848514549050257855 response_to=127.0.0.1:1234 [INFO] [stdout] 2026-07-09T10:52:39.489102Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 255, timestamp: 3, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.489116Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.489134Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.489130Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=39 [INFO] [stdout] 2026-07-09T10:52:39.489137Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.489148Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=1 count=1 [INFO] [stdout] 2026-07-09T10:52:39.489159Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.489173Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.489174Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.489185Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-07-09T10:52:39.489195Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-07-09T10:52:39.489206Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-07-09T10:52:39.489217Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-07-09T10:52:39.489228Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-07-09T10:52:39.489239Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-07-09T10:52:39.489250Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-07-09T10:52:39.488591Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=3788118680 addr=127.0.0.1:46455 [INFO] [stdout] 2026-07-09T10:52:39.488844Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=40 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 140, payload_length: 1200, recv_window_size: 256, timestamp: 4, sequence_number: 3, recv_next_sequence: 1 }, payload: b"''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''" } [INFO] [stdout] 2026-07-09T10:52:39.489289Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=3788118680 addr=127.0.0.1:46455 [INFO] [stdout] 2026-07-09T10:52:39.489345Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for outbound connection addr=127.0.0.1:46455 cid=3788118680 [INFO] [stdout] 2026-07-09T10:52:39.489266Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=39 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 139, payload_length: 1200, recv_window_size: 256, timestamp: 11, sequence_number: 0, recv_next_sequence: 1 }, payload: b"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&" } [INFO] [stdout] 2026-07-09T10:52:39.489286Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=40 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 140, payload_length: 1200, recv_window_size: 256, timestamp: 4, sequence_number: 4, recv_next_sequence: 1 }, payload: b"''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''" } [INFO] [stdout] 2026-07-09T10:52:39.489374Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=3788118680 remote_addr=127.0.0.1:46455 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 3788118680 } } [INFO] [stdout] 2026-07-09T10:52:39.489409Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3788118680 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.489454Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:46455 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.489397Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=40 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 140, payload_length: 1200, recv_window_size: 256, timestamp: 4, sequence_number: 5, recv_next_sequence: 1 }, payload: b"''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''" } [INFO] [stdout] 2026-07-09T10:52:39.489398Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=39 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 139, payload_length: 1200, recv_window_size: 256, timestamp: 11, sequence_number: 1, recv_next_sequence: 1 }, payload: b"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&" } [INFO] [stdout] 2026-07-09T10:52:39.489513Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:46455 frame_count=1 bytes=10 [INFO] [stdout] 2026-07-09T10:52:39.489507Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=40 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 140, payload_length: 1200, recv_window_size: 256, timestamp: 4, sequence_number: 6, recv_next_sequence: 1 }, payload: b"''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''" } [INFO] [stdout] 2026-07-09T10:52:39.489522Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=39 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 139, payload_length: 1200, recv_window_size: 256, timestamp: 11, sequence_number: 2, recv_next_sequence: 1 }, payload: b"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&" } [INFO] [stdout] 2026-07-09T10:52:39.489685Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:47341 frame_count=1 bytes=10 [INFO] [stdout] 2026-07-09T10:52:39.489615Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=40 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 140, payload_length: 1200, recv_window_size: 256, timestamp: 4, sequence_number: 7, recv_next_sequence: 1 }, payload: b"''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''" } [INFO] [stdout] 2026-07-09T10:52:39.489621Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=39 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 139, payload_length: 1200, recv_window_size: 256, timestamp: 11, sequence_number: 3, recv_next_sequence: 1 }, payload: b"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&" } [INFO] [stdout] 2026-07-09T10:52:39.489761Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3788118680 [INFO] [stdout] 2026-07-09T10:52:39.489723Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=40 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 140, payload_length: 640, recv_window_size: 256, timestamp: 4, sequence_number: 8, recv_next_sequence: 1 }, payload: b"''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''" } [INFO] [stdout] 2026-07-09T10:52:39.489783Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3788118680 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.489801Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=40 state=Established [INFO] [stdout] 2026-07-09T10:52:39.489732Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=39 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 139, payload_length: 1200, recv_window_size: 256, timestamp: 11, sequence_number: 4, recv_next_sequence: 1 }, payload: b"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&" } [INFO] [stdout] 2026-07-09T10:52:39.489830Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:47341 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.489852Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:47341 [INFO] [stdout] 2026-07-09T10:52:39.489867Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=4264386720 [INFO] [stdout] 2026-07-09T10:52:39.489922Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=4264386720 remote_addr=127.0.0.1:47341 [INFO] [stdout] 2026-07-09T10:52:39.489977Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.490008Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=4264386720 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.490072Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=4264386720 addr=127.0.0.1:47341 [INFO] [stdout] 2026-07-09T10:52:39.490091Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.490102Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=4264386720 addr=127.0.0.1:47341 [INFO] [stdout] 2026-07-09T10:52:39.490115Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=143 remote_addr=127.0.0.1:9042 [INFO] [stdout] 2026-07-09T10:52:39.490126Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:47341 cid=4264386720 [INFO] [stdout] 2026-07-09T10:52:39.490130Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=142 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.488865Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=41 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.490167Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:47341 cid=4264386720 [INFO] [stdout] 2026-07-09T10:52:39.490189Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4264386720 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.490216Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.490236Z  INFO kestrel_protocol::core::tests::state: [Server] Conn A accepted and dropped. [INFO] [stdout] 2026-07-09T10:52:39.490250Z  INFO kestrel_protocol::core::tests::state: [Server] Waiting for conn B [INFO] [stdout] 2026-07-09T10:52:39.490245Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.490270Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=143 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.490276Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=4264386720 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.490297Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=4264386720 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.490322Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.490317Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=PathResponse { header: ShortHeader { command: PathResponse, connection_id: 1, payload_length: 8, recv_window_size: 0, timestamp: 10, sequence_number: 1, recv_next_sequence: 0 }, challenge_data: 6848514549050257855 } [INFO] [stdout] 2026-07-09T10:52:39.490336Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.490351Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=4264386720 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.490348Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PathProcessor" frame_type=PathResponse { header: ShortHeader { command: PathResponse, connection_id: 1, payload_length: 8, recv_window_size: 0, timestamp: 10, sequence_number: 1, recv_next_sequence: 0 }, challenge_data: 6848514549050257855 } [INFO] [stdout] 2026-07-09T10:52:39.490366Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=4264386720 remote_addr=127.0.0.1:47341 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 3788118680, source_cid: 4264386720 } } [INFO] [stdout] 2026-07-09T10:52:39.490369Z DEBUG kestrel_protocol::core::endpoint::processing::processors::path: Processing PathResponse frame cid=1 seq=1 challenge_data=6848514549050257855 src_addr=127.0.0.1:5678 state=ValidatingPath { new_addr: 127.0.0.1:9999, challenge_data: 6848514549050257855, notifier: None } [INFO] [stdout] 2026-07-09T10:52:39.490398Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=4264386720 [INFO] [stdout] 2026-07-09T10:52:39.490405Z  WARN kestrel_protocol::core::endpoint::processing::processors::path: Received invalid PathResponse, ignoring cid=1 expected_addr=127.0.0.1:9999 received_addr=127.0.0.1:5678 expected_challenge=6848514549050257855 received_challenge=6848514549050257855 [INFO] [stdout] 2026-07-09T10:52:39.490420Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4264386720 state=Established [INFO] [stdout] 2026-07-09T10:52:39.490429Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.490447Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=ValidatingPath { new_addr: 127.0.0.1:9999, challenge_data: 6848514549050257855, notifier: Some(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: false, is_tx_task_set: false } }) }) } [INFO] [stdout] 2026-07-09T10:52:39.490444Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.490471Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:47341 frame_count=2 [INFO] [stdout] 2026-07-09T10:52:39.490496Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=144 remote_addr=127.0.0.1:9043 [INFO] [stdout] 2026-07-09T10:52:39.490516Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:47341 frame_count=2 bytes=36 [INFO] [stdout] 2026-07-09T10:52:39.490542Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.489845Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=39 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 139, payload_length: 1200, recv_window_size: 256, timestamp: 11, sequence_number: 5, recv_next_sequence: 1 }, payload: b"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&" } [INFO] [stdout] 2026-07-09T10:52:39.490712Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=42 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-07-09T10:52:39.490763Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.490816Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.490740Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=39 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 139, payload_length: 1200, recv_window_size: 256, timestamp: 11, sequence_number: 6, recv_next_sequence: 1 }, payload: b"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&" } [INFO] [stdout] 2026-07-09T10:52:39.490602Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=141 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.490907Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=141 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.490936Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.490952Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.490966Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=141 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.490980Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=141 remote_addr=127.0.0.1:9040 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 41, source_cid: 141 } } [INFO] [stdout] 2026-07-09T10:52:39.490983Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:46455 frame_count=2 bytes=36 [INFO] [stdout] 2026-07-09T10:52:39.491012Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=141 [INFO] [stdout] 2026-07-09T10:52:39.491032Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=141 state=Established [INFO] [stdout] 2026-07-09T10:52:39.491036Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:46455 frame_count=2 [INFO] [stdout] 2026-07-09T10:52:39.491086Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=3788118680 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 3788118680, source_cid: 4264386720 } } [INFO] [stdout] 2026-07-09T10:52:39.491100Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=41 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 41 } } [INFO] [stdout] 2026-07-09T10:52:39.491108Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 3788118680, source_cid: 4264386720 } } [INFO] [stdout] 2026-07-09T10:52:39.491129Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=41 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.491128Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=3788118680 peer_cid=4264386720 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.491146Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=41 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 41, source_cid: 141 } } [INFO] [stdout] 2026-07-09T10:52:39.491164Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 41, source_cid: 141 } } [INFO] [stdout] 2026-07-09T10:52:39.491170Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.491187Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.491191Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=41 peer_cid=141 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.491218Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-07-09T10:52:39.491228Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=3788118680 current_state=Connecting target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.491234Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.491245Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=3788118680 from="Connecting" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.491251Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.491262Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=3788118680 peer_cid=4264386720 [INFO] [stdout] 2026-07-09T10:52:39.491282Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-07-09T10:52:39.491293Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=41 current_state=Connecting target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.490853Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=42 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.491311Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=41 from="Connecting" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.491327Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=41 peer_cid=141 [INFO] [stdout] 2026-07-09T10:52:39.491343Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=41 frame=Push { header: ShortHeader { command: Push, connection_id: 41, payload_length: 4, recv_window_size: 256, timestamp: 7, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.491360Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.491364Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 41, payload_length: 4, recv_window_size: 256, timestamp: 7, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.491382Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=42 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.491384Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=41 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-07-09T10:52:39.491402Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=41 seq=0 payload_len=4 [INFO] [stdout] 2026-07-09T10:52:39.491427Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=41 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 141, payload_length: 8, recv_window_size: 255, timestamp: 2, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.491447Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=143 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.491469Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=41 [INFO] [stdout] 2026-07-09T10:52:39.491484Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=41 count=1 [INFO] [stdout] 2026-07-09T10:52:39.491508Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=41 state=Established [INFO] [stdout] 2026-07-09T10:52:39.491574Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.491586Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=41 [INFO] [stdout] 2026-07-09T10:52:39.491603Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=43 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-07-09T10:52:39.491617Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.491630Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.491644Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.491643Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-07-09T10:52:39.491656Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-07-09T10:52:39.491667Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-07-09T10:52:39.491679Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-07-09T10:52:39.491678Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.491690Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-07-09T10:52:39.491701Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-07-09T10:52:39.491701Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=43 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.491712Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-07-09T10:52:39.491756Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.491776Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=43 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.491820Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.491726Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=41 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 141, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 0, recv_next_sequence: 1 }, payload: b"((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((" } [INFO] [stdout] 2026-07-09T10:52:39.491843Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.491279Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=3788118680 frame=Push { header: ShortHeader { command: Push, connection_id: 3788118680, payload_length: 5, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"ack_a" } [INFO] [stdout] 2026-07-09T10:52:39.491925Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 3788118680, payload_length: 5, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"ack_a" } [INFO] [stdout] 2026-07-09T10:52:39.491946Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=3788118680 seq=0 payload_len=5 state=Established [INFO] [stdout] 2026-07-09T10:52:39.491962Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=3788118680 seq=0 payload_len=5 [INFO] [stdout] 2026-07-09T10:52:39.490851Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=39 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 139, payload_length: 1200, recv_window_size: 256, timestamp: 11, sequence_number: 7, recv_next_sequence: 1 }, payload: b"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&" } [INFO] [stdout] 2026-07-09T10:52:39.491985Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=3788118680 remote_addr=127.0.0.1:46455 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 4264386720, payload_length: 8, recv_window_size: 255, timestamp: 64, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.492018Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3788118680 [INFO] [stdout] 2026-07-09T10:52:39.492031Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=3788118680 count=1 [INFO] [stdout] 2026-07-09T10:52:39.492055Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3788118680 state=Established [INFO] [stdout] 2026-07-09T10:52:39.492005Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=39 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 139, payload_length: 640, recv_window_size: 256, timestamp: 11, sequence_number: 8, recv_next_sequence: 1 }, payload: b"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&" } [INFO] [stdout] 2026-07-09T10:52:39.492086Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=39 state=Established [INFO] [stdout] 2026-07-09T10:52:39.492090Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:46455 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.492082Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.492116Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.492124Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:46455 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.492157Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.492184Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.492199Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.492211Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-07-09T10:52:39.492219Z  INFO kestrel_protocol::core::tests::state: [Client] Received server ack for conn A [INFO] [stdout] 2026-07-09T10:52:39.492222Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-07-09T10:52:39.492234Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-07-09T10:52:39.492237Z  INFO kestrel_protocol::core::tests::state: [Client] Conn A shut down. [INFO] [stdout] 2026-07-09T10:52:39.492247Z  INFO kestrel_protocol::core::tests::state: [Client] Waiting for CID to be drained on server... [INFO] [stdout] 2026-07-09T10:52:39.492249Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=5 first_frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 10, recv_window_size: 256, timestamp: 51, sequence_number: 0, recv_next_sequence: 0 }, payload: b"c-packet-0" } [INFO] [stdout] 2026-07-09T10:52:39.492280Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:47341 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.492288Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.492328Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=3788118680 current_state=Established [INFO] [stdout] 2026-07-09T10:52:39.492346Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=3788118680 from="Established" to="Closing" [INFO] [stdout] 2026-07-09T10:52:39.492367Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.492381Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Added packet to simple retransmission tracking seq=0 max_retries=5 retry_interval_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.492399Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=3788118680 remote_addr=127.0.0.1:46455 frame_count=1 first_frame=Fin { header: ShortHeader { command: Fin, connection_id: 4264386720, payload_length: 0, recv_window_size: 256, timestamp: 4064, sequence_number: 0, recv_next_sequence: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.492426Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3788118680 [INFO] [stdout] 2026-07-09T10:52:39.492443Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3788118680 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.492490Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:47341 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.492530Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:46455 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.492530Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=101 [INFO] [stdout] 2026-07-09T10:52:39.492556Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=101 state=Established [INFO] [stdout] 2026-07-09T10:52:39.492562Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=4264386720 frame=Ack { header: ShortHeader { command: Ack, connection_id: 4264386720, payload_length: 8, recv_window_size: 255, timestamp: 64, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.492583Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 4264386720, payload_length: 8, recv_window_size: 255, timestamp: 64, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.492605Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=4264386720 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.492624Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=4264386720 [INFO] [stdout] 2026-07-09T10:52:39.492638Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=4264386720 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.492672Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.492695Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.492717Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=102 [INFO] [stdout] 2026-07-09T10:52:39.492722Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=4014 srtt_ms=4014 rttvar_ms=2007 rto_ms=12042 [INFO] [stdout] 2026-07-09T10:52:39.492736Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=102 state=Established [INFO] [stdout] 2026-07-09T10:52:39.491863Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=144 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.492956Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 255, timestamp: 17, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.492992Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 255, timestamp: 17, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.492988Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 4, recv_window_size: 256, timestamp: 3, sequence_number: 0, recv_next_sequence: 0 }, payload: b"ping" } [INFO] [stdout] 2026-07-09T10:52:39.493014Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=2 recv_next_seq=1 recv_window=255 payload_len=8 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.493019Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 4, recv_window_size: 256, timestamp: 3, sequence_number: 0, recv_next_sequence: 0 }, payload: b"ping" } [INFO] [stdout] 2026-07-09T10:52:39.493034Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Closing state cid=2 [INFO] [stdout] 2026-07-09T10:52:39.493040Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-07-09T10:52:39.493048Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=2 recv_next_seq=1 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.493058Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=0 payload_len=4 [INFO] [stdout] 2026-07-09T10:52:39.493079Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Packet acknowledged by SACK seq=1 [INFO] [stdout] 2026-07-09T10:52:39.493092Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=1 sack_ranges_count=1 sack_acked_count=0 simple_acked_count=1 rtt_samples_count=0 [INFO] [stdout] 2026-07-09T10:52:39.493114Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.493107Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 6, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.493131Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=2 [INFO] [stdout] 2026-07-09T10:52:39.493144Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Added packet to simple retransmission tracking seq=2 max_retries=5 retry_interval_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.493145Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 255, timestamp: 3, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.493161Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Fin { header: ShortHeader { command: Fin, connection_id: 1, payload_length: 0, recv_window_size: 256, timestamp: 22, sequence_number: 2, recv_next_sequence: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.493166Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 255, timestamp: 3, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.493185Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=2 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.493193Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.493203Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2 [INFO] [stdout] 2026-07-09T10:52:39.493217Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=2 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.493246Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.493263Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.493281Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=5 srtt_ms=5 rttvar_ms=2 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.493299Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.493301Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.493313Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.493327Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.493331Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.493346Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2 count=1 [INFO] [stdout] 2026-07-09T10:52:39.493372Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.493376Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.493390Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.493425Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 13, recv_window_size: 256, timestamp: 53, sequence_number: 0, recv_next_sequence: 0 }, payload: b"hello server!" } [INFO] [stdout] 2026-07-09T10:52:39.493473Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.493479Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=1 current_state=Established [INFO] [stdout] 2026-07-09T10:52:39.493479Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 10, recv_window_size: 256, timestamp: 51, sequence_number: 0, recv_next_sequence: 0 }, payload: b"c-packet-0" } [INFO] [stdout] 2026-07-09T10:52:39.493503Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Established" to="Closing" [INFO] [stdout] 2026-07-09T10:52:39.493512Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 10, recv_window_size: 256, timestamp: 51, sequence_number: 0, recv_next_sequence: 0 }, payload: b"c-packet-0" } [INFO] [stdout] 2026-07-09T10:52:39.493527Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.493533Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=0 payload_len=10 state=Established [INFO] [stdout] 2026-07-09T10:52:39.493542Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Added packet to simple retransmission tracking seq=1 max_retries=5 retry_interval_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.493553Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=0 payload_len=10 [INFO] [stdout] 2026-07-09T10:52:39.493560Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Fin { header: ShortHeader { command: Fin, connection_id: 2, payload_length: 0, recv_window_size: 256, timestamp: 7, sequence_number: 1, recv_next_sequence: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.493577Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 52, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.491840Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=41 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 141, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 1, recv_next_sequence: 1 }, payload: b"((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((" } [INFO] [stdout] 2026-07-09T10:52:39.493592Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.493609Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 10, recv_window_size: 256, timestamp: 51, sequence_number: 1, recv_next_sequence: 0 }, payload: b"c-packet-1" } [INFO] [stdout] 2026-07-09T10:52:39.493614Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.493628Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 10, recv_window_size: 256, timestamp: 51, sequence_number: 1, recv_next_sequence: 0 }, payload: b"c-packet-1" } [INFO] [stdout] 2026-07-09T10:52:39.493645Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=1 payload_len=10 state=Established [INFO] [stdout] 2026-07-09T10:52:39.493654Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=2 current_state=Established [INFO] [stdout] 2026-07-09T10:52:39.493660Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=1 payload_len=10 [INFO] [stdout] 2026-07-09T10:52:39.493672Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="Established" to="Closing" [INFO] [stdout] 2026-07-09T10:52:39.493682Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 254, timestamp: 52, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.493693Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.493613Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=41 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 141, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 2, recv_next_sequence: 1 }, payload: b"((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((" } [INFO] [stdout] 2026-07-09T10:52:39.493706Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Added packet to simple retransmission tracking seq=1 max_retries=5 retry_interval_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.493710Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 10, recv_window_size: 256, timestamp: 51, sequence_number: 2, recv_next_sequence: 0 }, payload: b"c-packet-2" } [INFO] [stdout] 2026-07-09T10:52:39.493729Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 10, recv_window_size: 256, timestamp: 51, sequence_number: 2, recv_next_sequence: 0 }, payload: b"c-packet-2" } [INFO] [stdout] 2026-07-09T10:52:39.493727Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Fin { header: ShortHeader { command: Fin, connection_id: 1, payload_length: 0, recv_window_size: 256, timestamp: 6, sequence_number: 1, recv_next_sequence: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.493745Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=2 payload_len=10 state=Established [INFO] [stdout] 2026-07-09T10:52:39.493758Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.493760Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=2 payload_len=10 [INFO] [stdout] 2026-07-09T10:52:39.493778Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.493780Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 253, timestamp: 52, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.493722Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=41 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 141, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 3, recv_next_sequence: 1 }, payload: b"((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((" } [INFO] [stdout] 2026-07-09T10:52:39.493807Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 10, recv_window_size: 256, timestamp: 51, sequence_number: 3, recv_next_sequence: 0 }, payload: b"c-packet-3" } [INFO] [stdout] 2026-07-09T10:52:39.493824Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 10, recv_window_size: 256, timestamp: 51, sequence_number: 3, recv_next_sequence: 0 }, payload: b"c-packet-3" } [INFO] [stdout] 2026-07-09T10:52:39.492865Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=143 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.493841Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=3 payload_len=10 state=Established [INFO] [stdout] 2026-07-09T10:52:39.493853Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=143 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.493857Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=3 payload_len=10 [INFO] [stdout] 2026-07-09T10:52:39.492861Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=142 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.493909Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.493899Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 252, timestamp: 52, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.493909Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=142 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.493921Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.493935Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.493931Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 10, recv_window_size: 256, timestamp: 51, sequence_number: 4, recv_next_sequence: 0 }, payload: b"c-packet-4" } [INFO] [stdout] 2026-07-09T10:52:39.493945Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.493954Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=143 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.493967Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=142 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.493952Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 10, recv_window_size: 256, timestamp: 51, sequence_number: 4, recv_next_sequence: 0 }, payload: b"c-packet-4" } [INFO] [stdout] 2026-07-09T10:52:39.493987Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=143 remote_addr=127.0.0.1:9042 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 43, source_cid: 143 } } [INFO] [stdout] 2026-07-09T10:52:39.493937Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=36 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 136, payload_length: 640, recv_window_size: 256, timestamp: 7, sequence_number: 8, recv_next_sequence: 1 }, payload: b"################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################" } [INFO] [stdout] 2026-07-09T10:52:39.493980Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=142 remote_addr=127.0.0.1:9041 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 42, source_cid: 142 } } [INFO] [stdout] 2026-07-09T10:52:39.494021Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=143 [INFO] [stdout] 2026-07-09T10:52:39.494031Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=142 [INFO] [stdout] 2026-07-09T10:52:39.494031Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=36 state=Established [INFO] [stdout] 2026-07-09T10:52:39.494038Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=143 state=Established [INFO] [stdout] 2026-07-09T10:52:39.493825Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=41 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 141, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 4, recv_next_sequence: 1 }, payload: b"((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((" } [INFO] [stdout] 2026-07-09T10:52:39.494053Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=142 state=Established [INFO] [stdout] 2026-07-09T10:52:39.494097Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=43 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 43 } } [INFO] [stdout] 2026-07-09T10:52:39.494104Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=42 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 42 } } [INFO] [stdout] 2026-07-09T10:52:39.494123Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=43 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.494134Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=42 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.494139Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=43 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 43, source_cid: 143 } } [INFO] [stdout] 2026-07-09T10:52:39.494066Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=41 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 141, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 5, recv_next_sequence: 1 }, payload: b"((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((" } [INFO] [stdout] 2026-07-09T10:52:39.494177Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=4 payload_len=10 state=Established [INFO] [stdout] 2026-07-09T10:52:39.494182Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.494194Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=4 payload_len=10 [INFO] [stdout] 2026-07-09T10:52:39.494209Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.494217Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 251, timestamp: 52, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.494246Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.494254Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=104 [INFO] [stdout] 2026-07-09T10:52:39.494261Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2 count=5 [INFO] [stdout] 2026-07-09T10:52:39.494183Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=41 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 141, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 6, recv_next_sequence: 1 }, payload: b"((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((" } [INFO] [stdout] 2026-07-09T10:52:39.494275Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=104 state=Established [INFO] [stdout] 2026-07-09T10:52:39.494285Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.494326Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.494153Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=42 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 42, source_cid: 142 } } [INFO] [stdout] 2026-07-09T10:52:39.494278Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=41 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 141, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 7, recv_next_sequence: 1 }, payload: b"((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((" } [INFO] [stdout] 2026-07-09T10:52:39.494375Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=145 remote_addr=127.0.0.1:9044 [INFO] [stdout] 2026-07-09T10:52:39.494385Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 42, source_cid: 142 } } [INFO] [stdout] 2026-07-09T10:52:39.494155Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 43, source_cid: 143 } } [INFO] [stdout] 2026-07-09T10:52:39.494323Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.494380Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=41 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 141, payload_length: 640, recv_window_size: 256, timestamp: 2, sequence_number: 8, recv_next_sequence: 1 }, payload: b"((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((" } [INFO] [stdout] 2026-07-09T10:52:39.494440Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=43 peer_cid=143 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.494443Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.494468Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=41 state=Established [INFO] [stdout] 2026-07-09T10:52:39.494500Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.494519Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.494530Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.494533Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=144 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.494553Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-07-09T10:52:39.494552Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.494564Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=43 current_state=Connecting target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.494567Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.494580Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-07-09T10:52:39.494580Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=43 from="Connecting" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.494596Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=43 peer_cid=143 [INFO] [stdout] 2026-07-09T10:52:39.494594Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=3 first_frame=Push { header: ShortHeader { command: Push, connection_id: 1, payload_length: 10, recv_window_size: 256, timestamp: 53, sequence_number: 0, recv_next_sequence: 5 }, payload: b"s-packet-0" } [INFO] [stdout] 2026-07-09T10:52:39.494611Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=43 frame=Push { header: ShortHeader { command: Push, connection_id: 43, payload_length: 4, recv_window_size: 256, timestamp: 3, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.494629Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.494630Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 43, payload_length: 4, recv_window_size: 256, timestamp: 3, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.494646Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=43 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-07-09T10:52:39.494645Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 13, recv_window_size: 256, timestamp: 53, sequence_number: 0, recv_next_sequence: 0 }, payload: b"hello server!" } [INFO] [stdout] 2026-07-09T10:52:39.494660Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=43 seq=0 payload_len=4 [INFO] [stdout] 2026-07-09T10:52:39.494673Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 13, recv_window_size: 256, timestamp: 53, sequence_number: 0, recv_next_sequence: 0 }, payload: b"hello server!" } [INFO] [stdout] 2026-07-09T10:52:39.494680Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=43 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 143, payload_length: 8, recv_window_size: 255, timestamp: 3, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.494693Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=0 payload_len=13 state=Established [INFO] [stdout] 2026-07-09T10:52:39.494704Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=43 [INFO] [stdout] 2026-07-09T10:52:39.494711Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=0 payload_len=13 [INFO] [stdout] 2026-07-09T10:52:39.494716Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=43 count=1 [INFO] [stdout] 2026-07-09T10:52:39.494714Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 52, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.494738Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=43 state=Established [INFO] [stdout] 2026-07-09T10:52:39.494739Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 52, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.494734Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 54, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.494757Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=1 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.494766Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.494775Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=1 [INFO] [stdout] 2026-07-09T10:52:39.494779Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2 count=1 [INFO] [stdout] 2026-07-09T10:52:39.494788Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=1 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.494803Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.494808Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.494816Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.494832Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.494839Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.494848Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=2 srtt_ms=2 rttvar_ms=1 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.492740Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.494894Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.494905Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.494917Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.494921Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=4 [INFO] [stdout] 2026-07-09T10:52:39.494928Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=4264386720 [INFO] [stdout] 2026-07-09T10:52:39.494942Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4 state=Established [INFO] [stdout] 2026-07-09T10:52:39.494946Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4264386720 state=Established [INFO] [stdout] 2026-07-09T10:52:39.494943Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 1, payload_length: 13, recv_window_size: 256, timestamp: 55, sequence_number: 0, recv_next_sequence: 1 }, payload: b"hello client!" } [INFO] [stdout] 2026-07-09T10:52:39.494979Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.494986Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=103 [INFO] [stdout] 2026-07-09T10:52:39.494991Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:46455 frame_count=1 bytes=21 [INFO] [stdout] 2026-07-09T10:52:39.495004Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=103 state=Established [INFO] [stdout] 2026-07-09T10:52:39.495106Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.495112Z  INFO kestrel_protocol::core::tests::state: [Client] Connecting B... [INFO] [stdout] 2026-07-09T10:52:39.495127Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=44 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-07-09T10:52:39.495168Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.495162Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:47341 frame_count=1 bytes=21 [INFO] [stdout] 2026-07-09T10:52:39.495189Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3 [INFO] [stdout] 2026-07-09T10:52:39.495203Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.495215Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3 state=Established [INFO] [stdout] 2026-07-09T10:52:39.495225Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=44 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.495226Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=4064 slots_to_advance=406 max_advance=406 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.495253Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=105 [INFO] [stdout] 2026-07-09T10:52:39.495271Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=105 state=Established [INFO] [stdout] 2026-07-09T10:52:39.495276Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.495407Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=44 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.495305Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=106 [INFO] [stdout] 2026-07-09T10:52:39.495444Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 6, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.495486Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 6, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.495485Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=106 state=Established [INFO] [stdout] 2026-07-09T10:52:39.495506Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=1 recv_next_seq=0 recv_window=255 payload_len=8 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.495515Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=144 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.495534Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Closing state cid=1 [INFO] [stdout] 2026-07-09T10:52:39.495540Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=5 [INFO] [stdout] 2026-07-09T10:52:39.495540Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=144 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.495548Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=1 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.495567Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=5 state=Established [INFO] [stdout] 2026-07-09T10:52:39.495575Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.495575Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.495586Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.495592Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.495605Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=107 [INFO] [stdout] 2026-07-09T10:52:39.495610Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=144 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.495610Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=6 srtt_ms=6 rttvar_ms=3 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.495622Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=107 state=Established [INFO] [stdout] 2026-07-09T10:52:39.495627Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.495624Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=144 remote_addr=127.0.0.1:9043 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 44, source_cid: 144 } } [INFO] [stdout] 2026-07-09T10:52:39.495638Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.495652Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=144 [INFO] [stdout] 2026-07-09T10:52:39.495658Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Fin { header: ShortHeader { command: Fin, connection_id: 1, payload_length: 0, recv_window_size: 256, timestamp: 6, sequence_number: 1, recv_next_sequence: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.495671Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=144 state=Established [INFO] [stdout] 2026-07-09T10:52:39.495678Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Fin { header: ShortHeader { command: Fin, connection_id: 1, payload_length: 0, recv_window_size: 256, timestamp: 6, sequence_number: 1, recv_next_sequence: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.495697Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=1 seq=1 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.495713Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Handling FIN in Closing state cid=1 seq=1 [INFO] [stdout] 2026-07-09T10:52:39.495732Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=44 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 44 } } [INFO] [stdout] 2026-07-09T10:52:39.495735Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 255, timestamp: 9, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.495763Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=44 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.495769Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=1 current_state=Closing target_state=ClosingWait [INFO] [stdout] 2026-07-09T10:52:39.495781Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=44 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 44, source_cid: 144 } } [INFO] [stdout] 2026-07-09T10:52:39.495788Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Closing" to="ClosingWait" [INFO] [stdout] 2026-07-09T10:52:39.495797Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 44, source_cid: 144 } } [INFO] [stdout] 2026-07-09T10:52:39.495807Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.495813Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=44 peer_cid=144 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.495824Z TRACE kestrel_protocol::core::endpoint::core::event_loop: All data drained after FIN, closing user stream (sending EOF). cid=1 [INFO] [stdout] 2026-07-09T10:52:39.495844Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=ClosingWait [INFO] [stdout] 2026-07-09T10:52:39.495856Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.494867Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.495896Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.495908Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=145 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.495911Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.494410Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=42 peer_cid=142 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.495940Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 254, timestamp: 52, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.495964Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 254, timestamp: 52, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.495990Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.495993Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=1 recv_next_seq=0 recv_window=254 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.496010Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=1 [INFO] [stdout] 2026-07-09T10:52:39.496011Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.496024Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=1 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=254 [INFO] [stdout] 2026-07-09T10:52:39.496049Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-07-09T10:52:39.496063Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.496081Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=3 srtt_ms=2 rttvar_ms=1 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.496101Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.496111Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.495354Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=4064 slots_to_advance=406 max_advance=406 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.496128Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 253, timestamp: 52, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.496149Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 253, timestamp: 52, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.496180Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=1 recv_next_seq=0 recv_window=253 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.496198Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=1 [INFO] [stdout] 2026-07-09T10:52:39.496209Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=1 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=253 [INFO] [stdout] 2026-07-09T10:52:39.496216Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:47341 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.495369Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Fin { header: ShortHeader { command: Fin, connection_id: 1, payload_length: 0, recv_window_size: 256, timestamp: 22, sequence_number: 2, recv_next_sequence: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.496258Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Fin { header: ShortHeader { command: Fin, connection_id: 1, payload_length: 0, recv_window_size: 256, timestamp: 22, sequence_number: 2, recv_next_sequence: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.496280Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=1 seq=2 state=ClosingWait [INFO] [stdout] 2026-07-09T10:52:39.496299Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring FIN frame in unexpected state cid=1 state=ClosingWait [INFO] [stdout] 2026-07-09T10:52:39.496318Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.496316Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=3756382548 [INFO] [stdout] 2026-07-09T10:52:39.496333Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=ClosingWait [INFO] [stdout] 2026-07-09T10:52:39.496348Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=3756382548 remote_addr=127.0.0.1:46455 [INFO] [stdout] 2026-07-09T10:52:39.496232Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-07-09T10:52:39.496392Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.496417Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=3 srtt_ms=2 rttvar_ms=1 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.496419Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=4264386720 frame=Fin { header: ShortHeader { command: Fin, connection_id: 4264386720, payload_length: 0, recv_window_size: 256, timestamp: 4064, sequence_number: 0, recv_next_sequence: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.496434Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.496444Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.496448Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Fin { header: ShortHeader { command: Fin, connection_id: 4264386720, payload_length: 0, recv_window_size: 256, timestamp: 4064, sequence_number: 0, recv_next_sequence: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.496472Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 252, timestamp: 52, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.496506Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 252, timestamp: 52, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.496514Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Fin { header: ShortHeader { command: Fin, connection_id: 2, payload_length: 0, recv_window_size: 256, timestamp: 7, sequence_number: 1, recv_next_sequence: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.496524Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=1 recv_next_seq=0 recv_window=252 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.496541Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=1 [INFO] [stdout] 2026-07-09T10:52:39.496477Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=4264386720 seq=0 state=Established [INFO] [stdout] 2026-07-09T10:52:39.496564Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Handling FIN in Established state cid=4264386720 seq=0 [INFO] [stdout] 2026-07-09T10:52:39.496536Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Fin { header: ShortHeader { command: Fin, connection_id: 2, payload_length: 0, recv_window_size: 256, timestamp: 7, sequence_number: 1, recv_next_sequence: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.496581Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=2 seq=1 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.496596Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Handling FIN in Closing state cid=2 seq=1 [INFO] [stdout] 2026-07-09T10:52:39.496587Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=4264386720 remote_addr=127.0.0.1:47341 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 3788118680, payload_length: 8, recv_window_size: 255, timestamp: 4014, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.496622Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=4264386720 [INFO] [stdout] 2026-07-09T10:52:39.496618Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 9, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.496636Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=4264386720 current_state=Established target_state=FinWait [INFO] [stdout] 2026-07-09T10:52:39.496649Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=Closing target_state=ClosingWait [INFO] [stdout] 2026-07-09T10:52:39.496653Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=4264386720 from="Established" to="FinWait" [INFO] [stdout] 2026-07-09T10:52:39.496668Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="Closing" to="ClosingWait" [INFO] [stdout] 2026-07-09T10:52:39.496675Z TRACE kestrel_protocol::core::endpoint::core::event_loop: All data drained after FIN, closing user stream (sending EOF). cid=4264386720 [INFO] [stdout] 2026-07-09T10:52:39.496689Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.496694Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4264386720 state=FinWait [INFO] [stdout] 2026-07-09T10:52:39.496703Z TRACE kestrel_protocol::core::endpoint::core::event_loop: All data drained after FIN, closing user stream (sending EOF). cid=2 [INFO] [stdout] 2026-07-09T10:52:39.496719Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=ClosingWait [INFO] [stdout] 2026-07-09T10:52:39.496748Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=3 slot_index=394 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.496771Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=3 entry_id=3 connection_id=3756382548 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.496806Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=1 [INFO] [stdout] 2026-07-09T10:52:39.496814Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:47341 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.496900Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:47341 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.496925Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=1 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=252 [INFO] [stdout] 2026-07-09T10:52:39.496957Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] 2026-07-09T10:52:39.496973Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.496985Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=4 slot_index=334 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.496991Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=4 srtt_ms=3 rttvar_ms=1 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.497006Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.497008Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=4 entry_id=4 connection_id=3756382548 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.497016Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.497035Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 251, timestamp: 52, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.497058Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 251, timestamp: 52, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.497077Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=1 recv_next_seq=0 recv_window=251 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.497083Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=3756382548 addr=127.0.0.1:46455 [INFO] [stdout] 2026-07-09T10:52:39.497094Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=1 [INFO] [stdout] 2026-07-09T10:52:39.497108Z DEBUG kestrel_protocol::socket::event_loop::routing: 相同地址存在旧连接,移除旧连接 | Old connection exists for same address, removing old connection old_cid=3788118680 new_cid=3756382548 addr=127.0.0.1:46455 [INFO] [stdout] 2026-07-09T10:52:39.497107Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=1 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=251 [INFO] [stdout] 2026-07-09T10:52:39.497105Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 54, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.497133Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-07-09T10:52:39.497133Z DEBUG kestrel_protocol::socket::event_loop::routing: 移除连接的地址映射 | Removed address mapping for connection cid=3788118680 addr=127.0.0.1:46455 [INFO] [stdout] 2026-07-09T10:52:39.497135Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 54, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.497147Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.497153Z DEBUG kestrel_protocol::socket::event_loop::routing: 清理连接状态完成,CID现在处于 draining 状态 | Cleaned up connection state. CID is now in draining state. cid=3788118680 [INFO] [stdout] 2026-07-09T10:52:39.497157Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=1 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.497164Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=4 srtt_ms=3 rttvar_ms=1 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.497174Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=3756382548 addr=127.0.0.1:46455 [INFO] [stdout] 2026-07-09T10:52:39.497175Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=1 [INFO] [stdout] 2026-07-09T10:52:39.497180Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.497191Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.497193Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=1 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.497207Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Push { header: ShortHeader { command: Push, connection_id: 1, payload_length: 10, recv_window_size: 256, timestamp: 53, sequence_number: 0, recv_next_sequence: 5 }, payload: b"s-packet-0" } [INFO] [stdout] 2026-07-09T10:52:39.497222Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.497228Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 1, payload_length: 10, recv_window_size: 256, timestamp: 53, sequence_number: 0, recv_next_sequence: 5 }, payload: b"s-packet-0" } [INFO] [stdout] 2026-07-09T10:52:39.497231Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for outbound connection addr=127.0.0.1:46455 cid=3756382548 [INFO] [stdout] 2026-07-09T10:52:39.497237Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.497247Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=1 seq=0 payload_len=10 state=Established [INFO] [stdout] 2026-07-09T10:52:39.497255Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=3 srtt_ms=3 rttvar_ms=1 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.497255Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=3756382548 remote_addr=127.0.0.1:46455 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 3756382548 } } [INFO] [stdout] 2026-07-09T10:52:39.497265Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=1 seq=0 payload_len=10 [INFO] [stdout] 2026-07-09T10:52:39.497271Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.497281Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3756382548 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.497282Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.497287Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 255, timestamp: 56, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.497300Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Push { header: ShortHeader { command: Push, connection_id: 1, payload_length: 13, recv_window_size: 256, timestamp: 55, sequence_number: 0, recv_next_sequence: 1 }, payload: b"hello client!" } [INFO] [stdout] 2026-07-09T10:52:39.497321Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 1, payload_length: 13, recv_window_size: 256, timestamp: 55, sequence_number: 0, recv_next_sequence: 1 }, payload: b"hello client!" } [INFO] [stdout] 2026-07-09T10:52:39.497324Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:46455 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.497322Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Push { header: ShortHeader { command: Push, connection_id: 1, payload_length: 10, recv_window_size: 256, timestamp: 53, sequence_number: 1, recv_next_sequence: 5 }, payload: b"s-packet-1" } [INFO] [stdout] 2026-07-09T10:52:39.497338Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=1 seq=0 payload_len=13 state=Established [INFO] [stdout] 2026-07-09T10:52:39.497344Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 1, payload_length: 10, recv_window_size: 256, timestamp: 53, sequence_number: 1, recv_next_sequence: 5 }, payload: b"s-packet-1" } [INFO] [stdout] 2026-07-09T10:52:39.497354Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=1 seq=0 payload_len=13 [INFO] [stdout] 2026-07-09T10:52:39.497359Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:46455 frame_count=1 bytes=10 [INFO] [stdout] 2026-07-09T10:52:39.497361Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=1 seq=1 payload_len=10 state=Established [INFO] [stdout] 2026-07-09T10:52:39.497378Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=1 seq=1 payload_len=10 [INFO] [stdout] 2026-07-09T10:52:39.497375Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 255, timestamp: 57, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.497408Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.497425Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=1 count=1 [INFO] [stdout] 2026-07-09T10:52:39.497463Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.497484Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:47341 frame_count=1 bytes=10 [INFO] [stdout] 2026-07-09T10:52:39.496860Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2 [INFO] [stdout] 2026-07-09T10:52:39.497549Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:46455 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.497603Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3756382548 [INFO] [stdout] 2026-07-09T10:52:39.497620Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=1 [INFO] [stdout] 2026-07-09T10:52:39.497623Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3756382548 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.497665Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:47341 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.497685Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:47341 [INFO] [stdout] 2026-07-09T10:52:39.497701Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=2965884667 [INFO] [stdout] 2026-07-09T10:52:39.497712Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2 [INFO] [stdout] 2026-07-09T10:52:39.497740Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2965884667 remote_addr=127.0.0.1:47341 [INFO] [stdout] 2026-07-09T10:52:39.497802Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:46455 frame_count=1 [INFO] [stdout] test core::tests::shutdown::test_simultaneous_close ... ok [INFO] [stdout] 2026-07-09T10:52:39.497863Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=394 delay_ms=5000 [INFO] [stdout] test core::tests::lifecycle::test_connect_and_send_data ... ok [INFO] [stdout] 2026-07-09T10:52:39.497398Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 254, timestamp: 56, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.497985Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Push { header: ShortHeader { command: Push, connection_id: 1, payload_length: 10, recv_window_size: 256, timestamp: 53, sequence_number: 2, recv_next_sequence: 5 }, payload: b"s-packet-2" } [INFO] [stdout] 2026-07-09T10:52:39.498024Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 1, payload_length: 10, recv_window_size: 256, timestamp: 53, sequence_number: 2, recv_next_sequence: 5 }, payload: b"s-packet-2" } [INFO] [stdout] 2026-07-09T10:52:39.498029Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.498037Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-07-09T10:52:39.498043Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=1 seq=2 payload_len=10 state=Established [INFO] [stdout] 2026-07-09T10:52:39.498059Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=1 seq=2 payload_len=10 [INFO] [stdout] 2026-07-09T10:52:39.498058Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=42 current_state=Connecting target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.498076Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=42 from="Connecting" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.498081Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 253, timestamp: 57, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.498092Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=42 peer_cid=142 [INFO] [stdout] 2026-07-09T10:52:39.498109Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.498110Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=42 frame=Push { header: ShortHeader { command: Push, connection_id: 42, payload_length: 4, recv_window_size: 256, timestamp: 8, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.498112Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.498124Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=1 count=3 [INFO] [stdout] 2026-07-09T10:52:39.498165Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-07-09T10:52:39.498160Z TRACE mio::poll: registering event source with poller: token=Token(136414402492928), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.498175Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=44 current_state=Connecting target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.498189Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-07-09T10:52:39.498190Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=44 from="Connecting" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.498196Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=43 [INFO] [stdout] 2026-07-09T10:52:39.498203Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=44 peer_cid=144 [INFO] [stdout] 2026-07-09T10:52:39.498220Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.498217Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=44 frame=Push { header: ShortHeader { command: Push, connection_id: 44, payload_length: 4, recv_window_size: 256, timestamp: 4, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.498227Z TRACE mio::poll: registering event source with poller: token=Token(136413597232768), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.498235Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.498236Z TRACE mio::poll: registering event source with poller: token=Token(136414402493312), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.498236Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 44, payload_length: 4, recv_window_size: 256, timestamp: 4, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.498247Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-07-09T10:52:39.498254Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-07-09T10:52:39.498252Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=44 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-07-09T10:52:39.498258Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-07-09T10:52:39.498266Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=44 seq=0 payload_len=4 [INFO] [stdout] 2026-07-09T10:52:39.498269Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-07-09T10:52:39.498280Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-07-09T10:52:39.498293Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-07-09T10:52:39.498286Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=44 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 144, payload_length: 8, recv_window_size: 255, timestamp: 3, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.498296Z TRACE mio::poll: registering event source with poller: token=Token(136413597233152), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.498304Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-07-09T10:52:39.498312Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=44 [INFO] [stdout] 2026-07-09T10:52:39.498315Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-07-09T10:52:39.498324Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=44 count=1 [INFO] [stdout] 2026-07-09T10:52:39.498346Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=44 state=Established [INFO] [stdout] 2026-07-09T10:52:39.498384Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.498399Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-07-09T10:52:39.498410Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.498329Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=43 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 143, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 0, recv_next_sequence: 1 }, payload: b"************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************" } [INFO] [stdout] 2026-07-09T10:52:39.498423Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=44 [INFO] [stdout] 2026-07-09T10:52:39.498429Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:48784) [INFO] [stdout] 2026-07-09T10:52:39.498455Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.498478Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.498484Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.498489Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-07-09T10:52:39.498500Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-07-09T10:52:39.498501Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-07-09T10:52:39.498505Z TRACE mio::poll: registering event source with poller: token=Token(136414402540800), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.498510Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.498512Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-07-09T10:52:39.498523Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-07-09T10:52:39.498529Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:39613) [INFO] [stdout] 2026-07-09T10:52:39.498533Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-07-09T10:52:39.498443Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=43 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 143, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 1, recv_next_sequence: 1 }, payload: b"************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************" } [INFO] [stdout] 2026-07-09T10:52:39.498546Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-07-09T10:52:39.498556Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-07-09T10:52:39.498585Z TRACE mio::poll: registering event source with poller: token=Token(136413597255680), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.498569Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=44 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 144, payload_length: 1200, recv_window_size: 256, timestamp: 3, sequence_number: 0, recv_next_sequence: 1 }, payload: b"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" } [INFO] [stdout] 2026-07-09T10:52:39.498655Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.498730Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.498746Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-07-09T10:52:39.498673Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=44 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 144, payload_length: 1200, recv_window_size: 256, timestamp: 3, sequence_number: 1, recv_next_sequence: 1 }, payload: b"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" } [INFO] [stdout] 2026-07-09T10:52:39.498756Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.498768Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:46988) [INFO] [stdout] 2026-07-09T10:52:39.498799Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.498805Z  INFO kestrel_protocol::core::tests::state: Connecting for the first time... [INFO] [stdout] 2026-07-09T10:52:39.498815Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-07-09T10:52:39.498825Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.498832Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-07-09T10:52:39.498763Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=44 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 144, payload_length: 1200, recv_window_size: 256, timestamp: 3, sequence_number: 2, recv_next_sequence: 1 }, payload: b"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" } [INFO] [stdout] 2026-07-09T10:52:39.498837Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:59314) [INFO] [stdout] 2026-07-09T10:52:39.498849Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-07-09T10:52:39.498844Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=1 [INFO] [stdout] 2026-07-09T10:52:39.498891Z  INFO kestrel_protocol::core::tests::state: [Client] Connecting... [INFO] [stdout] 2026-07-09T10:52:39.498917Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-07-09T10:52:39.498920Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.498932Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-07-09T10:52:39.498956Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.498966Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.498977Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=146 remote_addr=127.0.0.1:9045 [INFO] [stdout] 2026-07-09T10:52:39.498556Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=43 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 143, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 2, recv_next_sequence: 1 }, payload: b"************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************" } [INFO] [stdout] 2026-07-09T10:52:39.499007Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-07-09T10:52:39.499025Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-07-09T10:52:39.499033Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 42, payload_length: 4, recv_window_size: 256, timestamp: 8, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.499044Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-07-09T10:52:39.499060Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-07-09T10:52:39.499061Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.499055Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=42 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-07-09T10:52:39.499074Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=42 seq=0 payload_len=4 [INFO] [stdout] 2026-07-09T10:52:39.499103Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.499016Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=43 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 143, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 3, recv_next_sequence: 1 }, payload: b"************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************" } [INFO] [stdout] 2026-07-09T10:52:39.499098Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=42 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 142, payload_length: 8, recv_window_size: 255, timestamp: 8, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.499128Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=42 [INFO] [stdout] 2026-07-09T10:52:39.499142Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=42 count=1 [INFO] [stdout] 2026-07-09T10:52:39.499166Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=42 state=Established [INFO] [stdout] 2026-07-09T10:52:39.499172Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=33535875 [INFO] [stdout] 2026-07-09T10:52:39.499123Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=43 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 143, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 4, recv_next_sequence: 1 }, payload: b"************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************" } [INFO] [stdout] 2026-07-09T10:52:39.499217Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=33535875 remote_addr=127.0.0.1:48784 [INFO] [stdout] 2026-07-09T10:52:39.499220Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=2276028173 [INFO] [stdout] 2026-07-09T10:52:39.499251Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=42 [INFO] [stdout] 2026-07-09T10:52:39.499266Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2276028173 remote_addr=127.0.0.1:39613 [INFO] [stdout] 2026-07-09T10:52:39.499280Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.499281Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.499292Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.499303Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-07-09T10:52:39.499226Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=43 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 143, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 5, recv_next_sequence: 1 }, payload: b"************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************" } [INFO] [stdout] 2026-07-09T10:52:39.499313Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-07-09T10:52:39.499324Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-07-09T10:52:39.499310Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=33535875 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.499334Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-07-09T10:52:39.499330Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.499344Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-07-09T10:52:39.499354Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-07-09T10:52:39.499364Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-07-09T10:52:39.499358Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=2276028173 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.499394Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.499327Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=43 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 143, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 6, recv_next_sequence: 1 }, payload: b"************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************" } [INFO] [stdout] 2026-07-09T10:52:39.499418Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=33535875 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.499429Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.499452Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=2276028173 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.499376Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=42 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 142, payload_length: 1200, recv_window_size: 256, timestamp: 8, sequence_number: 0, recv_next_sequence: 1 }, payload: b"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))" } [INFO] [stdout] 2026-07-09T10:52:39.499480Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=33535875 addr=127.0.0.1:48784 [INFO] [stdout] 2026-07-09T10:52:39.499509Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=33535875 addr=127.0.0.1:48784 [INFO] [stdout] 2026-07-09T10:52:39.499431Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=43 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 143, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 7, recv_next_sequence: 1 }, payload: b"************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************" } [INFO] [stdout] 2026-07-09T10:52:39.499526Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=2276028173 addr=127.0.0.1:39613 [INFO] [stdout] 2026-07-09T10:52:39.499485Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=42 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 142, payload_length: 1200, recv_window_size: 256, timestamp: 8, sequence_number: 1, recv_next_sequence: 1 }, payload: b"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))" } [INFO] [stdout] 2026-07-09T10:52:39.499558Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for outbound connection addr=127.0.0.1:48784 cid=33535875 [INFO] [stdout] 2026-07-09T10:52:39.499598Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=33535875 remote_addr=127.0.0.1:48784 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 33535875 } } [INFO] [stdout] 2026-07-09T10:52:39.499557Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=43 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 143, payload_length: 640, recv_window_size: 256, timestamp: 6, sequence_number: 8, recv_next_sequence: 1 }, payload: b"****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************" } [INFO] [stdout] 2026-07-09T10:52:39.499559Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=2276028173 addr=127.0.0.1:39613 [INFO] [stdout] 2026-07-09T10:52:39.499629Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=33535875 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.499635Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=43 state=Established [INFO] [stdout] 2026-07-09T10:52:39.499574Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=42 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 142, payload_length: 1200, recv_window_size: 256, timestamp: 8, sequence_number: 2, recv_next_sequence: 1 }, payload: b"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))" } [INFO] [stdout] 2026-07-09T10:52:39.499665Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:48784 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.499676Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for outbound connection addr=127.0.0.1:39613 cid=2276028173 [INFO] [stdout] 2026-07-09T10:52:39.499705Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2276028173 remote_addr=127.0.0.1:39613 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 2276028173 } } [INFO] [stdout] 2026-07-09T10:52:39.499712Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:48784 frame_count=1 bytes=10 [INFO] [stdout] 2026-07-09T10:52:39.499738Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2276028173 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.499665Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=42 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 142, payload_length: 1200, recv_window_size: 256, timestamp: 8, sequence_number: 3, recv_next_sequence: 1 }, payload: b"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))" } [INFO] [stdout] 2026-07-09T10:52:39.499773Z  INFO kestrel_protocol::core::tests::state: First connection established. [INFO] [stdout] 2026-07-09T10:52:39.499776Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:39613 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.499795Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.499810Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:39613 frame_count=1 bytes=10 [INFO] [stdout] 2026-07-09T10:52:39.499827Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=45 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-07-09T10:52:39.499756Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=42 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 142, payload_length: 1200, recv_window_size: 256, timestamp: 8, sequence_number: 4, recv_next_sequence: 1 }, payload: b"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))" } [INFO] [stdout] 2026-07-09T10:52:39.499897Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.499908Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.500164Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.500196Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=146 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.500120Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=42 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 142, payload_length: 1200, recv_window_size: 256, timestamp: 8, sequence_number: 5, recv_next_sequence: 1 }, payload: b"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))" } [INFO] [stdout] 2026-07-09T10:52:39.500236Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=42 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 142, payload_length: 1200, recv_window_size: 256, timestamp: 8, sequence_number: 6, recv_next_sequence: 1 }, payload: b"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))" } [INFO] [stdout] 2026-07-09T10:52:39.500346Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=42 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 142, payload_length: 1200, recv_window_size: 256, timestamp: 8, sequence_number: 7, recv_next_sequence: 1 }, payload: b"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))" } [INFO] [stdout] 2026-07-09T10:52:39.500469Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=42 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 142, payload_length: 640, recv_window_size: 256, timestamp: 8, sequence_number: 8, recv_next_sequence: 1 }, payload: b"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))" } [INFO] [stdout] 2026-07-09T10:52:39.500536Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=7 [INFO] [stdout] 2026-07-09T10:52:39.500551Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=42 state=Established [INFO] [stdout] 2026-07-09T10:52:39.500565Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=7 state=Established [INFO] [stdout] 2026-07-09T10:52:39.500604Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=108 [INFO] [stdout] 2026-07-09T10:52:39.500613Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=145 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.500622Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=108 state=Established [INFO] [stdout] 2026-07-09T10:52:39.500672Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=6 [INFO] [stdout] 2026-07-09T10:52:39.500696Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=6 state=Established [INFO] [stdout] 2026-07-09T10:52:39.500735Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=109 [INFO] [stdout] 2026-07-09T10:52:39.500755Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=109 state=Established [INFO] [stdout] 2026-07-09T10:52:39.500792Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=8 [INFO] [stdout] 2026-07-09T10:52:39.500811Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.500914Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=146 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.500944Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.500981Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=147 remote_addr=127.0.0.1:9046 [INFO] [stdout] 2026-07-09T10:52:39.501056Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.501072Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.501097Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=46 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-07-09T10:52:39.501105Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.501130Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=147 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.501146Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.499909Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:46988 frame_count=1 bytes=10 [INFO] [stdout] 2026-07-09T10:52:39.501175Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.501199Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=46 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.501224Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=33535875 [INFO] [stdout] 2026-07-09T10:52:39.501245Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=33535875 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.501267Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.501288Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:46988 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.501292Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=46 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.501309Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:46988 [INFO] [stdout] 2026-07-09T10:52:39.501325Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=1330556850 [INFO] [stdout] 2026-07-09T10:52:39.501348Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=9 [INFO] [stdout] 2026-07-09T10:52:39.501364Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=1330556850 remote_addr=127.0.0.1:46988 [INFO] [stdout] 2026-07-09T10:52:39.501370Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=9 state=Established [INFO] [stdout] 2026-07-09T10:52:39.501410Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=110 [INFO] [stdout] 2026-07-09T10:52:39.501430Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=110 state=Established [INFO] [stdout] 2026-07-09T10:52:39.501430Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.501470Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=1330556850 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.501477Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=10 [INFO] [stdout] 2026-07-09T10:52:39.501500Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=10 state=Established [INFO] [stdout] 2026-07-09T10:52:39.501537Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=112 [INFO] [stdout] 2026-07-09T10:52:39.501554Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=112 state=Established [INFO] [stdout] 2026-07-09T10:52:39.501552Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=1330556850 addr=127.0.0.1:46988 [INFO] [stdout] 2026-07-09T10:52:39.501583Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=1330556850 addr=127.0.0.1:46988 [INFO] [stdout] 2026-07-09T10:52:39.501602Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:46988 cid=1330556850 [INFO] [stdout] 2026-07-09T10:52:39.501637Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:46988 cid=1330556850 [INFO] [stdout] 2026-07-09T10:52:39.501656Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1330556850 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.501680Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=111 [INFO] [stdout] 2026-07-09T10:52:39.501695Z  INFO kestrel_protocol::core::tests::state: Accepted first connection from 127.0.0.1:46988 [INFO] [stdout] 2026-07-09T10:52:39.501703Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=111 state=Established [INFO] [stdout] 2026-07-09T10:52:39.501730Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=1330556850 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.501739Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=12 [INFO] [stdout] 2026-07-09T10:52:39.501752Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1330556850 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.501760Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=12 state=Established [INFO] [stdout] 2026-07-09T10:52:39.501778Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.501790Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.501798Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=11 [INFO] [stdout] 2026-07-09T10:52:39.501806Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=1330556850 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.501819Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=11 state=Established [INFO] [stdout] 2026-07-09T10:52:39.501821Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1330556850 remote_addr=127.0.0.1:46988 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 33535875, source_cid: 1330556850 } } [INFO] [stdout] 2026-07-09T10:52:39.501852Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1330556850 [INFO] [stdout] 2026-07-09T10:52:39.501857Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=113 [INFO] [stdout] 2026-07-09T10:52:39.499952Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2 [INFO] [stdout] 2026-07-09T10:52:39.501899Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=113 state=Established [INFO] [stdout] 2026-07-09T10:52:39.499965Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:59314 frame_count=1 bytes=10 [INFO] [stdout] 2026-07-09T10:52:39.498854Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=44 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 144, payload_length: 1200, recv_window_size: 256, timestamp: 3, sequence_number: 3, recv_next_sequence: 1 }, payload: b"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" } [INFO] [stdout] 2026-07-09T10:52:39.497911Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=2965884667 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.502010Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=3756382548 frame=Ack { header: ShortHeader { command: Ack, connection_id: 3788118680, payload_length: 8, recv_window_size: 255, timestamp: 4014, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.502049Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 3788118680, payload_length: 8, recv_window_size: 255, timestamp: 4014, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.502060Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=146 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.502087Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=146 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.502087Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=3756382548 recv_next_seq=0 recv_window=255 payload_len=8 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.502126Z  WARN kestrel_protocol::core::endpoint::processing::processors::ack: Ignoring ACK frame in unexpected state cid=3756382548 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.502141Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.502146Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3756382548 [INFO] [stdout] test core::tests::reliability::test_data_flow_with_acks ... ok2026-07-09T10:52:39.502155Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] [INFO] [stdout] 2026-07-09T10:52:39.502165Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3756382548 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.502168Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=146 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.502181Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=146 remote_addr=127.0.0.1:9045 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 46, source_cid: 146 } } [INFO] [stdout] 2026-07-09T10:52:39.502212Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=146 [INFO] [stdout] 2026-07-09T10:52:39.502223Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=2965884667 addr=127.0.0.1:47341 [INFO] [stdout] 2026-07-09T10:52:39.502232Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=146 state=Established [INFO] [stdout] 2026-07-09T10:52:39.502245Z DEBUG kestrel_protocol::socket::event_loop::routing: 相同地址存在旧连接,移除旧连接 | Old connection exists for same address, removing old connection old_cid=4264386720 new_cid=2965884667 addr=127.0.0.1:47341 [INFO] [stdout] 2026-07-09T10:52:39.502272Z DEBUG kestrel_protocol::socket::event_loop::routing: 移除连接的地址映射 | Removed address mapping for connection cid=4264386720 addr=127.0.0.1:47341 [INFO] [stdout] 2026-07-09T10:52:39.502293Z DEBUG kestrel_protocol::socket::event_loop::routing: 清理连接状态完成,CID现在处于 draining 状态 | Cleaned up connection state. CID is now in draining state. cid=4264386720 [INFO] [stdout] 2026-07-09T10:52:39.502299Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=46 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 46 } } [INFO] [stdout] 2026-07-09T10:52:39.502312Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=2965884667 addr=127.0.0.1:47341 [INFO] [stdout] test packet::tests::test_ack_frame_roundtrip ... ok2026-07-09T10:52:39.502331Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:47341 cid=2965884667 [INFO] [stdout] [INFO] [stdout] 2026-07-09T10:52:39.502334Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=46 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.502333Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=114 [INFO] [stdout] 2026-07-09T10:52:39.502357Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=46 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 46, source_cid: 146 } } [INFO] [stdout] 2026-07-09T10:52:39.502360Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=114 state=Established [INFO] [stdout] 2026-07-09T10:52:39.502367Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:47341 cid=2965884667 [INFO] [stdout] 2026-07-09T10:52:39.502381Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 46, source_cid: 146 } } [INFO] [stdout] 2026-07-09T10:52:39.502386Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2965884667 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.502402Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=13 [INFO] [stdout] 2026-07-09T10:52:39.502403Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=46 peer_cid=146 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.502421Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=13 state=Established [INFO] [stdout] 2026-07-09T10:52:39.502453Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.502467Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=14 [INFO] [stdout] 2026-07-09T10:52:39.502485Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.502488Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=14 state=Established [INFO] [stdout] test packet::tests::test_coalesced_frames_decode ... ok [INFO] [stdout] 2026-07-09T10:52:39.502525Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=115 [INFO] [stdout] 2026-07-09T10:52:39.502526Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-07-09T10:52:39.502544Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=115 state=Established [INFO] [stdout] 2026-07-09T10:52:39.502543Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=46 current_state=Connecting target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.502561Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=46 from="Connecting" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.502580Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=46 peer_cid=146 [INFO] [stdout] 2026-07-09T10:52:39.502497Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=44 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 144, payload_length: 1200, recv_window_size: 256, timestamp: 3, sequence_number: 4, recv_next_sequence: 1 }, payload: b"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" } [INFO] [stdout] 2026-07-09T10:52:39.502599Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=46 frame=Push { header: ShortHeader { command: Push, connection_id: 46, payload_length: 4, recv_window_size: 256, timestamp: 3, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.502623Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 46, payload_length: 4, recv_window_size: 256, timestamp: 3, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] test packet::tests::test_fin_frame_roundtrip ... ok [INFO] [stdout] 2026-07-09T10:52:39.502642Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=46 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-07-09T10:52:39.502661Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=46 seq=0 payload_len=4 [INFO] [stdout] 2026-07-09T10:52:39.502663Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=15 [INFO] [stdout] 2026-07-09T10:52:39.502687Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=15 state=Established [INFO] [stdout] 2026-07-09T10:52:39.502688Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=46 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 146, payload_length: 8, recv_window_size: 255, timestamp: 1, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.502615Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=44 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 144, payload_length: 1200, recv_window_size: 256, timestamp: 3, sequence_number: 5, recv_next_sequence: 1 }, payload: b"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" } [INFO] [stdout] 2026-07-09T10:52:39.502720Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=46 [INFO] [stdout] 2026-07-09T10:52:39.502723Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=116 [INFO] [stdout] 2026-07-09T10:52:39.502736Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=46 count=1 [INFO] [stdout] 2026-07-09T10:52:39.502739Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=116 state=Established [INFO] [stdout] test packet::tests::test_frame_decode_no_header_pollution ... ok [INFO] [stdout] 2026-07-09T10:52:39.502765Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=46 state=Established [INFO] [stdout] 2026-07-09T10:52:39.502772Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=117 [INFO] [stdout] 2026-07-09T10:52:39.502789Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=117 state=Established [INFO] [stdout] 2026-07-09T10:52:39.502728Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=44 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 144, payload_length: 1200, recv_window_size: 256, timestamp: 3, sequence_number: 6, recv_next_sequence: 1 }, payload: b"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" } [INFO] [stdout] 2026-07-09T10:52:39.502861Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=46 [INFO] [stdout] 2026-07-09T10:52:39.502956Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.502846Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=44 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 144, payload_length: 1200, recv_window_size: 256, timestamp: 3, sequence_number: 7, recv_next_sequence: 1 }, payload: b"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" } [INFO] [stdout] 2026-07-09T10:52:39.502976Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.502991Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-07-09T10:52:39.503003Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-07-09T10:52:39.503016Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-07-09T10:52:39.503027Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-07-09T10:52:39.503038Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-07-09T10:52:39.502993Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=44 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 144, payload_length: 640, recv_window_size: 256, timestamp: 3, sequence_number: 8, recv_next_sequence: 1 }, payload: b"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" } [INFO] [stdout] 2026-07-09T10:52:39.503050Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-07-09T10:52:39.503061Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-07-09T10:52:39.503070Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=44 state=Established [INFO] [stdout] 2026-07-09T10:52:39.503098Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.503114Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.503135Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=147 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.503131Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=45 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.503151Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=148 remote_addr=127.0.0.1:9047 [INFO] [stdout] 2026-07-09T10:52:39.503076Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=46 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 146, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 0, recv_next_sequence: 1 }, payload: b"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" } [INFO] [stdout] 2026-07-09T10:52:39.503201Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.503225Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=45 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] test packet::tests::test_ping_frame_roundtrip ... ok2026-07-09T10:52:39.503257Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] [INFO] [stdout] 2026-07-09T10:52:39.503282Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=47 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-07-09T10:52:39.503199Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=46 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 146, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 1, recv_next_sequence: 1 }, payload: b"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" } [INFO] [stdout] 2026-07-09T10:52:39.503317Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=145 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.503331Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.503341Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=145 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.503361Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.503374Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.503384Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.503385Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=47 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] test packet::tests::test_push_frame_roundtrip ... ok2026-07-09T10:52:39.503398Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=145 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.503317Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=46 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 146, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 2, recv_next_sequence: 1 }, payload: b"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" } [INFO] [stdout] [INFO] [stdout] 2026-07-09T10:52:39.503428Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=145 remote_addr=127.0.0.1:9044 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 45, source_cid: 145 } } [INFO] [stdout] 2026-07-09T10:52:39.503455Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.503468Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=145 [INFO] [stdout] 2026-07-09T10:52:39.503482Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=47 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.503488Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=145 state=Established [INFO] [stdout] 2026-07-09T10:52:39.503530Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.503432Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=46 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 146, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 3, recv_next_sequence: 1 }, payload: b"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" } [INFO] [stdout] 2026-07-09T10:52:39.503581Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=147 current_state=SynReceived target_state=Established [INFO] [stdout] test packet::tests::test_syn_ack_frame_roundtrip ... 2026-07-09T10:52:39.503608Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=147 from="SynReceived" to="Established" [INFO] [stdout] ok [INFO] [stdout] 2026-07-09T10:52:39.503623Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=118 [INFO] [stdout] 2026-07-09T10:52:39.503634Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.503641Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=118 state=Established [INFO] [stdout] 2026-07-09T10:52:39.503646Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.503671Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=147 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.503674Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=17 [INFO] [stdout] 2026-07-09T10:52:39.503692Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=17 state=Established [INFO] [stdout] 2026-07-09T10:52:39.503686Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=147 remote_addr=127.0.0.1:9046 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 47, source_cid: 147 } } [INFO] [stdout] 2026-07-09T10:52:39.503615Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=46 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 146, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 4, recv_next_sequence: 1 }, payload: b"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" } [INFO] [stdout] test packet::tests::test_syn_frame_roundtrip ... ok2026-07-09T10:52:39.503718Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=147 [INFO] [stdout] [INFO] [stdout] 2026-07-09T10:52:39.503722Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=18 [INFO] [stdout] 2026-07-09T10:52:39.503581Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1330556850 state=Established [INFO] [stdout] 2026-07-09T10:52:39.503741Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=147 state=Established [INFO] [stdout] 2026-07-09T10:52:39.503559Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.503771Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:46988 frame_count=2 [INFO] [stdout] 2026-07-09T10:52:39.503797Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=148 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.503817Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:46988 frame_count=2 bytes=35 [INFO] [stdout] 2026-07-09T10:52:39.503732Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=46 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 146, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 5, recv_next_sequence: 1 }, payload: b"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" } [INFO] [stdout] 2026-07-09T10:52:39.503866Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.503848Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=46 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 146, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 6, recv_next_sequence: 1 }, payload: b"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" } [INFO] [stdout] 2026-07-09T10:52:39.503964Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:48784 frame_count=2 bytes=35 [INFO] [stdout] 2026-07-09T10:52:39.504018Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.504025Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:48784 frame_count=2 [INFO] [stdout] 2026-07-09T10:52:39.504053Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=149 remote_addr=127.0.0.1:9048 [INFO] [stdout] 2026-07-09T10:52:39.503981Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=46 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 146, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 7, recv_next_sequence: 1 }, payload: b"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" } [INFO] [stdout] 2026-07-09T10:52:39.504076Z TRACE kestrel_protocol::socket::event_loop::draining: Cleaned up expired draining CIDs. cleaned_count=2 [INFO] [stdout] 2026-07-09T10:52:39.504080Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=33535875 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 33535875, source_cid: 1330556850 } } [INFO] [stdout] 2026-07-09T10:52:39.504082Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=46 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 146, payload_length: 640, recv_window_size: 256, timestamp: 1, sequence_number: 8, recv_next_sequence: 1 }, payload: b"----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" } [INFO] [stdout] 2026-07-09T10:52:39.504130Z TRACE kestrel_protocol::socket::event_loop::draining: Cleaned up expired draining CIDs. cleaned_count=1 [INFO] [stdout] 2026-07-09T10:52:39.504154Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=46 state=Established [INFO] [stdout] 2026-07-09T10:52:39.504177Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=45 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 45 } } [INFO] [stdout] 2026-07-09T10:52:39.504197Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.504207Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=148 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.504217Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=45 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.504226Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.504249Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=45 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 45, source_cid: 145 } } [INFO] [stdout] test socket::event_loop::draining::tests::test_draining_pool_cleanup ... ok2026-07-09T10:52:39.504269Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 45, source_cid: 145 } } [INFO] [stdout] [INFO] [stdout] 2026-07-09T10:52:39.504282Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.504290Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=45 peer_cid=145 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.504334Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.504349Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.504361Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-07-09T10:52:39.504371Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-07-09T10:52:39.504368Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.504399Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-07-09T10:52:39.504416Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.504418Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=5 first_frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 8, recv_window_size: 256, timestamp: 51, sequence_number: 0, recv_next_sequence: 0 }, payload: b"packet-0" } [INFO] [stdout] 2026-07-09T10:52:39.504425Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.504456Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-07-09T10:52:39.504466Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.504469Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=45 current_state=Connecting target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.504487Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=45 from="Connecting" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.504499Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.504503Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=45 peer_cid=145 [INFO] [stdout] 2026-07-09T10:52:39.504521Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=45 frame=Push { header: ShortHeader { command: Push, connection_id: 45, payload_length: 4, recv_window_size: 256, timestamp: 8, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.504528Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=48 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-07-09T10:52:39.504536Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=18 state=Established [INFO] [stdout] 2026-07-09T10:52:39.504543Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 45, payload_length: 4, recv_window_size: 256, timestamp: 8, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.504561Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=45 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-07-09T10:52:39.504572Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.504580Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=16 [INFO] [stdout] 2026-07-09T10:52:39.504578Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=45 seq=0 payload_len=4 [INFO] [stdout] 2026-07-09T10:52:39.504598Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=16 state=Established [INFO] [stdout] 2026-07-09T10:52:39.504618Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] test socket::event_loop::draining::tests::test_draining_pool_insert_and_contains ... 2026-07-09T10:52:39.504616Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=45 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 145, payload_length: 8, recv_window_size: 255, timestamp: 4, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] ok [INFO] [stdout] 2026-07-09T10:52:39.504636Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.504647Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=45 [INFO] [stdout] 2026-07-09T10:52:39.504642Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=48 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.504662Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=45 count=1 [INFO] [stdout] 2026-07-09T10:52:39.504666Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.504688Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=45 state=Established [INFO] [stdout] 2026-07-09T10:52:39.504689Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=149 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.504699Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.504719Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=48 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.504739Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.504753Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=119 [INFO] [stdout] 2026-07-09T10:52:39.504777Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=119 state=Established [INFO] [stdout] 2026-07-09T10:52:39.504779Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=45 [INFO] [stdout] 2026-07-09T10:52:39.504805Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.504818Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.504820Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.504819Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=148 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.504829Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-07-09T10:52:39.504838Z DEBUG kestrel_protocol::socket::event_loop::routing: 缓存早到的PUSH帧 127.0.0.1:8080 CID 999 | Cached early arrival PUSH frame from 127.0.0.1:8080 with CID 999 [INFO] [stdout] 2026-07-09T10:52:39.504842Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-07-09T10:52:39.504844Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=148 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.504853Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-07-09T10:52:39.504864Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-07-09T10:52:39.504897Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-07-09T10:52:39.504860Z DEBUG kestrel_protocol::socket::event_loop::routing: 早到帧已缓存 | Early arrival frame cached cid=999 addr=127.0.0.1:8080 cache_key=999 [INFO] [stdout] 2026-07-09T10:52:39.504901Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.504908Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-07-09T10:52:39.504914Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.504918Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-07-09T10:52:39.504906Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 33535875, source_cid: 1330556850 } } [INFO] [stdout] 2026-07-09T10:52:39.504921Z DEBUG kestrel_protocol::socket::event_loop::routing: 清理超时的早到帧缓存 | Cleaned up expired early arrival frame cache cache_key=999 [INFO] [stdout] 2026-07-09T10:52:39.504926Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=148 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.504939Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=33535875 peer_cid=1330556850 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.504939Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=148 remote_addr=127.0.0.1:9047 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 48, source_cid: 148 } } [INFO] [stdout] 2026-07-09T10:52:39.504968Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=148 [INFO] [stdout] 2026-07-09T10:52:39.504993Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.505014Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.504932Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=45 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 145, payload_length: 1200, recv_window_size: 256, timestamp: 4, sequence_number: 0, recv_next_sequence: 1 }, payload: b",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," } [INFO] [stdout] test socket::event_loop::routing::tests::test_cleanup_expired_frames ... ok [INFO] [stdout] 2026-07-09T10:52:39.505061Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=45 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 145, payload_length: 1200, recv_window_size: 256, timestamp: 4, sequence_number: 1, recv_next_sequence: 1 }, payload: b",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," } [INFO] [stdout] 2026-07-09T10:52:39.505149Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-07-09T10:52:39.505162Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.505173Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=33535875 current_state=Connecting target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.505193Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=33535875 from="Connecting" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.505211Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=33535875 peer_cid=1330556850 [INFO] [stdout] 2026-07-09T10:52:39.505229Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=33535875 frame=Push { header: ShortHeader { command: Push, connection_id: 33535875, payload_length: 4, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"ack1" } [INFO] [stdout] 2026-07-09T10:52:39.505242Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.505255Z DEBUG kestrel_protocol::socket::event_loop::routing: 缓存早到的PUSH帧 127.0.0.1:8080 CID 123 | Cached early arrival PUSH frame from 127.0.0.1:8080 with CID 123 [INFO] [stdout] 2026-07-09T10:52:39.505252Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 33535875, payload_length: 4, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"ack1" } [INFO] [stdout] 2026-07-09T10:52:39.505172Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=45 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 145, payload_length: 1200, recv_window_size: 256, timestamp: 4, sequence_number: 2, recv_next_sequence: 1 }, payload: b",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," } [INFO] [stdout] 2026-07-09T10:52:39.505271Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=33535875 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-07-09T10:52:39.505273Z DEBUG kestrel_protocol::socket::event_loop::routing: 早到帧已缓存 | Early arrival frame cached cid=123 addr=127.0.0.1:8080 cache_key=123 [INFO] [stdout] 2026-07-09T10:52:39.505287Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=33535875 seq=0 payload_len=4 [INFO] [stdout] 2026-07-09T10:52:39.505295Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=123 addr=127.0.0.1:8080 [INFO] [stdout] 2026-07-09T10:52:39.505323Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=33535875 remote_addr=127.0.0.1:48784 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1330556850, payload_length: 8, recv_window_size: 255, timestamp: 64, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.505330Z DEBUG kestrel_protocol::socket::event_loop::routing: 成功转发缓存的早到帧 | Successfully forwarded cached early arrival frames cid=123 cache_key=123 count=1 [INFO] [stdout] 2026-07-09T10:52:39.505351Z DEBUG kestrel_protocol::socket::event_loop::routing: 总共转发缓存帧 | Total forwarded cached frames cid=123 addr=127.0.0.1:8080 total_count=1 [INFO] [stdout] 2026-07-09T10:52:39.505359Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=33535875 [INFO] [stdout] 2026-07-09T10:52:39.505373Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=33535875 count=1 [INFO] [stdout] 2026-07-09T10:52:39.505282Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=45 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 145, payload_length: 1200, recv_window_size: 256, timestamp: 4, sequence_number: 3, recv_next_sequence: 1 }, payload: b",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," } [INFO] [stdout] 2026-07-09T10:52:39.505399Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=33535875 state=Established [INFO] [stdout] 2026-07-09T10:52:39.505435Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:48784 frame_count=1 [INFO] [stdout] test socket::event_loop::routing::tests::test_early_frame_caching ... ok [INFO] [stdout] 2026-07-09T10:52:39.505494Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:48784 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.505422Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=45 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 145, payload_length: 1200, recv_window_size: 256, timestamp: 4, sequence_number: 4, recv_next_sequence: 1 }, payload: b",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," } [INFO] [stdout] 2026-07-09T10:52:39.505612Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=121 [INFO] [stdout] 2026-07-09T10:52:39.505611Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.505538Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=45 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 145, payload_length: 1200, recv_window_size: 256, timestamp: 4, sequence_number: 5, recv_next_sequence: 1 }, payload: b",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," } [INFO] [stdout] 2026-07-09T10:52:39.505671Z  INFO kestrel_protocol::core::tests::state: Client read 4 bytes: [97, 99, 107, 49] [INFO] [stdout] 2026-07-09T10:52:39.505693Z  INFO kestrel_protocol::core::tests::state: Received server ack for first connection [INFO] [stdout] 2026-07-09T10:52:39.505696Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.505708Z  INFO kestrel_protocol::core::tests::state: First connection shut down from client side. [INFO] [stdout] 2026-07-09T10:52:39.505700Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=148 state=Established [INFO] [stdout] 2026-07-09T10:52:39.505710Z DEBUG kestrel_protocol::socket::event_loop::routing: 缓存早到的PUSH帧 127.0.0.1:8080 CID 555 | Cached early arrival PUSH frame from 127.0.0.1:8080 with CID 555 [INFO] [stdout] 2026-07-09T10:52:39.505728Z DEBUG kestrel_protocol::socket::event_loop::routing: 早到帧已缓存 | Early arrival frame cached cid=555 addr=127.0.0.1:8080 cache_key=555 [INFO] [stdout] 2026-07-09T10:52:39.505646Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=45 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 145, payload_length: 1200, recv_window_size: 256, timestamp: 4, sequence_number: 6, recv_next_sequence: 1 }, payload: b",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," } [INFO] [stdout] 2026-07-09T10:52:39.505747Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=555 addr=127.0.0.1:8080 [INFO] [stdout] 2026-07-09T10:52:39.505745Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:46988 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.505774Z DEBUG kestrel_protocol::socket::event_loop::routing: 成功转发缓存的早到帧 | Successfully forwarded cached early arrival frames cid=555 cache_key=555 count=1 [INFO] [stdout] 2026-07-09T10:52:39.505789Z DEBUG kestrel_protocol::socket::event_loop::routing: 总共转发缓存帧 | Total forwarded cached frames cid=555 addr=127.0.0.1:8080 total_count=1 [INFO] [stdout] 2026-07-09T10:52:39.505785Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=48 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 48 } } [INFO] [stdout] 2026-07-09T10:52:39.505798Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=33535875 current_state=Established [INFO] [stdout] 2026-07-09T10:52:39.505815Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=48 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.505817Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=33535875 from="Established" to="Closing" [INFO] [stdout] 2026-07-09T10:52:39.505831Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=48 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 48, source_cid: 148 } } [INFO] [stdout] 2026-07-09T10:52:39.505840Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.505756Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=45 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 145, payload_length: 1200, recv_window_size: 256, timestamp: 4, sequence_number: 7, recv_next_sequence: 1 }, payload: b",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," } [INFO] [stdout] 2026-07-09T10:52:39.505847Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 48, source_cid: 148 } } [INFO] [stdout] 2026-07-09T10:52:39.505854Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Added packet to simple retransmission tracking seq=0 max_retries=5 retry_interval_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.505863Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=48 peer_cid=148 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.502439Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2965884667 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.505928Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.505927Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2965884667 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.505948Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.505969Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.505958Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 8, recv_window_size: 256, timestamp: 51, sequence_number: 0, recv_next_sequence: 0 }, payload: b"packet-0" } [INFO] [stdout] 2026-07-09T10:52:39.505982Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.505985Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-07-09T10:52:39.505987Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 8, recv_window_size: 256, timestamp: 51, sequence_number: 0, recv_next_sequence: 0 }, payload: b"packet-0" } [INFO] [stdout] 2026-07-09T10:52:39.505998Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=48 current_state=Connecting target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.506008Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=0 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.506033Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=48 from="Connecting" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.506038Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=2965884667 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.506044Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=0 payload_len=8 [INFO] [stdout] 2026-07-09T10:52:39.506053Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=48 peer_cid=148 [INFO] [stdout] 2026-07-09T10:52:39.506055Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2965884667 remote_addr=127.0.0.1:47341 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 3756382548, source_cid: 2965884667 } } [INFO] [stdout] 2026-07-09T10:52:39.506078Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=48 frame=Push { header: ShortHeader { command: Push, connection_id: 48, payload_length: 4, recv_window_size: 256, timestamp: 1, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.506077Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 52, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.506098Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2965884667 [INFO] [stdout] 2026-07-09T10:52:39.506104Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 48, payload_length: 4, recv_window_size: 256, timestamp: 1, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.506119Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2965884667 state=Established [INFO] [stdout] 2026-07-09T10:52:39.506115Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 8, recv_window_size: 256, timestamp: 51, sequence_number: 1, recv_next_sequence: 0 }, payload: b"packet-1" } [INFO] [stdout] 2026-07-09T10:52:39.506122Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=48 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-07-09T10:52:39.506139Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=48 seq=0 payload_len=4 [INFO] [stdout] 2026-07-09T10:52:39.506137Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 8, recv_window_size: 256, timestamp: 51, sequence_number: 1, recv_next_sequence: 0 }, payload: b"packet-1" } [INFO] [stdout] 2026-07-09T10:52:39.506155Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=1 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.506159Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:47341 frame_count=2 [INFO] [stdout] 2026-07-09T10:52:39.506165Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.506162Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=48 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 148, payload_length: 8, recv_window_size: 255, timestamp: 1, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.505863Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=45 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 145, payload_length: 640, recv_window_size: 256, timestamp: 4, sequence_number: 8, recv_next_sequence: 1 }, payload: b",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," } [INFO] [stdout] 2026-07-09T10:52:39.506197Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:47341 frame_count=2 bytes=35 [INFO] [stdout] 2026-07-09T10:52:39.506201Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=150 remote_addr=127.0.0.1:9049 [INFO] [stdout] 2026-07-09T10:52:39.506210Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=48 [INFO] [stdout] 2026-07-09T10:52:39.506197Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=33535875 remote_addr=127.0.0.1:48784 frame_count=1 first_frame=Fin { header: ShortHeader { command: Fin, connection_id: 1330556850, payload_length: 0, recv_window_size: 256, timestamp: 564, sequence_number: 0, recv_next_sequence: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.506225Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=48 count=1 [INFO] [stdout] 2026-07-09T10:52:39.506222Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=45 state=Established [INFO] [stdout] 2026-07-09T10:52:39.506237Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=33535875 [INFO] [stdout] 2026-07-09T10:52:39.506250Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=48 state=Established [INFO] [stdout] 2026-07-09T10:52:39.506259Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=33535875 state=Closing [INFO] [stdout] test socket::event_loop::routing::tests::test_forward_cached_frames_success ... ok [INFO] [stdout] 2026-07-09T10:52:39.506305Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:46988 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.506303Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:46455 frame_count=2 bytes=35 [INFO] [stdout] 2026-07-09T10:52:39.506322Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.506356Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:48784 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.506367Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.506369Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:46455 frame_count=2 [INFO] [stdout] 2026-07-09T10:52:39.506381Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.506385Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.506394Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=150 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.506394Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1330556850 frame=Ack { header: ShortHeader { command: Ack, connection_id: 1330556850, payload_length: 8, recv_window_size: 255, timestamp: 64, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.506412Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=49 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-07-09T10:52:39.506419Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 1330556850, payload_length: 8, recv_window_size: 255, timestamp: 64, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.506425Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=3756382548 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 3756382548, source_cid: 2965884667 } } [INFO] [stdout] 2026-07-09T10:52:39.506457Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.506584Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 3756382548, source_cid: 2965884667 } } [INFO] [stdout] 2026-07-09T10:52:39.506441Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=1330556850 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.506604Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=3756382548 peer_cid=2965884667 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.506172Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=1 payload_len=8 [INFO] [stdout] 2026-07-09T10:52:39.506632Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.506657Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=4 [INFO] [stdout] 2026-07-09T10:52:39.506647Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 254, timestamp: 53, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.506676Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=4 [INFO] [stdout] 2026-07-09T10:52:39.506669Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=49 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.506685Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 8, recv_window_size: 256, timestamp: 51, sequence_number: 2, recv_next_sequence: 0 }, payload: b"packet-2" } [INFO] [stdout] 2026-07-09T10:52:39.506708Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 8, recv_window_size: 256, timestamp: 51, sequence_number: 2, recv_next_sequence: 0 }, payload: b"packet-2" } [INFO] [stdout] 2026-07-09T10:52:39.506717Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-07-09T10:52:39.506727Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=2 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.506731Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=3756382548 current_state=Connecting target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.506734Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.506744Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=2 payload_len=8 [INFO] [stdout] 2026-07-09T10:52:39.506749Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=3756382548 from="Connecting" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.506756Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=49 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.506775Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.506767Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 253, timestamp: 53, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.506799Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=149 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.506799Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 8, recv_window_size: 256, timestamp: 51, sequence_number: 3, recv_next_sequence: 0 }, payload: b"packet-3" } [INFO] [stdout] 2026-07-09T10:52:39.506794Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=3756382548 remote_addr=127.0.0.1:46455 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 2965884667, payload_length: 4, recv_window_size: 256, timestamp: 32, sequence_number: 0, recv_next_sequence: 0 }, payload: b"ping" } [INFO] [stdout] 2026-07-09T10:52:39.506820Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 8, recv_window_size: 256, timestamp: 51, sequence_number: 3, recv_next_sequence: 0 }, payload: b"packet-3" } [INFO] [stdout] 2026-07-09T10:52:39.506829Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=3756382548 peer_cid=2965884667 [INFO] [stdout] 2026-07-09T10:52:39.506834Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=48 [INFO] [stdout] 2026-07-09T10:52:39.506838Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=3 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.506848Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=3756382548 frame=Push { header: ShortHeader { command: Push, connection_id: 3756382548, payload_length: 4, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"pong" } [INFO] [stdout] 2026-07-09T10:52:39.506855Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=3 payload_len=8 [INFO] [stdout] 2026-07-09T10:52:39.506863Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.506870Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 3756382548, payload_length: 4, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"pong" } [INFO] [stdout] 2026-07-09T10:52:39.506900Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.506904Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=149 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.506899Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 252, timestamp: 53, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.506914Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-07-09T10:52:39.506913Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=3756382548 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-07-09T10:52:39.506928Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-07-09T10:52:39.506929Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=3756382548 seq=0 payload_len=4 [INFO] [stdout] 2026-07-09T10:52:39.506926Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=149 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.506939Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-07-09T10:52:39.506934Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 8, recv_window_size: 256, timestamp: 51, sequence_number: 4, recv_next_sequence: 0 }, payload: b"packet-4" } [INFO] [stdout] 2026-07-09T10:52:39.506951Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-07-09T10:52:39.506956Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.506954Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 8, recv_window_size: 256, timestamp: 51, sequence_number: 4, recv_next_sequence: 0 }, payload: b"packet-4" } [INFO] [stdout] 2026-07-09T10:52:39.506963Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-07-09T10:52:39.506966Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.506951Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=3756382548 remote_addr=127.0.0.1:46455 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 2965884667, payload_length: 8, recv_window_size: 255, timestamp: 32, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.506974Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-07-09T10:52:39.506972Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=4 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.506980Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=149 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.506985Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-07-09T10:52:39.506989Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3756382548 [INFO] [stdout] 2026-07-09T10:52:39.506988Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=4 payload_len=8 [INFO] [stdout] 2026-07-09T10:52:39.506993Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=149 remote_addr=127.0.0.1:9048 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 49, source_cid: 149 } } [INFO] [stdout] 2026-07-09T10:52:39.507003Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=3756382548 count=1 [INFO] [stdout] 2026-07-09T10:52:39.507019Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=149 [INFO] [stdout] 2026-07-09T10:52:39.507010Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 251, timestamp: 53, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.507031Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3756382548 state=Established [INFO] [stdout] 2026-07-09T10:52:39.507037Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=149 state=Established [INFO] [stdout] 2026-07-09T10:52:39.507039Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.507054Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2 count=5 [INFO] [stdout] 2026-07-09T10:52:39.507068Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:46455 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.507075Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=150 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.507079Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.507000Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=48 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 148, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 0, recv_next_sequence: 1 }, payload: b"////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" } [INFO] [stdout] 2026-07-09T10:52:39.507118Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:46455 frame_count=1 bytes=25 [INFO] [stdout] 2026-07-09T10:52:39.507178Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:46455 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.507118Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=48 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 148, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 1, recv_next_sequence: 1 }, payload: b"////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" } [INFO] [stdout] 2026-07-09T10:52:39.507213Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:46455 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.507219Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.506484Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.507246Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=50 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-07-09T10:52:39.506533Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.506547Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2276028173 [INFO] [stdout] 2026-07-09T10:52:39.506494Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=121 state=Established [INFO] [stdout] 2026-07-09T10:52:39.507304Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.507299Z  INFO kestrel_protocol::core::tests::state: [Client] Conn B verified. [INFO] [stdout] 2026-07-09T10:52:39.507319Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2276028173 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.507235Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=48 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 148, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 2, recv_next_sequence: 1 }, payload: b"////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" } [INFO] [stdout] 2026-07-09T10:52:39.507331Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.507348Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=19 [INFO] [stdout] 2026-07-09T10:52:39.507345Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:47341 frame_count=1 bytes=25 [INFO] [stdout] 2026-07-09T10:52:39.507354Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=50 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.507369Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=19 state=Established [INFO] [stdout] 2026-07-09T10:52:39.507373Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:59314 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.507393Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:59314 [INFO] [stdout] 2026-07-09T10:52:39.507390Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:47341 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.507404Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=21 [INFO] [stdout] 2026-07-09T10:52:39.507408Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=3096612428 [INFO] [stdout] 2026-07-09T10:52:39.507420Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=21 state=Established [INFO] [stdout] 2026-07-09T10:52:39.507422Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.507350Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=48 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 148, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 3, recv_next_sequence: 1 }, payload: b"////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" } [INFO] [stdout] 2026-07-09T10:52:39.507437Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:47341 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.507448Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=50 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.507459Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=120 [INFO] [stdout] 2026-07-09T10:52:39.507475Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=3096612428 remote_addr=127.0.0.1:59314 [INFO] [stdout] 2026-07-09T10:52:39.507476Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=120 state=Established [INFO] [stdout] 2026-07-09T10:52:39.507482Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:47341 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.507527Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2965884667 frame=Push { header: ShortHeader { command: Push, connection_id: 2965884667, payload_length: 4, recv_window_size: 256, timestamp: 32, sequence_number: 0, recv_next_sequence: 0 }, payload: b"ping" } [INFO] [stdout] 2026-07-09T10:52:39.507534Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.507553Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2965884667, payload_length: 4, recv_window_size: 256, timestamp: 32, sequence_number: 0, recv_next_sequence: 0 }, payload: b"ping" } [INFO] [stdout] 2026-07-09T10:52:39.507559Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=3096612428 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.507472Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=48 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 148, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 4, recv_next_sequence: 1 }, payload: b"////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" } [INFO] [stdout] 2026-07-09T10:52:39.507575Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2965884667 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-07-09T10:52:39.507593Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2965884667 seq=0 payload_len=4 [INFO] [stdout] 2026-07-09T10:52:39.507617Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2965884667 remote_addr=127.0.0.1:47341 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 3756382548, payload_length: 8, recv_window_size: 255, timestamp: 32, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.507633Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=3096612428 addr=127.0.0.1:59314 [INFO] [stdout] 2026-07-09T10:52:39.507650Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2965884667 frame=Ack { header: ShortHeader { command: Ack, connection_id: 2965884667, payload_length: 8, recv_window_size: 255, timestamp: 32, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.507663Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=3096612428 addr=127.0.0.1:59314 [INFO] [stdout] 2026-07-09T10:52:39.507586Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=48 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 148, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 5, recv_next_sequence: 1 }, payload: b"////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" } [INFO] [stdout] 2026-07-09T10:52:39.507671Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 2965884667, payload_length: 8, recv_window_size: 255, timestamp: 32, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.507685Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:59314 cid=3096612428 [INFO] [stdout] 2026-07-09T10:52:39.507693Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=2965884667 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.507693Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=49 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 49 } } [INFO] [stdout] 2026-07-09T10:52:39.507714Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2965884667 [INFO] [stdout] 2026-07-09T10:52:39.507717Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:59314 cid=3096612428 [INFO] [stdout] 2026-07-09T10:52:39.507729Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=2965884667 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.507732Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=49 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.507737Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3096612428 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.508002Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=1 [INFO] [stdout] 2026-07-09T10:52:39.508012Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=49 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 49, source_cid: 149 } } [INFO] [stdout] 2026-07-09T10:52:39.508039Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 49, source_cid: 149 } } [INFO] [stdout] 2026-07-09T10:52:39.508048Z  INFO kestrel_protocol::core::tests::state: [Server] Accepted connection from 127.0.0.1:59314 [INFO] [stdout] 2026-07-09T10:52:39.508057Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=49 peer_cid=149 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.508063Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2 [INFO] [stdout] 2026-07-09T10:52:39.508088Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=3096612428 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.508108Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=3096612428 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.508133Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.508143Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.507278Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.508157Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=3096612428 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.508168Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=150 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.508171Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=3096612428 remote_addr=127.0.0.1:59314 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 2276028173, source_cid: 3096612428 } } [INFO] [stdout] 2026-07-09T10:52:39.508194Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=150 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.508202Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3096612428 [INFO] [stdout] 2026-07-09T10:52:39.508220Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.508219Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3096612428 state=Established [INFO] [stdout] 2026-07-09T10:52:39.508217Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.508231Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.508244Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.508245Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=150 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.508251Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:59314 frame_count=2 [INFO] [stdout] 2026-07-09T10:52:39.508260Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=150 remote_addr=127.0.0.1:9049 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 50, source_cid: 150 } } [INFO] [stdout] 2026-07-09T10:52:39.508266Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 13, recv_window_size: 256, timestamp: 54, sequence_number: 0, recv_next_sequence: 0 }, payload: b"rto test data" } [INFO] [stdout] 2026-07-09T10:52:39.508290Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=150 [INFO] [stdout] 2026-07-09T10:52:39.508303Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.508300Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:59314 frame_count=2 bytes=43 [INFO] [stdout] 2026-07-09T10:52:39.508311Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=150 state=Established [INFO] [stdout] 2026-07-09T10:52:39.508360Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=102 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.508365Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=1330556850 [INFO] [stdout] 2026-07-09T10:52:39.508383Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.508386Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=1330556850 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.508401Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=102 peer_cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.508401Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:39613 frame_count=2 bytes=43 [INFO] [stdout] 2026-07-09T10:52:39.508419Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.508420Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=102 state=Established [INFO] [stdout] 2026-07-09T10:52:39.508438Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=102 frame=Ack { header: ShortHeader { command: Ack, connection_id: 102, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.508437Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.508466Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=514 srtt_ms=514 rttvar_ms=257 rto_ms=1542 [INFO] [stdout] 2026-07-09T10:52:39.508470Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 102, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.508478Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:39613 frame_count=2 [INFO] [stdout] 2026-07-09T10:52:39.508484Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.508498Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.508492Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=102 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.508514Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=102 [INFO] [stdout] 2026-07-09T10:52:39.508518Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1330556850 [INFO] [stdout] 2026-07-09T10:52:39.508529Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=102 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.508532Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2276028173 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 2276028173, source_cid: 3096612428 } } [INFO] [stdout] 2026-07-09T10:52:39.508538Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1330556850 state=Established [INFO] [stdout] 2026-07-09T10:52:39.508555Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 2276028173, source_cid: 3096612428 } } [INFO] [stdout] 2026-07-09T10:52:39.508571Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.508572Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=2276028173 peer_cid=3096612428 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.508587Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.508606Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:48784 frame_count=1 bytes=21 [INFO] [stdout] 2026-07-09T10:52:39.508617Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.508618Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=66 srtt_ms=66 rttvar_ms=33 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.508635Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.508636Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.508648Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.508669Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-07-09T10:52:39.508681Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2276028173 current_state=Connecting target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.508701Z  INFO kestrel_protocol::core::tests::state: Connecting for the second time from the same local socket... [INFO] [stdout] 2026-07-09T10:52:39.508699Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2276028173 from="Connecting" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.508718Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=2276028173 peer_cid=3096612428 [INFO] [stdout] 2026-07-09T10:52:39.508735Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2276028173 frame=Push { header: ShortHeader { command: Push, connection_id: 2276028173, payload_length: 12, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"server_ready" } [INFO] [stdout] 2026-07-09T10:52:39.508744Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:46988 frame_count=1 bytes=21 [INFO] [stdout] 2026-07-09T10:52:39.508756Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2276028173, payload_length: 12, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"server_ready" } [INFO] [stdout] 2026-07-09T10:52:39.508774Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2276028173 seq=0 payload_len=12 state=Established [INFO] [stdout] 2026-07-09T10:52:39.508791Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2276028173 seq=0 payload_len=12 [INFO] [stdout] 2026-07-09T10:52:39.508802Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=564 slots_to_advance=56 max_advance=56 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.508814Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2276028173 remote_addr=127.0.0.1:39613 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 3096612428, payload_length: 8, recv_window_size: 255, timestamp: 64, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.508845Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2276028173 [INFO] [stdout] 2026-07-09T10:52:39.508861Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2276028173 count=1 [INFO] [stdout] 2026-07-09T10:52:39.508909Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2276028173 state=Established [INFO] [stdout] 2026-07-09T10:52:39.508945Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:39613 frame_count=1 [INFO] [stdout] test core::tests::reliability::test_endpoint_fast_retransmission ... ok [INFO] [stdout] 2026-07-09T10:52:39.509006Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:39613 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.509092Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=564 slots_to_advance=56 max_advance=56 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.509103Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:59314 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.508667Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=102 frame=Push { header: ShortHeader { command: Push, connection_id: 102, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01" } [INFO] [stdout] 2026-07-09T10:52:39.509151Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.507763Z DEBUG kestrel_protocol::socket::event_loop::routing: 缓存早到的PUSH帧 127.0.0.1:8081 CID 0 | Cached early arrival PUSH frame from 127.0.0.1:8081 with CID 0 [INFO] [stdout] 2026-07-09T10:52:39.509181Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=101 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.509204Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=951159906 [INFO] [stdout] 2026-07-09T10:52:39.509206Z DEBUG kestrel_protocol::socket::event_loop::routing: 早到帧已缓存 | Early arrival frame cached cid=0 addr=127.0.0.1:8081 cache_key=17449081214994602641 [INFO] [stdout] 2026-07-09T10:52:39.509226Z DEBUG kestrel_protocol::socket::event_loop::routing: 缓存早到的PUSH帧 127.0.0.1:8082 CID 0 | Cached early arrival PUSH frame from 127.0.0.1:8082 with CID 0 [INFO] [stdout] 2026-07-09T10:52:39.509227Z TRACE kestrel_protocol::timer::wheel::core: Timer expired entry_id=2 expiry_time=Instant { tv_sec: 51902, tv_nsec: 710543309 } [INFO] [stdout] 2026-07-09T10:52:39.509240Z DEBUG kestrel_protocol::socket::event_loop::routing: 早到帧已缓存 | Early arrival frame cached cid=0 addr=127.0.0.1:8082 cache_key=16848164392997846392 [INFO] [stdout] 2026-07-09T10:52:39.509246Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.509247Z DEBUG kestrel_protocol::timer::wheel::core: Timing wheel advance completed expired_count=1 [INFO] [stdout] 2026-07-09T10:52:39.507841Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=101 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.509262Z DEBUG kestrel_protocol::socket::event_loop::routing: 缓存早到的PUSH帧 127.0.0.1:8080 CID 456 | Cached early arrival PUSH frame from 127.0.0.1:8080 with CID 456 [INFO] [stdout] 2026-07-09T10:52:39.509279Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.509281Z DEBUG kestrel_protocol::socket::event_loop::routing: 早到帧已缓存 | Early arrival frame cached cid=456 addr=127.0.0.1:8080 cache_key=456 [INFO] [stdout] 2026-07-09T10:52:39.509300Z DEBUG kestrel_protocol::socket::event_loop::routing: 缓存早到的PUSH帧 127.0.0.1:8080 CID 456 | Cached early arrival PUSH frame from 127.0.0.1:8080 with CID 456 [INFO] [stdout] 2026-07-09T10:52:39.509300Z TRACE kestrel_protocol::timer::event: Timer event triggered successfully timer_id=2 connection_id=1 event_type=PathValidationTimeout [INFO] [stdout] 2026-07-09T10:52:39.509313Z DEBUG kestrel_protocol::socket::event_loop::routing: 早到帧已缓存 | Early arrival frame cached cid=456 addr=127.0.0.1:8080 cache_key=456 [INFO] [stdout] 2026-07-09T10:52:39.509329Z TRACE kestrel_protocol::timer::task::global: Timer event processed entry_id=2 connection_id=1 event_type=PathValidationTimeout [INFO] [stdout] 2026-07-09T10:52:39.509159Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2276028173 [INFO] [stdout] test socket::event_loop::routing::tests::test_multiple_clients_zero_rtt_isolation ... ok [INFO] [stdout] 2026-07-09T10:52:39.509411Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.507695Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=48 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 148, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 6, recv_next_sequence: 1 }, payload: b"////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" } [INFO] [stdout] test socket::event_loop::routing::tests::test_multiple_early_frames_caching ... ok [INFO] [stdout] 2026-07-09T10:52:39.509456Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2276028173 remote_addr=127.0.0.1:39613 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 3096612428, payload_length: 12, recv_window_size: 256, timestamp: 64, sequence_number: 0, recv_next_sequence: 1 }, payload: b"hello_server" } [INFO] [stdout] 2026-07-09T10:52:39.509165Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 102, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01" } [INFO] [stdout] 2026-07-09T10:52:39.509494Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2276028173 state=Established [INFO] [stdout] 2026-07-09T10:52:39.509491Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=102 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.509512Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=102 seq=0 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.509516Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=101 peer_cid=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.509539Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=101 state=Established [INFO] [stdout] 2026-07-09T10:52:39.509538Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:59314 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.509538Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=102 remote_addr=127.0.0.1:9001 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 255, timestamp: 69, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.509546Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.509468Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=48 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 148, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 7, recv_next_sequence: 1 }, payload: b"////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" } [INFO] [stdout] 2026-07-09T10:52:39.509558Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=101 frame=Ack { header: ShortHeader { command: Ack, connection_id: 101, payload_length: 8, recv_window_size: 255, timestamp: 2, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.509580Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:39613 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.509582Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 101, payload_length: 8, recv_window_size: 255, timestamp: 2, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.509603Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=101 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.509621Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=101 [INFO] [stdout] 2026-07-09T10:52:39.509613Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=3096612428 frame=Ack { header: ShortHeader { command: Ack, connection_id: 3096612428, payload_length: 8, recv_window_size: 255, timestamp: 64, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.509633Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.509583Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=48 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 148, payload_length: 640, recv_window_size: 256, timestamp: 2, sequence_number: 8, recv_next_sequence: 1 }, payload: b"////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" } [INFO] [stdout] 2026-07-09T10:52:39.509635Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=101 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.509637Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 3096612428, payload_length: 8, recv_window_size: 255, timestamp: 64, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.509657Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=3096612428 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.509662Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=48 state=Established [INFO] [stdout] 2026-07-09T10:52:39.509656Z DEBUG kestrel_protocol::socket::event_loop::routing: 忽略来自未知源的非SYN数据包 127.0.0.1:8080 不可路由CID 789: Ack { header: ShortHeader { command: Ack, connection_id: 789, payload_length: 0, recv_window_size: 1024, timestamp: 12345, sequence_number: 0, recv_next_sequence: 0 }, payload: b"" } | Ignoring non-SYN packet from unknown source 127.0.0.1:8080 with unroutable CID 789: Ack { header: ShortHeader { command: Ack, connection_id: 789, payload_length: 0, recv_window_size: 1024, timestamp: 12345, sequence_number: 0, recv_next_sequence: 0 }, payload: b"" } [INFO] [stdout] 2026-07-09T10:52:39.509675Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=3096612428 [INFO] [stdout] 2026-07-09T10:52:39.509675Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.509689Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=3096612428 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.509693Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.509715Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.509711Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=69 srtt_ms=69 rttvar_ms=34 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.509729Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.509729Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.509740Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.509748Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=14 srtt_ms=14 rttvar_ms=7 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.509765Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.509766Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=103 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 3 } } [INFO] [stdout] 2026-07-09T10:52:39.509775Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.509801Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3096612428 [INFO] [stdout] test socket::event_loop::routing::tests::test_non_push_frames_not_cached ... 2026-07-09T10:52:39.509801Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 3 } } [INFO] [stdout] ok [INFO] [stdout] 2026-07-09T10:52:39.509820Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3096612428 state=Established [INFO] [stdout] 2026-07-09T10:52:39.509820Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=103 peer_cid=3 state=Established [INFO] [stdout] 2026-07-09T10:52:39.509836Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=103 state=Established [INFO] [stdout] 2026-07-09T10:52:39.509853Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=103 frame=Ack { header: ShortHeader { command: Ack, connection_id: 103, payload_length: 8, recv_window_size: 255, timestamp: 1, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.509245Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=951159906 remote_addr=127.0.0.1:48784 [INFO] [stdout] 2026-07-09T10:52:39.509577Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=102 frame=Push { header: ShortHeader { command: Push, connection_id: 102, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01" } [INFO] [stdout] 2026-07-09T10:52:39.509918Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=47 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 47 } } [INFO] [stdout] 2026-07-09T10:52:39.509859Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:39613 frame_count=1 bytes=33 [INFO] [stdout] 2026-07-09T10:52:39.509948Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.509955Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:46988 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.509975Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=47 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.509979Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.510001Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=47 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 47, source_cid: 147 } } [INFO] [stdout] 2026-07-09T10:52:39.510020Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 47, source_cid: 147 } } [INFO] [stdout] 2026-07-09T10:52:39.510026Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=3 slot_index=44 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.510023Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 103, payload_length: 8, recv_window_size: 255, timestamp: 1, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.510037Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=47 peer_cid=147 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.510052Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=3 entry_id=3 connection_id=951159906 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.510049Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:59314 frame_count=1 bytes=33 [INFO] [stdout] 2026-07-09T10:52:39.510065Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.510080Z DEBUG kestrel_protocol::socket::event_loop::routing: 缓存早到的PUSH帧 127.0.0.1:8080 CID 0 | Cached early arrival PUSH frame from 127.0.0.1:8080 with CID 0 [INFO] [stdout] 2026-07-09T10:52:39.510054Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=103 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.510104Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=103 [INFO] [stdout] 2026-07-09T10:52:39.510100Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1330556850 frame=Fin { header: ShortHeader { command: Fin, connection_id: 1330556850, payload_length: 0, recv_window_size: 256, timestamp: 564, sequence_number: 0, recv_next_sequence: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.510120Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=103 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.510130Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=100 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.510135Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Fin { header: ShortHeader { command: Fin, connection_id: 1330556850, payload_length: 0, recv_window_size: 256, timestamp: 564, sequence_number: 0, recv_next_sequence: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.510157Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=1330556850 seq=0 state=Established [INFO] [stdout] 2026-07-09T10:52:39.510160Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.510173Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Handling FIN in Established state cid=1330556850 seq=0 [INFO] [stdout] 2026-07-09T10:52:39.510177Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=100 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.509908Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 102, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01" } [INFO] [stdout] 2026-07-09T10:52:39.510194Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1330556850 remote_addr=127.0.0.1:46988 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 33535875, payload_length: 8, recv_window_size: 255, timestamp: 514, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.510178Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.510214Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=124 [INFO] [stdout] 2026-07-09T10:52:39.510214Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=102 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.510219Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:59314 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.510232Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1330556850 [INFO] [stdout] 2026-07-09T10:52:39.510226Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=67 srtt_ms=67 rttvar_ms=33 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.510234Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=102 seq=1 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.510238Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=124 state=Established [INFO] [stdout] 2026-07-09T10:52:39.510247Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.510248Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=1330556850 current_state=Established target_state=FinWait [INFO] [stdout] 2026-07-09T10:52:39.510258Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.510265Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1330556850 from="Established" to="FinWait" [INFO] [stdout] 2026-07-09T10:52:39.510260Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=102 remote_addr=127.0.0.1:9001 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 254, timestamp: 70, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.510275Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=122 [INFO] [stdout] 2026-07-09T10:52:39.510269Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=3096612428 frame=Push { header: ShortHeader { command: Push, connection_id: 3096612428, payload_length: 12, recv_window_size: 256, timestamp: 64, sequence_number: 0, recv_next_sequence: 1 }, payload: b"hello_server" } [INFO] [stdout] 2026-07-09T10:52:39.510285Z TRACE kestrel_protocol::core::endpoint::core::event_loop: All data drained after FIN, closing user stream (sending EOF). cid=1330556850 [INFO] [stdout] 2026-07-09T10:52:39.510290Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=122 state=Established [INFO] [stdout] 2026-07-09T10:52:39.510303Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1330556850 state=FinWait [INFO] [stdout] 2026-07-09T10:52:39.510299Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 3096612428, payload_length: 12, recv_window_size: 256, timestamp: 64, sequence_number: 0, recv_next_sequence: 1 }, payload: b"hello_server" } [INFO] [stdout] 2026-07-09T10:52:39.510316Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=125 [INFO] [stdout] 2026-07-09T10:52:39.510319Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=3096612428 seq=0 payload_len=12 state=Established [INFO] [stdout] 2026-07-09T10:52:39.510330Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=125 state=Established [INFO] [stdout] 2026-07-09T10:52:39.510334Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=3096612428 seq=0 payload_len=12 [INFO] [stdout] 2026-07-09T10:52:39.510366Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=123 [INFO] [stdout] 2026-07-09T10:52:39.510356Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=3096612428 remote_addr=127.0.0.1:59314 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 2276028173, payload_length: 8, recv_window_size: 255, timestamp: 50, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.510371Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:46988 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.510380Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=123 state=Established [INFO] [stdout] 2026-07-09T10:52:39.510387Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3096612428 [INFO] [stdout] 2026-07-09T10:52:39.510399Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=3096612428 count=1 [INFO] [stdout] 2026-07-09T10:52:39.510422Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=24 [INFO] [stdout] 2026-07-09T10:52:39.510420Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3096612428 state=Established [INFO] [stdout] 2026-07-09T10:52:39.510439Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=24 state=Established [INFO] [stdout] 2026-07-09T10:52:39.510461Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:59314 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.510474Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=23 [INFO] [stdout] 2026-07-09T10:52:39.510489Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=23 state=Established [INFO] [stdout] 2026-07-09T10:52:39.510495Z  INFO kestrel_protocol::core::tests::state: [Server] Received client message [INFO] [stdout] 2026-07-09T10:52:39.510487Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 13, recv_window_size: 256, timestamp: 54, sequence_number: 0, recv_next_sequence: 0 }, payload: b"rto test data" } [INFO] [stdout] 2026-07-09T10:52:39.510521Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:59314 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.510519Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 13, recv_window_size: 256, timestamp: 54, sequence_number: 0, recv_next_sequence: 0 }, payload: b"rto test data" } [INFO] [stdout] 2026-07-09T10:52:39.510541Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=0 payload_len=13 state=Established [INFO] [stdout] 2026-07-09T10:52:39.510554Z TRACE mio::poll: registering event source with poller: token=Token(136413060331008), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.510559Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=0 payload_len=13 [INFO] [stdout] 2026-07-09T10:52:39.510569Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=25 [INFO] [stdout] 2026-07-09T10:52:39.510572Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3096612428 [INFO] [stdout] 2026-07-09T10:52:39.510293Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=102 frame=Push { header: ShortHeader { command: Push, connection_id: 102, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01" } [INFO] [stdout] 2026-07-09T10:52:39.538786Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 102, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01" } [INFO] [stdout] 2026-07-09T10:52:39.539133Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=102 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.539160Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=102 seq=2 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.539203Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=102 remote_addr=127.0.0.1:9001 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 253, timestamp: 99, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.539249Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=102 frame=Push { header: ShortHeader { command: Push, connection_id: 102, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01" } [INFO] [stdout] 2026-07-09T10:52:39.539561Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 102, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01" } [INFO] [stdout] 2026-07-09T10:52:39.539861Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=102 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.540016Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=102 seq=3 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.540068Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=102 remote_addr=127.0.0.1:9001 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 252, timestamp: 100, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.540113Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=102 frame=Push { header: ShortHeader { command: Push, connection_id: 102, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01" } [INFO] [stdout] 2026-07-09T10:52:39.540424Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 102, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01" } [INFO] [stdout] 2026-07-09T10:52:39.540745Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=102 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.540768Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=102 seq=4 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.540798Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=102 remote_addr=127.0.0.1:9001 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 251, timestamp: 100, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.540836Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=102 frame=Push { header: ShortHeader { command: Push, connection_id: 102, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01" } [INFO] [stdout] 2026-07-09T10:52:39.541161Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 102, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01" } [INFO] [stdout] 2026-07-09T10:52:39.541472Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=102 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.541489Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=102 seq=5 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.541514Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=102 remote_addr=127.0.0.1:9001 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 250, timestamp: 101, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.541549Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=102 frame=Push { header: ShortHeader { command: Push, connection_id: 102, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01" } [INFO] [stdout] 2026-07-09T10:52:39.510586Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=25 state=Established [INFO] [stdout] 2026-07-09T10:52:39.510591Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.510279Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=103 frame=Push { header: ShortHeader { command: Push, connection_id: 103, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02" } [INFO] [stdout] 2026-07-09T10:52:39.510585Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 55, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.542171Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=3096612428 remote_addr=127.0.0.1:59314 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 2276028173, payload_length: 12, recv_window_size: 256, timestamp: 50, sequence_number: 1, recv_next_sequence: 1 }, payload: b"hello_client" } [INFO] [stdout] 2026-07-09T10:52:39.542236Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.542273Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2 count=1 [INFO] [stdout] 2026-07-09T10:52:39.542315Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.542332Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3096612428 state=Established [INFO] [stdout] 2026-07-09T10:52:39.542391Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:59314 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.542449Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:59314 frame_count=1 bytes=33 [INFO] [stdout] 2026-07-09T10:52:39.507765Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.542198Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 103, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02" } [INFO] [stdout] 2026-07-09T10:52:39.542517Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=103 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.542513Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.542539Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=103 seq=0 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.542544Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=32 srtt_ms=32 rttvar_ms=16 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.542568Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.542572Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=103 remote_addr=127.0.0.1:9002 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 3, payload_length: 8, recv_window_size: 255, timestamp: 101, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.542590Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.542595Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:39613 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.542618Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2965884667 [INFO] [stdout] 2026-07-09T10:52:39.542635Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2965884667 count=1 [INFO] [stdout] 2026-07-09T10:52:39.542658Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:39613 frame_count=1 bytes=33 [INFO] [stdout] 2026-07-09T10:52:39.509759Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=101 frame=Push { header: ShortHeader { command: Push, connection_id: 101, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.510100Z DEBUG kestrel_protocol::socket::event_loop::routing: 早到帧已缓存 | Early arrival frame cached cid=0 addr=127.0.0.1:8080 cache_key=9681000149947289835 [INFO] [stdout] 2026-07-09T10:52:39.510891Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.542736Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2276028173 [INFO] [stdout] 2026-07-09T10:52:39.510901Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-07-09T10:52:39.542757Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2276028173 state=Established [INFO] [stdout] 2026-07-09T10:52:39.542753Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=123 addr=127.0.0.1:8080 [INFO] [stdout] 2026-07-09T10:52:39.542800Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:39613 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.542806Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-07-09T10:52:39.542805Z DEBUG kestrel_protocol::socket::event_loop::routing: 成功转发缓存的早到帧 | Successfully forwarded cached early arrival frames cid=123 cache_key=9681000149947289835 count=1 [INFO] [stdout] 2026-07-09T10:52:39.542823Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.542826Z DEBUG kestrel_protocol::socket::event_loop::routing: 总共转发缓存帧 | Total forwarded cached frames cid=123 addr=127.0.0.1:8080 total_count=1 [INFO] [stdout] 2026-07-09T10:52:39.542844Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:45898) [INFO] [stdout] 2026-07-09T10:52:39.542860Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=22 [INFO] [stdout] 2026-07-09T10:52:39.510858Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] test core::endpoint::timing::tests::test_time_until_next_timeout_after_delay ... 2026-07-09T10:52:39.542898Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=22 state=Established [INFO] [stdout] ok [INFO] [stdout] 2026-07-09T10:52:39.542614Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=103 frame=Push { header: ShortHeader { command: Push, connection_id: 103, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02" } [INFO] [stdout] 2026-07-09T10:52:39.541852Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 102, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01" } [INFO] [stdout] 2026-07-09T10:52:39.518117Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=101 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.543086Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.510696Z  INFO kestrel_protocol::core::tests::state: First connection terminated on server. [INFO] [stdout] 2026-07-09T10:52:39.543008Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=102 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.543219Z TRACE mio::poll: registering event source with poller: token=Token(136413060297728), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.543234Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=39 [INFO] [stdout] 2026-07-09T10:52:39.542941Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 103, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02" } [INFO] [stdout] 2026-07-09T10:52:39.543260Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=39 state=Established [INFO] [stdout] 2026-07-09T10:52:39.530089Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=2 current_state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.543267Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=103 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.537620Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=1 current_state=ValidatingPath { new_addr: 127.0.0.1:9999, challenge_data: 6848514549050257855, notifier: Some(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) } [INFO] [stdout] 2026-07-09T10:52:39.528204Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.542666Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2965884667 state=Established [INFO] [stdout] test socket::event_loop::routing::tests::test_zero_rtt_early_frames_caching ... ok [INFO] [stdout] 2026-07-09T10:52:39.543331Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="ValidatingPath" to="Closing" [INFO] [stdout] 2026-07-09T10:52:39.543341Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=126 [INFO] [stdout] 2026-07-09T10:52:39.543356Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.543258Z TRACE mio::poll: registering event source with poller: token=Token(136413530048640), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.543371Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=126 state=Established [INFO] [stdout] 2026-07-09T10:52:39.526454Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.543384Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=2 [INFO] [stdout] 2026-07-09T10:52:39.543400Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Added packet to simple retransmission tracking seq=2 max_retries=5 retry_interval_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.543413Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=127 [INFO] [stdout] 2026-07-09T10:52:39.538713Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=1 [INFO] [stdout] 2026-07-09T10:52:39.518032Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=101 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.543431Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=127 state=Established [INFO] [stdout] 2026-07-09T10:52:39.543431Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Fin { header: ShortHeader { command: Fin, connection_id: 2, payload_length: 0, recv_window_size: 256, timestamp: 66, sequence_number: 2, recv_next_sequence: 0 } } [INFO] [stdout] 2026-07-09T10:52:39.543467Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.543468Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.543476Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=27 [INFO] [stdout] 2026-07-09T10:52:39.510917Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.543491Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.543496Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=27 state=Established [INFO] [stdout] 2026-07-09T10:52:39.543290Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=103 seq=1 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.543555Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=26 [INFO] [stdout] 2026-07-09T10:52:39.543205Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=4 slot_index=496 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.543576Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=26 state=Established [INFO] [stdout] 2026-07-09T10:52:39.543587Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=103 remote_addr=127.0.0.1:9002 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 3, payload_length: 8, recv_window_size: 254, timestamp: 102, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.543401Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=FinWait [INFO] [stdout] 2026-07-09T10:52:39.543632Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.543642Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=129 [INFO] [stdout] 2026-07-09T10:52:39.543648Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-07-09T10:52:39.543660Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.543664Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=129 state=Established [INFO] [stdout] 2026-07-09T10:52:39.543678Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:33971) [INFO] [stdout] 2026-07-09T10:52:39.543703Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=29 [INFO] [stdout] 2026-07-09T10:52:39.543706Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-07-09T10:52:39.543714Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-07-09T10:52:39.543730Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=29 state=Established [INFO] [stdout] 2026-07-09T10:52:39.543737Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-07-09T10:52:39.543742Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-07-09T10:52:39.543488Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.543769Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=128 [INFO] [stdout] 2026-07-09T10:52:39.543783Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.543788Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=128 state=Established [INFO] [stdout] 2026-07-09T10:52:39.543790Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.543412Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=102 seq=6 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.543835Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=1 [INFO] [stdout] 2026-07-09T10:52:39.543601Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=4 entry_id=4 connection_id=951159906 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.543711Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.543900Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:47341 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.543918Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-07-09T10:52:39.543930Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.543950Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:52251) [INFO] [stdout] 2026-07-09T10:52:39.543954Z  INFO kestrel_protocol::core::tests::state: [Server] Conn B verified [INFO] [stdout] 2026-07-09T10:52:39.543954Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:46988 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.543983Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.543649Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=103 frame=Push { header: ShortHeader { command: Push, connection_id: 103, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02" } [INFO] [stdout] 2026-07-09T10:52:39.544011Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:47341 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.544049Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=951159906 addr=127.0.0.1:48784 [INFO] [stdout] 2026-07-09T10:52:39.544073Z DEBUG kestrel_protocol::socket::event_loop::routing: 相同地址存在旧连接,移除旧连接 | Old connection exists for same address, removing old connection old_cid=33535875 new_cid=951159906 addr=127.0.0.1:48784 [INFO] [stdout] 2026-07-09T10:52:39.544099Z DEBUG kestrel_protocol::socket::event_loop::routing: 移除连接的地址映射 | Removed address mapping for connection cid=33535875 addr=127.0.0.1:48784 [INFO] [stdout] 2026-07-09T10:52:39.544118Z DEBUG kestrel_protocol::socket::event_loop::routing: 清理连接状态完成,CID现在处于 draining 状态 | Cleaned up connection state. CID is now in draining state. cid=33535875 [INFO] [stdout] 2026-07-09T10:52:39.544147Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=951159906 addr=127.0.0.1:48784 [INFO] [stdout] 2026-07-09T10:52:39.544160Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:46455 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.544189Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2 [INFO] [stdout] 2026-07-09T10:52:39.544205Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for outbound connection addr=127.0.0.1:48784 cid=951159906 [INFO] [stdout] 2026-07-09T10:52:39.544231Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:46455 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.544235Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=951159906 remote_addr=127.0.0.1:48784 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 951159906 } } [INFO] [stdout] 2026-07-09T10:52:39.544269Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=951159906 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.544294Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=3756382548 frame=Ack { header: ShortHeader { command: Ack, connection_id: 3756382548, payload_length: 8, recv_window_size: 255, timestamp: 32, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.544417Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 3756382548, payload_length: 8, recv_window_size: 255, timestamp: 32, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.544457Z  INFO kestrel_protocol::socket::tests::rebind: 服务器地址: 127.0.0.1:45898 [INFO] [stdout] 2026-07-09T10:52:39.544453Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=3756382548 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.544477Z  INFO kestrel_protocol::socket::tests::rebind: 客户端原始地址: 127.0.0.1:52251 [INFO] [stdout] 2026-07-09T10:52:39.544479Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=3756382548 [INFO] [stdout] 2026-07-09T10:52:39.544495Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=3756382548 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.544532Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.542901Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 101, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.544571Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=101 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.544592Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=101 seq=0 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.544597Z TRACE mio::poll: registering event source with poller: token=Token(136413530077952), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.544042Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 103, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02" } [INFO] [stdout] 2026-07-09T10:52:39.544621Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=101 remote_addr=127.0.0.1:9000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 104, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.543308Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="SynReceived" to="Closing" [INFO] [stdout] 2026-07-09T10:52:39.544664Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.544691Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Added packet to simple retransmission tracking seq=0 max_retries=5 retry_interval_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.544713Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Fin { header: ShortHeader { command: Fin, connection_id: 1, payload_length: 0, recv_window_size: 256, timestamp: 66, sequence_number: 0, recv_next_sequence: 0 } } [INFO] [stdout] 2026-07-09T10:52:39.544748Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.544779Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.544664Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=101 frame=Push { header: ShortHeader { command: Push, connection_id: 101, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" } [INFO] [stdout] test core::tests::shutdown::test_shutdown_when_validating_path ... ok [INFO] [stdout] 2026-07-09T10:52:39.544945Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2 [INFO] [stdout] 2026-07-09T10:52:39.544952Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=34 slots_to_advance=3 max_advance=3 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.544944Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=102 remote_addr=127.0.0.1:9001 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 249, timestamp: 104, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.545063Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.545134Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=807311785 [INFO] [stdout] 2026-07-09T10:52:39.545183Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=807311785 remote_addr=127.0.0.1:45898 [INFO] [stdout] 2026-07-09T10:52:39.545201Z TRACE mio::poll: registering event source with poller: token=Token(136412187877888), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.545260Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.545299Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=807311785 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.545350Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.545371Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-07-09T10:52:39.545369Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.545382Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.545395Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:47418) [INFO] [stdout] 2026-07-09T10:52:39.545455Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-07-09T10:52:39.545397Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.545481Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-07-09T10:52:39.545493Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-07-09T10:52:39.545508Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.545524Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.545525Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:58342) [INFO] [stdout] 2026-07-09T10:52:39.544822Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 101, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.545605Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-07-09T10:52:39.545608Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=101 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.545623Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-07-09T10:52:39.545630Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=101 seq=1 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.545659Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.545660Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=101 remote_addr=127.0.0.1:9000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 254, timestamp: 105, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.545767Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=2646873690 [INFO] [stdout] 2026-07-09T10:52:39.545769Z TRACE mio::poll: registering event source with poller: token=Token(136412187993472), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.545703Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=101 frame=Push { header: ShortHeader { command: Push, connection_id: 101, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.544508Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2 [INFO] [stdout] 2026-07-09T10:52:39.545883Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.545907Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=100 srtt_ms=100 rttvar_ms=50 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.545932Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.545945Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.545978Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3756382548 [INFO] [stdout] 2026-07-09T10:52:39.546003Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3756382548 state=Established [INFO] [stdout] 2026-07-09T10:52:39.546055Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.546078Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-07-09T10:52:39.546087Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.546107Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:34610) [INFO] [stdout] 2026-07-09T10:52:39.546171Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-07-09T10:52:39.546172Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:48784 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.546197Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-07-09T10:52:39.546236Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] test core::tests::shutdown::test_shutdown_when_syn_received ... ok [INFO] [stdout] 2026-07-09T10:52:39.546255Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=4264386720 [INFO] [stdout] 2026-07-09T10:52:39.546296Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2965884667 [INFO] [stdout] test core::tests::shutdown::test_shutdown_from_fin_wait ... ok [INFO] [stdout] 2026-07-09T10:52:39.545133Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=102 frame=Push { header: ShortHeader { command: Push, connection_id: 102, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01" } [INFO] [stdout] 2026-07-09T10:52:39.546233Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:48784 frame_count=1 bytes=10 [INFO] [stdout] 2026-07-09T10:52:39.546405Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=103 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.545393Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=807311785 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.546437Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=103 seq=2 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.546435Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.546468Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=103 remote_addr=127.0.0.1:9002 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 3, payload_length: 8, recv_window_size: 253, timestamp: 105, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.546521Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=807311785 addr=127.0.0.1:45898 [INFO] [stdout] 2026-07-09T10:52:39.546558Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=807311785 addr=127.0.0.1:45898 [INFO] [stdout] 2026-07-09T10:52:39.546622Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for outbound connection addr=127.0.0.1:45898 cid=807311785 [INFO] [stdout] 2026-07-09T10:52:39.546677Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-07-09T10:52:39.546708Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.546376Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=4116070984 [INFO] [stdout] 2026-07-09T10:52:39.546672Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=807311785 remote_addr=127.0.0.1:45898 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 807311785 } } [INFO] [stdout] 2026-07-09T10:52:39.546397Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.546751Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=807311785 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.546768Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=4116070984 remote_addr=127.0.0.1:58342 [INFO] [stdout] 2026-07-09T10:52:39.546769Z  INFO kestrel_protocol::core::tests::state: Second connection established. [INFO] [stdout] 2026-07-09T10:52:39.546512Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=103 frame=Push { header: ShortHeader { command: Push, connection_id: 103, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02" } [INFO] [stdout] 2026-07-09T10:52:39.546808Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:45898 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.546949Z TRACE mio::poll: registering event source with poller: token=Token(136413194515968), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.546964Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:45898 frame_count=1 bytes=10 [INFO] [stdout] 2026-07-09T10:52:39.545867Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 101, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.546997Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=101 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.547026Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=101 seq=2 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.547053Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=101 remote_addr=127.0.0.1:9000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 253, timestamp: 107, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.547085Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:52251 frame_count=1 bytes=10 [INFO] [stdout] 2026-07-09T10:52:39.547093Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-07-09T10:52:39.547113Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.547149Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:52251 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.547181Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.547182Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.547195Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-07-09T10:52:39.547192Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:52251 [INFO] [stdout] 2026-07-09T10:52:39.547205Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.547222Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:37233) [INFO] [stdout] 2026-07-09T10:52:39.547095Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=101 frame=Push { header: ShortHeader { command: Push, connection_id: 101, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.546372Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-07-09T10:52:39.547309Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:2001 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.547338Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.547353Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:2001 [INFO] [stdout] 2026-07-09T10:52:39.547264Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=1854190210 [INFO] [stdout] 2026-07-09T10:52:39.547253Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 101, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.547405Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=101 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.547421Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=4166593310 [INFO] [stdout] 2026-07-09T10:52:39.547423Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=1854190210 remote_addr=127.0.0.1:52251 [INFO] [stdout] 2026-07-09T10:52:39.547427Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-07-09T10:52:39.547436Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=101 seq=3 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.547461Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=4166593310 remote_addr=127.0.0.1:2001 [INFO] [stdout] 2026-07-09T10:52:39.547472Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=3788118680 [INFO] [stdout] 2026-07-09T10:52:39.547474Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=101 remote_addr=127.0.0.1:9000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 252, timestamp: 107, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.547486Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=503 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.547219Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.542831Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:39613 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.547515Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=1854190210 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.547583Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2276028173 frame=Ack { header: ShortHeader { command: Ack, connection_id: 2276028173, payload_length: 8, recv_window_size: 255, timestamp: 50, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.547627Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 2276028173, payload_length: 8, recv_window_size: 255, timestamp: 50, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.547632Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:52251 cid=1854190210 [INFO] [stdout] 2026-07-09T10:52:39.547671Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1854190210 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.547675Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=2276028173 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.547709Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2276028173 [INFO] [stdout] 2026-07-09T10:52:39.546836Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.545837Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2646873690 remote_addr=127.0.0.1:33971 [INFO] [stdout] 2026-07-09T10:52:39.547718Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:1001 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.547741Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=2276028173 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.547746Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=4116070984 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.547755Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:1001 [INFO] [stdout] 2026-07-09T10:52:39.547790Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.547796Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.547813Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.547825Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=3933286933 [INFO] [stdout] 2026-07-09T10:52:39.547823Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.547825Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=2646873690 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.547832Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=50 srtt_ms=50 rttvar_ms=25 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.547849Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.547854Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=3933286933 remote_addr=127.0.0.1:1001 [INFO] [stdout] 2026-07-09T10:52:39.547744Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.547704Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] test core::tests::state::test_address_reuse_after_cid_drained ... ok [INFO] [stdout] 2026-07-09T10:52:39.547916Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=1854190210 addr=127.0.0.1:52251 [INFO] [stdout] 2026-07-09T10:52:39.547922Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-07-09T10:52:39.547946Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.547924Z TRACE mio::poll: registering event source with poller: token=Token(136413194616320), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.547977Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2276028173 frame=Push { header: ShortHeader { command: Push, connection_id: 2276028173, payload_length: 12, recv_window_size: 256, timestamp: 50, sequence_number: 1, recv_next_sequence: 1 }, payload: b"hello_client" } [INFO] [stdout] 2026-07-09T10:52:39.548001Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2276028173, payload_length: 12, recv_window_size: 256, timestamp: 50, sequence_number: 1, recv_next_sequence: 1 }, payload: b"hello_client" } [INFO] [stdout] 2026-07-09T10:52:39.547846Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=4116070984 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.543825Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=28 [INFO] [stdout] 2026-07-09T10:52:39.547670Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.548078Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.547718Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:46988 frame_count=1 bytes=10 [INFO] [stdout] 2026-07-09T10:52:39.548540Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:48784 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.548652Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-07-09T10:52:39.548677Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.548744Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.548787Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.548649Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:46988 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.548106Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=4116070984 addr=127.0.0.1:58342 [INFO] [stdout] 2026-07-09T10:52:39.548160Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-07-09T10:52:39.548179Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.549015Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-07-09T10:52:39.549036Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.549050Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:39123) [INFO] [stdout] 2026-07-09T10:52:39.548943Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:46988 [INFO] [stdout] 2026-07-09T10:52:39.548217Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.547627Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.549309Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=4116070984 addr=127.0.0.1:58342 [INFO] [stdout] 2026-07-09T10:52:39.549353Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for outbound connection addr=127.0.0.1:58342 cid=4116070984 [INFO] [stdout] 2026-07-09T10:52:39.549345Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.549381Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=4116070984 remote_addr=127.0.0.1:58342 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 4116070984 } } [INFO] [stdout] 2026-07-09T10:52:39.549386Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=3933286933 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.549418Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4116070984 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.548256Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-07-09T10:52:39.549482Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:58342 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.549521Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:58342 frame_count=1 bytes=10 [INFO] [stdout] 2026-07-09T10:52:39.549552Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=3933286933 addr=127.0.0.1:1001 [INFO] [stdout] 2026-07-09T10:52:39.549590Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=3933286933 addr=127.0.0.1:1001 [INFO] [stdout] 2026-07-09T10:52:39.547515Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=101 frame=Push { header: ShortHeader { command: Push, connection_id: 101, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.548311Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.549727Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:34610 frame_count=1 bytes=10 [INFO] [stdout] 2026-07-09T10:52:39.549781Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:34610 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.549800Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:34610 [INFO] [stdout] 2026-07-09T10:52:39.549815Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=4119882803 [INFO] [stdout] 2026-07-09T10:52:39.549856Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=4119882803 remote_addr=127.0.0.1:34610 [INFO] [stdout] 2026-07-09T10:52:39.548030Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2276028173 seq=1 payload_len=12 state=Established [INFO] [stdout] 2026-07-09T10:52:39.549968Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2276028173 seq=1 payload_len=12 [INFO] [stdout] 2026-07-09T10:52:39.549979Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:1001 cid=3933286933 [INFO] [stdout] 2026-07-09T10:52:39.548189Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=1854190210 addr=127.0.0.1:52251 [INFO] [stdout] 2026-07-09T10:52:39.550024Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2276028173 remote_addr=127.0.0.1:39613 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 3096612428, payload_length: 8, recv_window_size: 255, timestamp: 114, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.550042Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:1001 cid=3933286933 [INFO] [stdout] 2026-07-09T10:52:39.550068Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3933286933 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.550074Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2276028173 [INFO] [stdout] 2026-07-09T10:52:39.550093Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2276028173 count=1 [INFO] [stdout] 2026-07-09T10:52:39.550097Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=3933286933 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.550111Z  INFO kestrel_protocol::socket::tests::rebind: 连接建立,服务器看到的客户端地址: 127.0.0.1:52251 [INFO] [stdout] 2026-07-09T10:52:39.550120Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=3933286933 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.550129Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2276028173 state=Established [INFO] [stdout] 2026-07-09T10:52:39.550150Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.550164Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.550170Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:39613 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.550188Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=3933286933 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.550204Z DEBUG kestrel_protocol::socket::transport::manager: 传输管理器重绑定地址 | Transport manager rebinding address new_addr=127.0.0.1:0 [INFO] [stdout] 2026-07-09T10:52:39.550211Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:39613 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.549713Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 101, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.549907Z  INFO kestrel_protocol::socket::tests::rebind: 服务器地址: 127.0.0.1:37233 [INFO] [stdout] 2026-07-09T10:52:39.548102Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=4166593310 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.550243Z  INFO kestrel_protocol::socket::tests::rebind: 客户端地址: 127.0.0.1:39123 [INFO] [stdout] 2026-07-09T10:52:39.550246Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=101 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.550266Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=101 seq=4 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.550295Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=101 remote_addr=127.0.0.1:9000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 251, timestamp: 110, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.549991Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.550366Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=4166593310 addr=127.0.0.1:2001 [INFO] [stdout] 2026-07-09T10:52:39.550364Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=4119882803 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.550398Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=4166593310 addr=127.0.0.1:2001 [INFO] [stdout] 2026-07-09T10:52:39.550437Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:2001 cid=4166593310 [INFO] [stdout] 2026-07-09T10:52:39.550437Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=4119882803 addr=127.0.0.1:34610 [INFO] [stdout] 2026-07-09T10:52:39.550466Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:2002 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.550474Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=4119882803 addr=127.0.0.1:34610 [INFO] [stdout] 2026-07-09T10:52:39.550483Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:2002 [INFO] [stdout] 2026-07-09T10:52:39.550497Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:34610 cid=4119882803 [INFO] [stdout] 2026-07-09T10:52:39.550360Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=101 frame=Push { header: ShortHeader { command: Push, connection_id: 101, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.550528Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:34610 cid=4119882803 [INFO] [stdout] 2026-07-09T10:52:39.550541Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=273721659 [INFO] [stdout] 2026-07-09T10:52:39.550554Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4119882803 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.550574Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=273721659 remote_addr=127.0.0.1:2002 [INFO] [stdout] 2026-07-09T10:52:39.550594Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=3853114792 [INFO] [stdout] 2026-07-09T10:52:39.550629Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=3853114792 remote_addr=127.0.0.1:37233 [INFO] [stdout] 2026-07-09T10:52:39.550631Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.550659Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=273721659 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.550533Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 101, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.550694Z TRACE mio::poll: registering event source with poller: token=Token(136412657638016), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.550692Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.550696Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=101 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.550716Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=101 seq=5 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.550718Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=3853114792 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.550733Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=273721659 addr=127.0.0.1:2002 [INFO] [stdout] 2026-07-09T10:52:39.550745Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=101 remote_addr=127.0.0.1:9000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 250, timestamp: 111, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.550761Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=273721659 addr=127.0.0.1:2002 [INFO] [stdout] 2026-07-09T10:52:39.550787Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.550792Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:2002 cid=273721659 [INFO] [stdout] 2026-07-09T10:52:39.550811Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=3853114792 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.550845Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:2001 cid=4166593310 [INFO] [stdout] 2026-07-09T10:52:39.550205Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=3933286933 remote_addr=127.0.0.1:1001 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 123, source_cid: 3933286933 } } [INFO] [stdout] 2026-07-09T10:52:39.548448Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=28 state=Established [INFO] [stdout] 2026-07-09T10:52:39.550902Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:52251 cid=1854190210 [INFO] [stdout] 2026-07-09T10:52:39.550914Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3933286933 [INFO] [stdout] 2026-07-09T10:52:39.550928Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:2002 cid=273721659 [INFO] [stdout] 2026-07-09T10:52:39.550940Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3933286933 state=Established [INFO] [stdout] 2026-07-09T10:52:39.550951Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-07-09T10:52:39.549900Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=2646873690 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.550955Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=273721659 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.550989Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-07-09T10:52:39.550998Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=273721659 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.550942Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=130 [INFO] [stdout] 2026-07-09T10:52:39.551020Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=273721659 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.551043Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.551041Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=130 state=Established [INFO] [stdout] 2026-07-09T10:52:39.551039Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=2646873690 addr=127.0.0.1:33971 [INFO] [stdout] 2026-07-09T10:52:39.551056Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.551070Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=273721659 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.551072Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=2646873690 addr=127.0.0.1:33971 [INFO] [stdout] 2026-07-09T10:52:39.551087Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=30 [INFO] [stdout] 2026-07-09T10:52:39.551083Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=273721659 remote_addr=127.0.0.1:2002 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 200, source_cid: 273721659 } } [INFO] [stdout] 2026-07-09T10:52:39.551106Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=30 state=Established [INFO] [stdout] 2026-07-09T10:52:39.551111Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for outbound connection addr=127.0.0.1:33971 cid=2646873690 [INFO] [stdout] 2026-07-09T10:52:39.551123Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=273721659 [INFO] [stdout] 2026-07-09T10:52:39.549265Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=52402838 [INFO] [stdout] 2026-07-09T10:52:39.551159Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=3853114792 addr=127.0.0.1:37233 [INFO] [stdout] 2026-07-09T10:52:39.551190Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=3853114792 addr=127.0.0.1:37233 [INFO] [stdout] 2026-07-09T10:52:39.551196Z DEBUG kestrel_protocol::socket::transport::manager: 传输管理器重绑定完成 | Transport manager rebind completed actual_addr=127.0.0.1:37548 [INFO] [stdout] 2026-07-09T10:52:39.551143Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=273721659 state=Established [INFO] [stdout] 2026-07-09T10:52:39.551262Z  INFO kestrel_protocol::core::tests::state: [Client] Received server response [INFO] [stdout] 2026-07-09T10:52:39.551322Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:59314 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.551138Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2646873690 remote_addr=127.0.0.1:33971 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 2646873690 } } [INFO] [stdout] 2026-07-09T10:52:39.547153Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 102, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01" } [INFO] [stdout] 2026-07-09T10:52:39.551462Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=102 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.551151Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=132 [INFO] [stdout] 2026-07-09T10:52:39.551483Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=102 seq=7 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.551518Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=132 state=Established [INFO] [stdout] 2026-07-09T10:52:39.550867Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4166593310 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.551566Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=4166593310 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.551586Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=4166593310 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.551588Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=131 [INFO] [stdout] 2026-07-09T10:52:39.551609Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.551610Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=131 state=Established [INFO] [stdout] 2026-07-09T10:52:39.551621Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.551649Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=4166593310 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.551656Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=32 [INFO] [stdout] 2026-07-09T10:52:39.551662Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=4166593310 remote_addr=127.0.0.1:2001 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 100, source_cid: 4166593310 } } [INFO] [stdout] 2026-07-09T10:52:39.548897Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:3001 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.551694Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=32 state=Established [INFO] [stdout] 2026-07-09T10:52:39.551538Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2646873690 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.551512Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=102 remote_addr=127.0.0.1:9001 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 248, timestamp: 111, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] test socket::tests::test_actor_sends_to_correct_address_after_accept ... 2026-07-09T10:52:39.551723Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:3001 [INFO] [stdout] 2026-07-09T10:52:39.551731Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=133 [INFO] [stdout] 2026-07-09T10:52:39.551406Z  INFO kestrel_protocol::socket::tests::rebind: 客户端从 127.0.0.1:52251 rebind到 127.0.0.1:37548 [INFO] [stdout] 2026-07-09T10:52:39.551980Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=3129552048 [INFO] [stdout] 2026-07-09T10:52:39.552017Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=3129552048 remote_addr=127.0.0.1:3001 [INFO] [stdout] 2026-07-09T10:52:39.552025Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=807311785 current_state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.552052Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=807311785 from="Connecting" to="Closing" [INFO] [stdout] 2026-07-09T10:52:39.552077Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.552081Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.552097Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.552111Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Added packet to simple retransmission tracking seq=1 max_retries=5 retry_interval_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.552109Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=3129552048 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.552131Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=807311785 remote_addr=127.0.0.1:45898 frame_count=2 first_frame=Push { header: ShortHeader { command: Push, connection_id: 0, payload_length: 24, recv_window_size: 256, timestamp: 6, sequence_number: 0, recv_next_sequence: 0 }, payload: b"test after client rebind" } [INFO] [stdout] 2026-07-09T10:52:39.552163Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=807311785 [INFO] [stdout] 2026-07-09T10:52:39.552172Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=3129552048 addr=127.0.0.1:3001 [INFO] [stdout] 2026-07-09T10:52:39.552185Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=807311785 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.552202Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=3129552048 addr=127.0.0.1:3001 [INFO] [stdout] 2026-07-09T10:52:39.550632Z DEBUG kestrel_protocol::socket::transport::manager: 传输管理器重绑定地址 | Transport manager rebinding address new_addr=127.0.0.1:0 [INFO] [stdout] ok [INFO] [stdout] 2026-07-09T10:52:39.551396Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2276028173 [INFO] [stdout] 2026-07-09T10:52:39.552296Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.552303Z TRACE mio::poll: registering event source with poller: token=Token(136412188105728), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.551249Z DEBUG kestrel_protocol::socket::transport::sender: Transport sender task is swapping to a new transport [INFO] [stdout] 2026-07-09T10:52:39.552401Z DEBUG kestrel_protocol::socket::transport::udp: Receiver task received shutdown signal [INFO] [stdout] 2026-07-09T10:52:39.552424Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task has shut down [INFO] [stdout] 2026-07-09T10:52:39.552438Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.550786Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=101 frame=Push { header: ShortHeader { command: Push, connection_id: 101, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.551255Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for outbound connection addr=127.0.0.1:37233 cid=3853114792 [INFO] [stdout] 2026-07-09T10:52:39.552559Z TRACE mio::poll: registering event source with poller: token=Token(136413462982016), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.552566Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=3853114792 remote_addr=127.0.0.1:37233 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 3853114792 } } [INFO] [stdout] 2026-07-09T10:52:39.552607Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3853114792 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.552501Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 101, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.552654Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:37233 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.552655Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=101 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.552675Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=101 seq=6 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.552694Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:37233 frame_count=1 bytes=10 [INFO] [stdout] 2026-07-09T10:52:39.552703Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=101 remote_addr=127.0.0.1:9000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 249, timestamp: 112, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.552738Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.552753Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-07-09T10:52:39.552764Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.552782Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:48638) [INFO] [stdout] 2026-07-09T10:52:39.552814Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=133 state=Established [INFO] [stdout] 2026-07-09T10:52:39.552836Z TRACE mio::poll: registering event source with poller: token=Token(136413462954624), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.551770Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=4166593310 [INFO] [stdout] 2026-07-09T10:52:39.552889Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2276028173 remote_addr=127.0.0.1:39613 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 3096612428, payload_length: 14, recv_window_size: 256, timestamp: 114, sequence_number: 1, recv_next_sequence: 2 }, payload: b"goodbye_server" } [INFO] [stdout] 2026-07-09T10:52:39.552914Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4166593310 state=Established [INFO] [stdout] 2026-07-09T10:52:39.552930Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2276028173 state=Established [INFO] [stdout] 2026-07-09T10:52:39.552981Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:59314 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.553025Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:39613 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.553059Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=3096612428 frame=Ack { header: ShortHeader { command: Ack, connection_id: 3096612428, payload_length: 8, recv_window_size: 255, timestamp: 114, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.553069Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=273721659 [INFO] [stdout] 2026-07-09T10:52:39.553081Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.553084Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 3096612428, payload_length: 8, recv_window_size: 255, timestamp: 114, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.553097Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-07-09T10:52:39.553107Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.553106Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=3096612428 recv_next_seq=1 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.553118Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=4166593310 [INFO] [stdout] 2026-07-09T10:52:39.553124Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=3096612428 [INFO] [stdout] 2026-07-09T10:52:39.552239Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:3001 cid=3129552048 [INFO] [stdout] 2026-07-09T10:52:39.553166Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:45898 frame_count=2 [INFO] [stdout] 2026-07-09T10:52:39.553184Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:3002 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.553216Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:3002 [INFO] [stdout] 2026-07-09T10:52:39.553217Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:45898 frame_count=2 bytes=66 [INFO] [stdout] 2026-07-09T10:52:39.553240Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=110521557 [INFO] [stdout] 2026-07-09T10:52:39.553276Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=110521557 remote_addr=127.0.0.1:3002 [INFO] [stdout] 2026-07-09T10:52:39.553300Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor has shut down [INFO] [stdout] 2026-07-09T10:52:39.553312Z DEBUG kestrel_protocol::socket::transport::manager: 传输管理器重绑定完成 | Transport manager rebind completed actual_addr=127.0.0.1:41550 [INFO] [stdout] 2026-07-09T10:52:39.553119Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:57405) [INFO] [stdout] 2026-07-09T10:52:39.553344Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.553375Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-07-09T10:52:39.552866Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=33 [INFO] [stdout] 2026-07-09T10:52:39.553403Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-07-09T10:52:39.553414Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=33 state=Established [INFO] [stdout] 2026-07-09T10:52:39.553435Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.551900Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=102 frame=Push { header: ShortHeader { command: Push, connection_id: 102, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01" } [INFO] [stdout] 2026-07-09T10:52:39.553376Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=110521557 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.553469Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=31 [INFO] [stdout] 2026-07-09T10:52:39.553510Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-07-09T10:52:39.553533Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:39123 frame_count=1 bytes=10 [INFO] [stdout] 2026-07-09T10:52:39.553986Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=31 state=Established [INFO] [stdout] 2026-07-09T10:52:39.553377Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-07-09T10:52:39.553326Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-07-09T10:52:39.554028Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=135 [INFO] [stdout] 2026-07-09T10:52:39.554049Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=135 state=Established [INFO] [stdout] 2026-07-09T10:52:39.553886Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 102, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01" } [INFO] [stdout] 2026-07-09T10:52:39.554050Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:39123 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.554074Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:39123 [INFO] [stdout] 2026-07-09T10:52:39.554039Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=110521557 addr=127.0.0.1:3002 [INFO] [stdout] 2026-07-09T10:52:39.553565Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:37548 frame_count=2 bytes=66 [INFO] [stdout] 2026-07-09T10:52:39.546926Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 103, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02" } [INFO] [stdout] 2026-07-09T10:52:39.554101Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=2572252030 [INFO] [stdout] 2026-07-09T10:52:39.554124Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=103 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.554141Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2572252030 remote_addr=127.0.0.1:39123 [INFO] [stdout] 2026-07-09T10:52:39.554150Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=103 seq=3 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.554153Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:37548 frame_count=2 [INFO] [stdout] 2026-07-09T10:52:39.554195Z DEBUG kestrel_protocol::socket::event_loop::routing: 缓存早到的PUSH帧 127.0.0.1:37548 CID 0 | Cached early arrival PUSH frame from 127.0.0.1:37548 with CID 0 [INFO] [stdout] 2026-07-09T10:52:39.554187Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=103 remote_addr=127.0.0.1:9002 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 3, payload_length: 8, recv_window_size: 252, timestamp: 112, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.553671Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:33971 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.554212Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.554225Z DEBUG kestrel_protocol::socket::event_loop::routing: 早到帧已缓存 | Early arrival frame cached cid=0 addr=127.0.0.1:37548 cache_key=15378069344413038867 [INFO] [stdout] 2026-07-09T10:52:39.554242Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=2572252030 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.554245Z DEBUG kestrel_protocol::socket::event_loop::routing: 忽略来自未知源的非SYN数据包 127.0.0.1:37548 不可路由CID 0: Fin { header: ShortHeader { command: Fin, connection_id: 0, payload_length: 0, recv_window_size: 256, timestamp: 6, sequence_number: 1, recv_next_sequence: 0 } } | Ignoring non-SYN packet from unknown source 127.0.0.1:37548 with unroutable CID 0: Fin { header: ShortHeader { command: Fin, connection_id: 0, payload_length: 0, recv_window_size: 256, timestamp: 6, sequence_number: 1, recv_next_sequence: 0 } } [INFO] [stdout] 2026-07-09T10:52:39.554264Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:33971 frame_count=1 bytes=10 [INFO] [stdout] 2026-07-09T10:52:39.553667Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:3001 cid=3129552048 [INFO] [stdout] test socket::tests::test_actor_concurrent_write_sends_to_correct_addresses ... ok [INFO] [stdout] 2026-07-09T10:52:39.554327Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3129552048 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.554348Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:39123 cid=2572252030 [INFO] [stdout] 2026-07-09T10:52:39.554366Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=3129552048 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.554381Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2572252030 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.554391Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=3129552048 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.554423Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.553593Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=3096612428 recv_next_seq=1 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.554435Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.554465Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=3129552048 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.554467Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-07-09T10:52:39.554478Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.554482Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=3129552048 remote_addr=127.0.0.1:3001 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 300, source_cid: 3129552048 } } [INFO] [stdout] 2026-07-09T10:52:39.554490Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=1 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.554512Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3129552048 [INFO] [stdout] 2026-07-09T10:52:39.554510Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=14 srtt_ms=14 rttvar_ms=5 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.554529Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.554531Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3129552048 state=Established [INFO] [stdout] 2026-07-09T10:52:39.554230Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=103 frame=Push { header: ShortHeader { command: Push, connection_id: 103, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02" } [INFO] [stdout] 2026-07-09T10:52:39.554541Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.554564Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3096612428 [INFO] [stdout] 2026-07-09T10:52:39.554579Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-07-09T10:52:39.554584Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3096612428 state=Established [INFO] [stdout] 2026-07-09T10:52:39.554609Z DEBUG kestrel_protocol::socket::transport::sender: Transport sender task is swapping to a new transport [INFO] [stdout] 2026-07-09T10:52:39.554625Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:39613 frame_count=1 bytes=35 [INFO] [stdout] 2026-07-09T10:52:39.554069Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=102 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-07-09T10:52:39.554648Z DEBUG kestrel_protocol::socket::transport::udp: Receiver task received shutdown signal [INFO] [stdout] 2026-07-09T10:52:39.554660Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task has shut down [INFO] [stdout] 2026-07-09T10:52:39.554685Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor has shut down [INFO] [stdout] 2026-07-09T10:52:39.554712Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-07-09T10:52:39.554721Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:59314 frame_count=1 bytes=35 [INFO] [stdout] 2026-07-09T10:52:39.554751Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:47418 frame_count=1 bytes=10 [INFO] [stdout] 2026-07-09T10:52:39.554773Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:59314 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.554823Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=3096612428 frame=Push { header: ShortHeader { command: Push, connection_id: 3096612428, payload_length: 14, recv_window_size: 256, timestamp: 114, sequence_number: 1, recv_next_sequence: 2 }, payload: b"goodbye_server" } [INFO] [stdout] 2026-07-09T10:52:39.554851Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 3096612428, payload_length: 14, recv_window_size: 256, timestamp: 114, sequence_number: 1, recv_next_sequence: 2 }, payload: b"goodbye_server" } [INFO] [stdout] 2026-07-09T10:52:39.554896Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=102 seq=8 payload_len=640 [INFO] [stdout] 2026-07-09T10:52:39.554910Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=110521557 addr=127.0.0.1:3002 [INFO] [stdout] 2026-07-09T10:52:39.554921Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=2572252030 addr=127.0.0.1:39123 [INFO] [stdout] 2026-07-09T10:52:39.554930Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=102 remote_addr=127.0.0.1:9001 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 247, timestamp: 114, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.554955Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:3002 cid=110521557 [INFO] [stdout] 2026-07-09T10:52:39.554939Z TRACE mio::poll: registering event source with poller: token=Token(136412187877888), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.554960Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=2572252030 addr=127.0.0.1:39123 [INFO] [stdout] 2026-07-09T10:52:39.554970Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=102 [INFO] [stdout] 2026-07-09T10:52:39.554991Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=102 count=9 [INFO] [stdout] 2026-07-09T10:52:39.555010Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:3002 cid=110521557 [INFO] [stdout] 2026-07-09T10:52:39.555028Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-07-09T10:52:39.555034Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=110521557 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.555086Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.555034Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=102 state=Established [INFO] [stdout] 2026-07-09T10:52:39.555151Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.555178Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-07-09T10:52:39.555188Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.555207Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:57941) [INFO] [stdout] 2026-07-09T10:52:39.555264Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-07-09T10:52:39.555276Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=110521557 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.555290Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-07-09T10:52:39.555304Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=110521557 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.555322Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.555331Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.555342Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.555373Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=110521557 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.555384Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=55 slots_to_advance=5 max_advance=5 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.555405Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=110521557 remote_addr=127.0.0.1:3002 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 400, source_cid: 110521557 } } [INFO] [stdout] 2026-07-09T10:52:39.555438Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=110521557 [INFO] [stdout] 2026-07-09T10:52:39.555438Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=20 [INFO] [stdout] 2026-07-09T10:52:39.555441Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=101 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.555469Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=20 state=Established [INFO] [stdout] 2026-07-09T10:52:39.554994Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:39123 cid=2572252030 [INFO] [stdout] 2026-07-09T10:52:39.555460Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=110521557 state=Established [INFO] [stdout] 2026-07-09T10:52:39.555585Z  INFO kestrel_protocol::socket::tests::rebind: 连接建立成功 | Connection established successfully [INFO] [stdout] 2026-07-09T10:52:39.555634Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.555653Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.555664Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=3853114792 current_state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.555674Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=52 slots_to_advance=5 max_advance=5 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.555701Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=3853114792 from="Connecting" to="Closing" [INFO] [stdout] 2026-07-09T10:52:39.555729Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-07-09T10:52:39.555743Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.555742Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=47 current_state=Connecting target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.555768Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=47 from="Connecting" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.555805Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=47 peer_cid=147 [INFO] [stdout] 2026-07-09T10:52:39.555819Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=3096612428 seq=1 payload_len=14 state=Established [INFO] [stdout] 2026-07-09T10:52:39.554564Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 103, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02" } [INFO] [stdout] 2026-07-09T10:52:39.555461Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-07-09T10:52:39.555865Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=103 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.555903Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-07-09T10:52:39.555910Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=103 seq=4 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.555918Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.555952Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-07-09T10:52:39.555954Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=103 remote_addr=127.0.0.1:9002 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 3, payload_length: 8, recv_window_size: 251, timestamp: 114, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.555996Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.555376Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=2389068048 [INFO] [stdout] 2026-07-09T10:52:39.556088Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.556125Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2389068048 remote_addr=127.0.0.1:41550 [INFO] [stdout] 2026-07-09T10:52:39.555861Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=3096612428 seq=1 payload_len=14 [INFO] [stdout] 2026-07-09T10:52:39.556182Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:4001 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.556191Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=3096612428 remote_addr=127.0.0.1:59314 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 2276028173, payload_length: 8, recv_window_size: 255, timestamp: 78, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.556218Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.555772Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.554866Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:47418 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.556257Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=2389068048 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.556264Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:47418 [INFO] [stdout] 2026-07-09T10:52:39.556271Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Added packet to simple retransmission tracking seq=1 max_retries=5 retry_interval_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.556278Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=597286251 [INFO] [stdout] 2026-07-09T10:52:39.556290Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=3853114792 remote_addr=127.0.0.1:37233 frame_count=2 first_frame=Push { header: ShortHeader { command: Push, connection_id: 0, payload_length: 19, recv_window_size: 256, timestamp: 5, sequence_number: 0, recv_next_sequence: 0 }, payload: b"hello before rebind" } [INFO] [stdout] 2026-07-09T10:52:39.556320Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=597286251 remote_addr=127.0.0.1:47418 [INFO] [stdout] 2026-07-09T10:52:39.556320Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.555993Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=103 frame=Push { header: ShortHeader { command: Push, connection_id: 103, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02" } [INFO] [stdout] 2026-07-09T10:52:39.556340Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3853114792 [INFO] [stdout] 2026-07-09T10:52:39.556343Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=2389068048 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.556362Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3853114792 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.556380Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.556402Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:37233 frame_count=2 [INFO] [stdout] 2026-07-09T10:52:39.556401Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=2389068048 addr=127.0.0.1:41550 [INFO] [stdout] 2026-07-09T10:52:39.556415Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=597286251 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.556431Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=2389068048 addr=127.0.0.1:41550 [INFO] [stdout] 2026-07-09T10:52:39.556440Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:37233 frame_count=2 bytes=61 [INFO] [stdout] 2026-07-09T10:52:39.556484Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for outbound connection addr=127.0.0.1:41550 cid=2389068048 [INFO] [stdout] 2026-07-09T10:52:39.556231Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3096612428 [INFO] [stdout] 2026-07-09T10:52:39.556509Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=597286251 addr=127.0.0.1:47418 [INFO] [stdout] 2026-07-09T10:52:39.556519Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2389068048 remote_addr=127.0.0.1:41550 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 2389068048 } } [INFO] [stdout] 2026-07-09T10:52:39.556532Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=3096612428 count=1 [INFO] [stdout] 2026-07-09T10:52:39.556537Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=597286251 addr=127.0.0.1:47418 [INFO] [stdout] 2026-07-09T10:52:39.556550Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2389068048 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.556357Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 103, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02" } [INFO] [stdout] 2026-07-09T10:52:39.556673Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:41550 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.556685Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=103 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.556708Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=103 seq=5 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.556712Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:41550 frame_count=1 bytes=10 [INFO] [stdout] 2026-07-09T10:52:39.556736Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=103 remote_addr=127.0.0.1:9002 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 3, payload_length: 8, recv_window_size: 250, timestamp: 115, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.556556Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:47418 cid=597286251 [INFO] [stdout] 2026-07-09T10:52:39.556925Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:47418 cid=597286251 [INFO] [stdout] 2026-07-09T10:52:39.556951Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=597286251 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.557051Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=2646873690 current_state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.557075Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2646873690 from="Connecting" to="Closing" [INFO] [stdout] 2026-07-09T10:52:39.556772Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=103 frame=Push { header: ShortHeader { command: Push, connection_id: 103, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02" } [INFO] [stdout] 2026-07-09T10:52:39.557099Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.557130Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.557144Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Added packet to simple retransmission tracking seq=1 max_retries=5 retry_interval_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.557164Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2646873690 remote_addr=127.0.0.1:33971 frame_count=2 first_frame=Push { header: ShortHeader { command: Push, connection_id: 0, payload_length: 13, recv_window_size: 256, timestamp: 9, sequence_number: 0, recv_next_sequence: 0 }, payload: b"before rebind" } [INFO] [stdout] 2026-07-09T10:52:39.557197Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2646873690 [INFO] [stdout] 2026-07-09T10:52:39.557218Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2646873690 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.557252Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:33971 frame_count=2 [INFO] [stdout] 2026-07-09T10:52:39.557287Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:33971 frame_count=2 bytes=55 [INFO] [stdout] 2026-07-09T10:52:39.557386Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:47418 frame_count=2 bytes=55 [INFO] [stdout] 2026-07-09T10:52:39.557446Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:47418 frame_count=2 [INFO] [stdout] 2026-07-09T10:52:39.557527Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=597286251 frame=Push { header: ShortHeader { command: Push, connection_id: 0, payload_length: 13, recv_window_size: 256, timestamp: 9, sequence_number: 0, recv_next_sequence: 0 }, payload: b"before rebind" } [INFO] [stdout] 2026-07-09T10:52:39.557119Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 103, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02" } [INFO] [stdout] 2026-07-09T10:52:39.557554Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 0, payload_length: 13, recv_window_size: 256, timestamp: 9, sequence_number: 0, recv_next_sequence: 0 }, payload: b"before rebind" } [INFO] [stdout] 2026-07-09T10:52:39.557562Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=103 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.557575Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=597286251 seq=0 payload_len=13 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.557586Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=103 seq=6 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.557592Z DEBUG kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in SynReceived state (0-RTT data) cid=597286251 seq=0 [INFO] [stdout] 2026-07-09T10:52:39.557610Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=597286251 frame=Fin { header: ShortHeader { command: Fin, connection_id: 0, payload_length: 0, recv_window_size: 256, timestamp: 9, sequence_number: 1, recv_next_sequence: 0 } } [INFO] [stdout] 2026-07-09T10:52:39.557614Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=103 remote_addr=127.0.0.1:9002 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 3, payload_length: 8, recv_window_size: 249, timestamp: 116, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.557628Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Fin { header: ShortHeader { command: Fin, connection_id: 0, payload_length: 0, recv_window_size: 256, timestamp: 9, sequence_number: 1, recv_next_sequence: 0 } } [INFO] [stdout] 2026-07-09T10:52:39.557647Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=597286251 seq=1 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.557665Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Handling FIN in SynReceived state (0-RTT close) cid=597286251 seq=1 [INFO] [stdout] 2026-07-09T10:52:39.557688Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=597286251 remote_addr=127.0.0.1:47418 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 2646873690, payload_length: 8, recv_window_size: 254, timestamp: 1, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.557719Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=597286251 current_state=SynReceived target_state=FinWait [INFO] [stdout] 2026-07-09T10:52:39.557737Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=597286251 from="SynReceived" to="FinWait" [INFO] [stdout] 2026-07-09T10:52:39.557756Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=597286251 [INFO] [stdout] 2026-07-09T10:52:39.557771Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=597286251 count=1 [INFO] [stdout] 2026-07-09T10:52:39.557797Z TRACE kestrel_protocol::core::endpoint::core::event_loop: All data drained after FIN, closing user stream (sending EOF). cid=597286251 [INFO] [stdout] 2026-07-09T10:52:39.557811Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=597286251 state=FinWait [INFO] [stdout] 2026-07-09T10:52:39.557848Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:47418 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.557918Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=142339372 [INFO] [stdout] 2026-07-09T10:52:39.557956Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=142339372 remote_addr=127.0.0.1:41550 [INFO] [stdout] 2026-07-09T10:52:39.557651Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=103 frame=Push { header: ShortHeader { command: Push, connection_id: 103, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02" } [INFO] [stdout] 2026-07-09T10:52:39.558039Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=3 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.558069Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=3 entry_id=3 connection_id=142339372 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.558140Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=4 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.558166Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=4 entry_id=4 connection_id=142339372 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.558227Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=142339372 addr=127.0.0.1:41550 [INFO] [stdout] 2026-07-09T10:52:39.558254Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=142339372 addr=127.0.0.1:41550 [INFO] [stdout] 2026-07-09T10:52:39.558293Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for outbound connection addr=127.0.0.1:41550 cid=142339372 [INFO] [stdout] 2026-07-09T10:52:39.557997Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 103, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02" } [INFO] [stdout] 2026-07-09T10:52:39.558319Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=142339372 remote_addr=127.0.0.1:41550 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 142339372 } } [INFO] [stdout] 2026-07-09T10:52:39.558320Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=103 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.552740Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=101 frame=Push { header: ShortHeader { command: Push, connection_id: 101, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.558359Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=103 seq=7 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.558367Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=142339372 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.558389Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=103 remote_addr=127.0.0.1:9002 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 3, payload_length: 8, recv_window_size: 248, timestamp: 116, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.558403Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:41550 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.558439Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:41550 frame_count=1 bytes=10 [INFO] [stdout] 2026-07-09T10:52:39.558392Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 101, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.558570Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=101 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.558428Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=103 frame=Push { header: ShortHeader { command: Push, connection_id: 103, payload_length: 640, recv_window_size: 256, timestamp: 1, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02" } [INFO] [stdout] 2026-07-09T10:52:39.558589Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=101 seq=7 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.558619Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=101 remote_addr=127.0.0.1:9000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 248, timestamp: 118, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.558656Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=101 frame=Push { header: ShortHeader { command: Push, connection_id: 101, payload_length: 640, recv_window_size: 256, timestamp: 2, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.558767Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-07-09T10:52:39.558610Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 103, payload_length: 640, recv_window_size: 256, timestamp: 1, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02" } [INFO] [stdout] 2026-07-09T10:52:39.558797Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=103 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-07-09T10:52:39.558816Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=103 seq=8 payload_len=640 [INFO] [stdout] 2026-07-09T10:52:39.558764Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 101, payload_length: 640, recv_window_size: 256, timestamp: 2, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.558842Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=103 remote_addr=127.0.0.1:9002 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 3, payload_length: 8, recv_window_size: 247, timestamp: 117, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.558853Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=101 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-07-09T10:52:39.558870Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=101 seq=8 payload_len=640 [INFO] [stdout] 2026-07-09T10:52:39.556564Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3096612428 state=Established [INFO] [stdout] 2026-07-09T10:52:39.558893Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=103 [INFO] [stdout] 2026-07-09T10:52:39.553702Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=52402838 remote_addr=127.0.0.1:46988 [INFO] [stdout] 2026-07-09T10:52:39.558912Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=103 count=9 [INFO] [stdout] 2026-07-09T10:52:39.558941Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:59314 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.558941Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=103 state=Established [INFO] [stdout] 2026-07-09T10:52:39.558982Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:48784 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.555823Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=47 frame=Push { header: ShortHeader { command: Push, connection_id: 47, payload_length: 4, recv_window_size: 256, timestamp: 2, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.559183Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 47, payload_length: 4, recv_window_size: 256, timestamp: 2, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.559257Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=47 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-07-09T10:52:39.559283Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=47 seq=0 payload_len=4 [INFO] [stdout] 2026-07-09T10:52:39.559311Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=47 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 147, payload_length: 8, recv_window_size: 255, timestamp: 56, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.559349Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=47 [INFO] [stdout] 2026-07-09T10:52:39.559365Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=47 count=1 [INFO] [stdout] 2026-07-09T10:52:39.559392Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=47 state=Established [INFO] [stdout] 2026-07-09T10:52:39.559499Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=56 slots_to_advance=5 max_advance=5 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.559749Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=150 [INFO] [stdout] 2026-07-09T10:52:39.559774Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=150 state=Established [INFO] [stdout] 2026-07-09T10:52:39.559837Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=55 slots_to_advance=5 max_advance=5 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.559908Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=55 slots_to_advance=5 max_advance=5 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.559985Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.560005Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.560026Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=53 slots_to_advance=5 max_advance=5 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.560067Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-07-09T10:52:39.560078Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=49 current_state=Connecting target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.560098Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=49 from="Connecting" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.560116Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=49 peer_cid=149 [INFO] [stdout] 2026-07-09T10:52:39.560134Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=49 frame=Push { header: ShortHeader { command: Push, connection_id: 49, payload_length: 4, recv_window_size: 256, timestamp: 2, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.560156Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 49, payload_length: 4, recv_window_size: 256, timestamp: 2, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.560173Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=49 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-07-09T10:52:39.560189Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=49 seq=0 payload_len=4 [INFO] [stdout] 2026-07-09T10:52:39.560212Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=49 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 149, payload_length: 8, recv_window_size: 255, timestamp: 53, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.560243Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=49 [INFO] [stdout] 2026-07-09T10:52:39.560256Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=49 count=1 [INFO] [stdout] 2026-07-09T10:52:39.560278Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=49 state=Established [INFO] [stdout] 2026-07-09T10:52:39.560331Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=49 [INFO] [stdout] 2026-07-09T10:52:39.560352Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.560366Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.560378Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-07-09T10:52:39.560389Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-07-09T10:52:39.560399Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-07-09T10:52:39.560409Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-07-09T10:52:39.560419Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-07-09T10:52:39.560429Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-07-09T10:52:39.560442Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-07-09T10:52:39.560465Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=49 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 149, payload_length: 1200, recv_window_size: 256, timestamp: 53, sequence_number: 0, recv_next_sequence: 1 }, payload: b"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" } [INFO] [stdout] 2026-07-09T10:52:39.560571Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=49 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 149, payload_length: 1200, recv_window_size: 256, timestamp: 53, sequence_number: 1, recv_next_sequence: 1 }, payload: b"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" } [INFO] [stdout] 2026-07-09T10:52:39.560671Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=49 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 149, payload_length: 1200, recv_window_size: 256, timestamp: 53, sequence_number: 2, recv_next_sequence: 1 }, payload: b"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" } [INFO] [stdout] 2026-07-09T10:52:39.560774Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=49 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 149, payload_length: 1200, recv_window_size: 256, timestamp: 53, sequence_number: 3, recv_next_sequence: 1 }, payload: b"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" } [INFO] [stdout] 2026-07-09T10:52:39.556617Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=101 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.561034Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.561058Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.561171Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=44 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.561208Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=52402838 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.561262Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=951159906 frame=Ack { header: ShortHeader { command: Ack, connection_id: 33535875, payload_length: 8, recv_window_size: 255, timestamp: 514, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.561292Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 33535875, payload_length: 8, recv_window_size: 255, timestamp: 514, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.561316Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=951159906 recv_next_seq=0 recv_window=255 payload_len=8 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.561337Z  WARN kestrel_protocol::core::endpoint::processing::processors::ack: Ignoring ACK frame in unexpected state cid=951159906 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.561354Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=951159906 [INFO] [stdout] 2026-07-09T10:52:39.561370Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=951159906 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.561447Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=52402838 addr=127.0.0.1:46988 [INFO] [stdout] 2026-07-09T10:52:39.561482Z DEBUG kestrel_protocol::socket::event_loop::routing: 相同地址存在旧连接,移除旧连接 | Old connection exists for same address, removing old connection old_cid=1330556850 new_cid=52402838 addr=127.0.0.1:46988 [INFO] [stdout] 2026-07-09T10:52:39.561508Z DEBUG kestrel_protocol::socket::event_loop::routing: 移除连接的地址映射 | Removed address mapping for connection cid=1330556850 addr=127.0.0.1:46988 [INFO] [stdout] 2026-07-09T10:52:39.561529Z DEBUG kestrel_protocol::socket::event_loop::routing: 清理连接状态完成,CID现在处于 draining 状态 | Cleaned up connection state. CID is now in draining state. cid=1330556850 [INFO] [stdout] 2026-07-09T10:52:39.561550Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=52402838 addr=127.0.0.1:46988 [INFO] [stdout] 2026-07-09T10:52:39.561570Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:46988 cid=52402838 [INFO] [stdout] 2026-07-09T10:52:39.561607Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:46988 cid=52402838 [INFO] [stdout] 2026-07-09T10:52:39.561629Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=52402838 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.561680Z  INFO kestrel_protocol::core::tests::state: Accepted second connection from 127.0.0.1:46988 [INFO] [stdout] 2026-07-09T10:52:39.561703Z  INFO kestrel_protocol::core::tests::state: Sent ack to trigger SYN-ACK for connection B. [INFO] [stdout] 2026-07-09T10:52:39.561730Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=52402838 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.561752Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=52402838 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.561779Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.561790Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.561805Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=52402838 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.561820Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=52402838 remote_addr=127.0.0.1:46988 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 951159906, source_cid: 52402838 } } [INFO] [stdout] 2026-07-09T10:52:39.561854Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=52402838 [INFO] [stdout] 2026-07-09T10:52:39.556623Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:39123 frame_count=2 bytes=61 [INFO] [stdout] 2026-07-09T10:52:39.558997Z  INFO kestrel_protocol::core::tests::state: [Server] Received second client message [INFO] [stdout] 2026-07-09T10:52:39.554081Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=35 [INFO] [stdout] 2026-07-09T10:52:39.561979Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=35 state=Established [INFO] [stdout] 2026-07-09T10:52:39.561988Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:39123 frame_count=2 [INFO] [stdout] 2026-07-09T10:52:39.562040Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=134 [INFO] [stdout] 2026-07-09T10:52:39.562059Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=134 state=Established [INFO] [stdout] 2026-07-09T10:52:39.562053Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2572252030 frame=Push { header: ShortHeader { command: Push, connection_id: 0, payload_length: 19, recv_window_size: 256, timestamp: 5, sequence_number: 0, recv_next_sequence: 0 }, payload: b"hello before rebind" } [INFO] [stdout] 2026-07-09T10:52:39.562091Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=137 [INFO] [stdout] 2026-07-09T10:52:39.562107Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=137 state=Established [INFO] [stdout] 2026-07-09T10:52:39.562104Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 0, payload_length: 19, recv_window_size: 256, timestamp: 5, sequence_number: 0, recv_next_sequence: 0 }, payload: b"hello before rebind" } [INFO] [stdout] 2026-07-09T10:52:39.562136Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=136 [INFO] [stdout] 2026-07-09T10:52:39.562135Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2572252030 seq=0 payload_len=19 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.562151Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=136 state=Established [INFO] [stdout] 2026-07-09T10:52:39.562155Z DEBUG kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in SynReceived state (0-RTT data) cid=2572252030 seq=0 [INFO] [stdout] 2026-07-09T10:52:39.562180Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=138 [INFO] [stdout] 2026-07-09T10:52:39.562178Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2572252030 frame=Fin { header: ShortHeader { command: Fin, connection_id: 0, payload_length: 0, recv_window_size: 256, timestamp: 5, sequence_number: 1, recv_next_sequence: 0 } } [INFO] [stdout] 2026-07-09T10:52:39.562194Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=138 state=Established [INFO] [stdout] 2026-07-09T10:52:39.562199Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Fin { header: ShortHeader { command: Fin, connection_id: 0, payload_length: 0, recv_window_size: 256, timestamp: 5, sequence_number: 1, recv_next_sequence: 0 } } [INFO] [stdout] 2026-07-09T10:52:39.562218Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=2572252030 seq=1 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.562227Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=34 [INFO] [stdout] 2026-07-09T10:52:39.562236Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Handling FIN in SynReceived state (0-RTT close) cid=2572252030 seq=1 [INFO] [stdout] 2026-07-09T10:52:39.562244Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=34 state=Established [INFO] [stdout] 2026-07-09T10:52:39.562281Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=37 [INFO] [stdout] 2026-07-09T10:52:39.562274Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2572252030 remote_addr=127.0.0.1:39123 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 3853114792, payload_length: 8, recv_window_size: 254, timestamp: 8, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.562301Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=37 state=Established [INFO] [stdout] 2026-07-09T10:52:39.562312Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2572252030 current_state=SynReceived target_state=FinWait [INFO] [stdout] 2026-07-09T10:52:39.562333Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2572252030 from="SynReceived" to="FinWait" [INFO] [stdout] 2026-07-09T10:52:39.562338Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=38 [INFO] [stdout] 2026-07-09T10:52:39.562353Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2572252030 [INFO] [stdout] 2026-07-09T10:52:39.562358Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=38 state=Established [INFO] [stdout] 2026-07-09T10:52:39.562371Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2572252030 count=1 [INFO] [stdout] 2026-07-09T10:52:39.562393Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=139 [INFO] [stdout] 2026-07-09T10:52:39.562411Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=139 state=Established [INFO] [stdout] 2026-07-09T10:52:39.562414Z TRACE kestrel_protocol::core::endpoint::core::event_loop: All data drained after FIN, closing user stream (sending EOF). cid=2572252030 [INFO] [stdout] 2026-07-09T10:52:39.562433Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2572252030 state=FinWait [INFO] [stdout] 2026-07-09T10:52:39.562443Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=140 [INFO] [stdout] 2026-07-09T10:52:39.562457Z  INFO kestrel_protocol::socket::tests::rebind: rebind前数据传输正常 [INFO] [stdout] 2026-07-09T10:52:39.562471Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=140 state=Established [INFO] [stdout] 2026-07-09T10:52:39.562484Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:39123 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.562510Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=122 slots_to_advance=12 max_advance=12 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.562539Z DEBUG kestrel_protocol::socket::transport::manager: 传输管理器重绑定地址 | Transport manager rebinding address new_addr=127.0.0.1:0 [INFO] [stdout] 2026-07-09T10:52:39.562541Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:39123 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.562560Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=40 [INFO] [stdout] 2026-07-09T10:52:39.562581Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=40 state=Established [INFO] [stdout] 2026-07-09T10:52:39.562611Z TRACE mio::poll: registering event source with poller: token=Token(136413731370112), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.562617Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=122 slots_to_advance=12 max_advance=12 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.562660Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=122 slots_to_advance=12 max_advance=12 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.562683Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:37233 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.562707Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=141 [INFO] [stdout] 2026-07-09T10:52:39.562728Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=141 state=Established [INFO] [stdout] 2026-07-09T10:52:39.562746Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:37233 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.562762Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=121 slots_to_advance=12 max_advance=12 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.562769Z DEBUG kestrel_protocol::socket::transport::manager: 传输管理器重绑定完成 | Transport manager rebind completed actual_addr=127.0.0.1:59909 [INFO] [stdout] 2026-07-09T10:52:39.562812Z DEBUG kestrel_protocol::socket::transport::sender: Transport sender task is swapping to a new transport [INFO] [stdout] 2026-07-09T10:52:39.562802Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=3853114792 frame=Ack { header: ShortHeader { command: Ack, connection_id: 3853114792, payload_length: 8, recv_window_size: 254, timestamp: 8, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.562809Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=121 slots_to_advance=12 max_advance=12 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.562831Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 3853114792, payload_length: 8, recv_window_size: 254, timestamp: 8, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.562847Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor has shut down [INFO] [stdout] 2026-07-09T10:52:39.562851Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=121 slots_to_advance=12 max_advance=12 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.562900Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=52402838 state=Established [INFO] [stdout] 2026-07-09T10:52:39.562917Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=121 slots_to_advance=12 max_advance=12 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.562924Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-07-09T10:52:39.562940Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:46988 frame_count=2 [INFO] [stdout] 2026-07-09T10:52:39.562967Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-07-09T10:52:39.562977Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=117 [INFO] [stdout] 2026-07-09T10:52:39.562991Z DEBUG kestrel_protocol::socket::transport::udp: Receiver task received shutdown signal [INFO] [stdout] 2026-07-09T10:52:39.563002Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task has shut down [INFO] [stdout] 2026-07-09T10:52:39.562999Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=117 state=Established [INFO] [stdout] 2026-07-09T10:52:39.562997Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:46988 frame_count=2 bytes=35 [INFO] [stdout] 2026-07-09T10:52:39.563041Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-07-09T10:52:39.563060Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=50 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 50 } } [INFO] [stdout] 2026-07-09T10:52:39.563094Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=50 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.563115Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=50 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 50, source_cid: 150 } } [INFO] [stdout] 2026-07-09T10:52:39.563114Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:48784 frame_count=2 bytes=35 [INFO] [stdout] 2026-07-09T10:52:39.563135Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 50, source_cid: 150 } } [INFO] [stdout] 2026-07-09T10:52:39.563159Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=50 peer_cid=150 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.563214Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.563236Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.563246Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:48784 frame_count=2 [INFO] [stdout] 2026-07-09T10:52:39.563248Z  INFO kestrel_protocol::socket::tests::rebind: 服务器从 127.0.0.1:37233 rebind到 127.0.0.1:59909 [INFO] [stdout] 2026-07-09T10:52:39.563278Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-07-09T10:52:39.563291Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=50 current_state=Connecting target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.563301Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=951159906 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 951159906, source_cid: 52402838 } } [INFO] [stdout] 2026-07-09T10:52:39.563311Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=50 from="Connecting" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.563322Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 951159906, source_cid: 52402838 } } [INFO] [stdout] 2026-07-09T10:52:39.563330Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=50 peer_cid=150 [INFO] [stdout] 2026-07-09T10:52:39.563338Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=951159906 peer_cid=52402838 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.563348Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=50 frame=Push { header: ShortHeader { command: Push, connection_id: 50, payload_length: 4, recv_window_size: 256, timestamp: 1, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.563370Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 50, payload_length: 4, recv_window_size: 256, timestamp: 1, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-07-09T10:52:39.563382Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=4 [INFO] [stdout] 2026-07-09T10:52:39.563389Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=50 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-07-09T10:52:39.563401Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=4 [INFO] [stdout] 2026-07-09T10:52:39.563407Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=50 seq=0 payload_len=4 [INFO] [stdout] 2026-07-09T10:52:39.563435Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-07-09T10:52:39.563433Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=50 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 150, payload_length: 8, recv_window_size: 255, timestamp: 56, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.563447Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=951159906 current_state=Connecting target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.563476Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=50 [INFO] [stdout] 2026-07-09T10:52:39.563476Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=951159906 from="Connecting" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.563492Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=50 count=1 [INFO] [stdout] 2026-07-09T10:52:39.563493Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=951159906 peer_cid=52402838 [INFO] [stdout] 2026-07-09T10:52:39.563511Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=951159906 frame=Push { header: ShortHeader { command: Push, connection_id: 951159906, payload_length: 4, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"ack2" } [INFO] [stdout] 2026-07-09T10:52:39.563519Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=50 state=Established [INFO] [stdout] 2026-07-09T10:52:39.563532Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 951159906, payload_length: 4, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"ack2" } [INFO] [stdout] 2026-07-09T10:52:39.563549Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=951159906 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-07-09T10:52:39.563564Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=951159906 seq=0 payload_len=4 [INFO] [stdout] 2026-07-09T10:52:39.563656Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=47 [INFO] [stdout] 2026-07-09T10:52:39.563684Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.563697Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.563709Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-07-09T10:52:39.563719Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-07-09T10:52:39.563730Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-07-09T10:52:39.563741Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-07-09T10:52:39.560867Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=49 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 149, payload_length: 1200, recv_window_size: 256, timestamp: 53, sequence_number: 4, recv_next_sequence: 1 }, payload: b"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" } [INFO] [stdout] 2026-07-09T10:52:39.563752Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-07-09T10:52:39.563761Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-07-09T10:52:39.563772Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-07-09T10:52:39.562855Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=3853114792 recv_next_seq=0 recv_window=254 payload_len=8 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.559015Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=101 remote_addr=127.0.0.1:9000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 247, timestamp: 119, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.563900Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Closing state cid=3853114792 [INFO] [stdout] 2026-07-09T10:52:39.563925Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=3853114792 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=254 [INFO] [stdout] 2026-07-09T10:52:39.563927Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=101 [INFO] [stdout] 2026-07-09T10:52:39.563950Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=101 count=9 [INFO] [stdout] 2026-07-09T10:52:39.563971Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.563980Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=101 state=Established [INFO] [stdout] 2026-07-09T10:52:39.563992Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Packet acknowledged by SACK seq=1 [INFO] [stdout] 2026-07-09T10:52:39.564005Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=1 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.564023Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=7 srtt_ms=7 rttvar_ms=3 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.564040Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.564052Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.564070Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3853114792 [INFO] [stdout] 2026-07-09T10:52:39.564150Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=2 [INFO] [stdout] 2026-07-09T10:52:39.564169Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Added packet to simple retransmission tracking seq=2 max_retries=5 retry_interval_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.564190Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=3853114792 remote_addr=127.0.0.1:37233 frame_count=1 first_frame=Fin { header: ShortHeader { command: Fin, connection_id: 0, payload_length: 0, recv_window_size: 256, timestamp: 13, sequence_number: 2, recv_next_sequence: 0 } } [INFO] [stdout] 2026-07-09T10:52:39.564227Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3853114792 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.564268Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:37233 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.564340Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=121 [INFO] [stdout] 2026-07-09T10:52:39.564353Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:37233 frame_count=1 bytes=21 [INFO] [stdout] 2026-07-09T10:52:39.564367Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=121 state=Established [INFO] [stdout] 2026-07-09T10:52:39.563589Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=951159906 remote_addr=127.0.0.1:48784 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 52402838, payload_length: 8, recv_window_size: 255, timestamp: 12, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.564490Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=951159906 [INFO] [stdout] 2026-07-09T10:52:39.564510Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=951159906 count=1 [INFO] [stdout] 2026-07-09T10:52:39.564539Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=951159906 state=Established [INFO] [stdout] 2026-07-09T10:52:39.564579Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:48784 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.564618Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:48784 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.564714Z  INFO kestrel_protocol::core::tests::state: Received server ack for second connection [INFO] [stdout] 2026-07-09T10:52:39.564737Z  INFO kestrel_protocol::core::tests::state: Data sent on second connection. [INFO] [stdout] 2026-07-09T10:52:39.564774Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:46988 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.564825Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=145 [INFO] [stdout] 2026-07-09T10:52:39.564836Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=951159906 [INFO] [stdout] 2026-07-09T10:52:39.564854Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=145 state=Established [INFO] [stdout] test socket::tests::test_actor_with_true_concurrent_handlers ... ok [INFO] [stdout] 2026-07-09T10:52:39.564915Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=118 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 18 } } [INFO] [stdout] 2026-07-09T10:52:39.564942Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 18 } } [INFO] [stdout] 2026-07-09T10:52:39.564965Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=118 peer_cid=18 state=Established [INFO] [stdout] 2026-07-09T10:52:39.564981Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=118 state=Established [INFO] [stdout] test socket::tests::test_socket_local_addr ... ok [INFO] [stdout] 2026-07-09T10:52:39.564997Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=118 frame=Ack { header: ShortHeader { command: Ack, connection_id: 118, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.565020Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 118, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] test core::endpoint::timing::tests::test_global_timer_integration ... ok [INFO] [stdout] 2026-07-09T10:52:39.565040Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=118 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.565060Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=118 [INFO] [stdout] 2026-07-09T10:52:39.565075Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=118 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.559042Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:47418 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.565104Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.565104Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.565119Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.565137Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=115 srtt_ms=115 rttvar_ms=57 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.565154Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.565166Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.565569Z TRACE mio::poll: registering event source with poller: token=Token(136414066954624), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.565444Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=118 frame=Push { header: ShortHeader { command: Push, connection_id: 118, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11" } [INFO] [stdout] 2026-07-09T10:52:39.565759Z TRACE mio::poll: registering event source with poller: token=Token(136414066909184), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.565734Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 118, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11" } [INFO] [stdout] 2026-07-09T10:52:39.566021Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=118 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.566028Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-07-09T10:52:39.566046Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=118 seq=0 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.566069Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-07-09T10:52:39.566078Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=118 remote_addr=127.0.0.1:9017 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 18, payload_length: 8, recv_window_size: 255, timestamp: 117, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.566099Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-07-09T10:52:39.566113Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-07-09T10:52:39.566161Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:33087 frame_count=1 bytes=27 [INFO] [stdout] 2026-07-09T10:52:39.566323Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:53709 frame_count=1 bytes=27 [INFO] [stdout] 2026-07-09T10:52:39.566119Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=118 frame=Push { header: ShortHeader { command: Push, connection_id: 118, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11" } [INFO] [stdout] 2026-07-09T10:52:39.566388Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 118, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11" } [INFO] [stdout] 2026-07-09T10:52:39.566665Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=118 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.566687Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=118 seq=1 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.566716Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=118 remote_addr=127.0.0.1:9017 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 18, payload_length: 8, recv_window_size: 254, timestamp: 118, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.559117Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=142339372 [INFO] [stdout] 2026-07-09T10:52:39.556223Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:4001 [INFO] [stdout] 2026-07-09T10:52:39.563768Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=49 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 149, payload_length: 1200, recv_window_size: 256, timestamp: 53, sequence_number: 5, recv_next_sequence: 1 }, payload: b"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" } [INFO] [stdout] 2026-07-09T10:52:39.565179Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.565234Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:59314 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.567058Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3096612428 [INFO] [stdout] 2026-07-09T10:52:39.566968Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=49 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 149, payload_length: 1200, recv_window_size: 256, timestamp: 53, sequence_number: 6, recv_next_sequence: 1 }, payload: b"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" } [INFO] [stdout] 2026-07-09T10:52:39.567075Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-07-09T10:52:39.567085Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-07-09T10:52:39.567105Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=3096612428 remote_addr=127.0.0.1:59314 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 2276028173, payload_length: 14, recv_window_size: 256, timestamp: 78, sequence_number: 2, recv_next_sequence: 2 }, payload: b"goodbye_client" } [INFO] [stdout] 2026-07-09T10:52:39.567137Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3096612428 state=Established [INFO] [stdout] 2026-07-09T10:52:39.567140Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-07-09T10:52:39.567173Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:59314 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.567089Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=49 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 149, payload_length: 1200, recv_window_size: 256, timestamp: 53, sequence_number: 7, recv_next_sequence: 1 }, payload: b"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" } [INFO] [stdout] 2026-07-09T10:52:39.567205Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:59314 frame_count=1 bytes=35 [INFO] [stdout] 2026-07-09T10:52:39.567202Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=49 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 149, payload_length: 640, recv_window_size: 256, timestamp: 53, sequence_number: 8, recv_next_sequence: 1 }, payload: b"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" } [INFO] [stdout] 2026-07-09T10:52:39.567287Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=49 state=Established [INFO] [stdout] 2026-07-09T10:52:39.567289Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:39613 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.567330Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:39613 frame_count=1 bytes=35 [INFO] [stdout] 2026-07-09T10:52:39.567398Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2276028173 [INFO] [stdout] 2026-07-09T10:52:39.567422Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2276028173 state=Established [INFO] [stdout] test socket::tests::rebind::test_simple_rebind_new_connections ... ok [INFO] [stdout] 2026-07-09T10:52:39.567465Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:39613 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.567513Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:39613 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.567558Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2276028173 frame=Ack { header: ShortHeader { command: Ack, connection_id: 2276028173, payload_length: 8, recv_window_size: 255, timestamp: 78, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.567575Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=3507315025 [INFO] [stdout] 2026-07-09T10:52:39.567586Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 2276028173, payload_length: 8, recv_window_size: 255, timestamp: 78, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.567609Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=2276028173 recv_next_seq=1 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.567628Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2276028173 [INFO] [stdout] 2026-07-09T10:52:39.567626Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=3507315025 remote_addr=127.0.0.1:4001 [INFO] [stdout] 2026-07-09T10:52:39.567643Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=2276028173 recv_next_seq=1 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.566762Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=118 frame=Push { header: ShortHeader { command: Push, connection_id: 118, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11" } [INFO] [stdout] 2026-07-09T10:52:39.567677Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-07-09T10:52:39.567697Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.567697Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=1 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.567716Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=50 srtt_ms=50 rttvar_ms=18 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.567734Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.567728Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=3507315025 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.567745Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.567768Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2276028173 frame=Push { header: ShortHeader { command: Push, connection_id: 2276028173, payload_length: 14, recv_window_size: 256, timestamp: 78, sequence_number: 2, recv_next_sequence: 2 }, payload: b"goodbye_client" } [INFO] [stdout] 2026-07-09T10:52:39.567793Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=3507315025 addr=127.0.0.1:4001 [INFO] [stdout] 2026-07-09T10:52:39.567792Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2276028173, payload_length: 14, recv_window_size: 256, timestamp: 78, sequence_number: 2, recv_next_sequence: 2 }, payload: b"goodbye_client" } [INFO] [stdout] 2026-07-09T10:52:39.567813Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2276028173 seq=2 payload_len=14 state=Established [INFO] [stdout] 2026-07-09T10:52:39.567822Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=3507315025 addr=127.0.0.1:4001 [INFO] [stdout] 2026-07-09T10:52:39.567831Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2276028173 seq=2 payload_len=14 [INFO] [stdout] 2026-07-09T10:52:39.567853Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:4001 cid=3507315025 [INFO] [stdout] 2026-07-09T10:52:39.563786Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=47 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 147, payload_length: 1200, recv_window_size: 256, timestamp: 60, sequence_number: 0, recv_next_sequence: 1 }, payload: b"................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................" } [INFO] [stdout] 2026-07-09T10:52:39.567937Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:4001 cid=3507315025 [INFO] [stdout] 2026-07-09T10:52:39.567958Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3507315025 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.567975Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.565237Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:33971 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.567684Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 118, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11" } [INFO] [stdout] 2026-07-09T10:52:39.567919Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=47 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 147, payload_length: 1200, recv_window_size: 256, timestamp: 60, sequence_number: 1, recv_next_sequence: 1 }, payload: b"................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................" } [INFO] [stdout] 2026-07-09T10:52:39.568032Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=118 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.568055Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=118 seq=2 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.568074Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:33971 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.568082Z TRACE mio::poll: registering event source with poller: token=Token(136412187984768), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.568085Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=118 remote_addr=127.0.0.1:9017 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 18, payload_length: 8, recv_window_size: 253, timestamp: 119, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.568117Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2646873690 frame=Ack { header: ShortHeader { command: Ack, connection_id: 2646873690, payload_length: 8, recv_window_size: 254, timestamp: 1, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.568140Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 2646873690, payload_length: 8, recv_window_size: 254, timestamp: 1, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.568053Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=47 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 147, payload_length: 1200, recv_window_size: 256, timestamp: 60, sequence_number: 2, recv_next_sequence: 1 }, payload: b"................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................" } [INFO] [stdout] 2026-07-09T10:52:39.568162Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=2646873690 recv_next_seq=0 recv_window=254 payload_len=8 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.568182Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-07-09T10:52:39.568182Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Closing state cid=2646873690 [INFO] [stdout] 2026-07-09T10:52:39.568199Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-07-09T10:52:39.568198Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=2646873690 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=254 [INFO] [stdout] 2026-07-09T10:52:39.568228Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.568245Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Packet acknowledged by SACK seq=1 [INFO] [stdout] 2026-07-09T10:52:39.568171Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=47 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 147, payload_length: 1200, recv_window_size: 256, timestamp: 60, sequence_number: 3, recv_next_sequence: 1 }, payload: b"................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................" } [INFO] [stdout] 2026-07-09T10:52:39.568258Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=1 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.568278Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=11 srtt_ms=11 rttvar_ms=5 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.568295Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.568305Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.568321Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2646873690 [INFO] [stdout] 2026-07-09T10:52:39.568338Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=2 [INFO] [stdout] 2026-07-09T10:52:39.568352Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Added packet to simple retransmission tracking seq=2 max_retries=5 retry_interval_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.568124Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=118 frame=Push { header: ShortHeader { command: Push, connection_id: 118, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11" } [INFO] [stdout] 2026-07-09T10:52:39.568280Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=47 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 147, payload_length: 1200, recv_window_size: 256, timestamp: 60, sequence_number: 4, recv_next_sequence: 1 }, payload: b"................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................" } [INFO] [stdout] 2026-07-09T10:52:39.568368Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2646873690 remote_addr=127.0.0.1:33971 frame_count=1 first_frame=Fin { header: ShortHeader { command: Fin, connection_id: 0, payload_length: 0, recv_window_size: 256, timestamp: 20, sequence_number: 2, recv_next_sequence: 0 } } [INFO] [stdout] 2026-07-09T10:52:39.568398Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2646873690 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.568429Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:33971 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.568468Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:33971 frame_count=1 bytes=21 [INFO] [stdout] 2026-07-09T10:52:39.568386Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=47 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 147, payload_length: 1200, recv_window_size: 256, timestamp: 60, sequence_number: 5, recv_next_sequence: 1 }, payload: b"................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................" } [INFO] [stdout] 2026-07-09T10:52:39.568570Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:47418 frame_count=1 bytes=21 [INFO] [stdout] 2026-07-09T10:52:39.568502Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=47 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 147, payload_length: 1200, recv_window_size: 256, timestamp: 60, sequence_number: 6, recv_next_sequence: 1 }, payload: b"................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................" } [INFO] [stdout] 2026-07-09T10:52:39.568618Z DEBUG kestrel_protocol::socket::transport::manager: 传输管理器重绑定地址 | Transport manager rebinding address new_addr=127.0.0.1:0 [INFO] [stdout] 2026-07-09T10:52:39.568383Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 118, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11" } [INFO] [stdout] 2026-07-09T10:52:39.568660Z TRACE mio::poll: registering event source with poller: token=Token(136413530330240), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.568662Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=118 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.568683Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=118 seq=3 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.568620Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=47 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 147, payload_length: 1200, recv_window_size: 256, timestamp: 60, sequence_number: 7, recv_next_sequence: 1 }, payload: b"................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................" } [INFO] [stdout] 2026-07-09T10:52:39.568709Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=118 remote_addr=127.0.0.1:9017 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 18, payload_length: 8, recv_window_size: 252, timestamp: 120, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.568736Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=47 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 147, payload_length: 640, recv_window_size: 256, timestamp: 60, sequence_number: 8, recv_next_sequence: 1 }, payload: b"................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................" } [INFO] [stdout] 2026-07-09T10:52:39.568817Z DEBUG kestrel_protocol::socket::transport::manager: 传输管理器重绑定完成 | Transport manager rebind completed actual_addr=127.0.0.1:42028 [INFO] [stdout] 2026-07-09T10:52:39.568820Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=47 state=Established [INFO] [stdout] 2026-07-09T10:52:39.568854Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-07-09T10:52:39.568745Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=118 frame=Push { header: ShortHeader { command: Push, connection_id: 118, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11" } [INFO] [stdout] 2026-07-09T10:52:39.569319Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=3507315025 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-07-09T10:52:39.569352Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=3507315025 from="SynReceived" to="Established" [INFO] [stdout] 2026-07-09T10:52:39.569380Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-07-09T10:52:39.569402Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.569418Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=3507315025 packet_count=1 [INFO] [stdout] 2026-07-09T10:52:39.569438Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=3507315025 remote_addr=127.0.0.1:4001 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 500, source_cid: 3507315025 } } [INFO] [stdout] 2026-07-09T10:52:39.569275Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 118, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11" } [INFO] [stdout] 2026-07-09T10:52:39.565344Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.569612Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3507315025 [INFO] [stdout] 2026-07-09T10:52:39.569639Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3507315025 state=Established [INFO] [stdout] 2026-07-09T10:52:39.569683Z TRACE mio::poll: registering event source with poller: token=Token(136413798685440), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.569783Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=3507315025 [INFO] [stdout] 2026-07-09T10:52:39.569791Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-07-09T10:52:39.569825Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-07-09T10:52:39.569082Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=19 [INFO] [stdout] 2026-07-09T10:52:39.569899Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=118 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.569920Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=118 seq=4 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.569917Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=19 state=Established [INFO] [stdout] 2026-07-09T10:52:39.569945Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=118 remote_addr=127.0.0.1:9017 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 18, payload_length: 8, recv_window_size: 251, timestamp: 121, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.569971Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=21 [INFO] [stdout] 2026-07-09T10:52:39.569991Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=21 state=Established [INFO] [stdout] 2026-07-09T10:52:39.570023Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=120 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 20 } } [INFO] [stdout] 2026-07-09T10:52:39.569119Z TRACE mio::poll: registering event source with poller: token=Token(136413462953088), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.567855Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2276028173 remote_addr=127.0.0.1:39613 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 3096612428, payload_length: 8, recv_window_size: 255, timestamp: 164, sequence_number: 0, recv_next_sequence: 2 }, payload: b"\0\0\0\x02\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.570114Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2276028173 [INFO] [stdout] 2026-07-09T10:52:39.570134Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2276028173 count=1 [INFO] [stdout] 2026-07-09T10:52:39.570167Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2276028173 state=Established [INFO] [stdout] 2026-07-09T10:52:39.570199Z TRACE mio::poll: registering event source with poller: token=Token(136413462961280), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.569978Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=118 frame=Push { header: ShortHeader { command: Push, connection_id: 118, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11" } [INFO] [stdout] 2026-07-09T10:52:39.569179Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=126 slots_to_advance=12 max_advance=12 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.559071Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=104 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 4 } } [INFO] [stdout] 2026-07-09T10:52:39.564862Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.570253Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 4 } } [INFO] [stdout] 2026-07-09T10:52:39.570274Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=104 peer_cid=4 state=Established [INFO] [stdout] 2026-07-09T10:52:39.570262Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=951159906 remote_addr=127.0.0.1:48784 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 52402838, payload_length: 19, recv_window_size: 256, timestamp: 12, sequence_number: 0, recv_next_sequence: 1 }, payload: b"hello from client B" } [INFO] [stdout] 2026-07-09T10:52:39.570290Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=104 state=Established [INFO] [stdout] 2026-07-09T10:52:39.570046Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 20 } } [INFO] [stdout] 2026-07-09T10:52:39.570305Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=951159906 state=Established [INFO] [stdout] 2026-07-09T10:52:39.570306Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=104 frame=Ack { header: ShortHeader { command: Ack, connection_id: 104, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.570316Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=120 peer_cid=20 state=Established [INFO] [stdout] 2026-07-09T10:52:39.570327Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 104, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.570334Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=120 state=Established [INFO] [stdout] 2026-07-09T10:52:39.570346Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=104 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.570353Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:46988 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.570353Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=120 frame=Ack { header: ShortHeader { command: Ack, connection_id: 120, payload_length: 8, recv_window_size: 255, timestamp: 2, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.570366Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=104 [INFO] [stdout] 2026-07-09T10:52:39.570376Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 120, payload_length: 8, recv_window_size: 255, timestamp: 2, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.570382Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=104 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.570400Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:48784 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.570397Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=120 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.570416Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.570416Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=120 [INFO] [stdout] 2026-07-09T10:52:39.570432Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.570433Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=120 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.570433Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=52402838 frame=Ack { header: ShortHeader { command: Ack, connection_id: 52402838, payload_length: 8, recv_window_size: 255, timestamp: 12, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.570460Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=127 srtt_ms=127 rttvar_ms=63 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.570458Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 52402838, payload_length: 8, recv_window_size: 255, timestamp: 12, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.570477Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.570476Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.570488Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.570483Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=52402838 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.570494Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.570503Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=52402838 [INFO] [stdout] 2026-07-09T10:52:39.570512Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=118 srtt_ms=118 rttvar_ms=59 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.570515Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=52402838 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.570528Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.570539Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.570540Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.570554Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.570572Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=12 srtt_ms=12 rttvar_ms=6 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.570587Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.570597Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.570611Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=52402838 [INFO] [stdout] 2026-07-09T10:52:39.570628Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=52402838 state=Established [INFO] [stdout] 2026-07-09T10:52:39.570664Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:48784 frame_count=1 bytes=40 [INFO] [stdout] 2026-07-09T10:52:39.570765Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:46988 frame_count=1 bytes=40 [INFO] [stdout] 2026-07-09T10:52:39.570509Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=104 frame=Push { header: ShortHeader { command: Push, connection_id: 104, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03" } [INFO] [stdout] 2026-07-09T10:52:39.570557Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=120 frame=Push { header: ShortHeader { command: Push, connection_id: 120, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13" } [INFO] [stdout] 2026-07-09T10:52:39.570816Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=40 slots_to_advance=4 max_advance=4 current_slot=56 [INFO] [stdout] 2026-07-09T10:52:39.570208Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:39613 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.570940Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:39613 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.570896Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-07-09T10:52:39.571063Z  INFO kestrel_protocol::core::tests::state: [Client] Communication test completed successfully [INFO] [stdout] 2026-07-09T10:52:39.571097Z DEBUG kestrel_protocol::socket::transport::sender: Transport sender task is swapping to a new transport [INFO] [stdout] 2026-07-09T10:52:39.571110Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:59314 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.571140Z DEBUG kestrel_protocol::socket::transport::udp: Receiver task received shutdown signal [INFO] [stdout] 2026-07-09T10:52:39.570897Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 118, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11" } [INFO] [stdout] 2026-07-09T10:52:39.571153Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task has shut down [INFO] [stdout] 2026-07-09T10:52:39.571160Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:59314 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.571162Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=118 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.571181Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=118 seq=5 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.571186Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor has shut down [INFO] [stdout] 2026-07-09T10:52:39.571212Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=118 remote_addr=127.0.0.1:9017 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 18, payload_length: 8, recv_window_size: 250, timestamp: 122, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.571214Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=3096612428 frame=Ack { header: ShortHeader { command: Ack, connection_id: 3096612428, payload_length: 8, recv_window_size: 255, timestamp: 164, sequence_number: 0, recv_next_sequence: 2 }, payload: b"\0\0\0\x02\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.571249Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 3096612428, payload_length: 8, recv_window_size: 255, timestamp: 164, sequence_number: 0, recv_next_sequence: 2 }, payload: b"\0\0\0\x02\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.571279Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=3096612428 recv_next_seq=2 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.571299Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=3096612428 [INFO] [stdout] 2026-07-09T10:52:39.571313Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=3096612428 recv_next_seq=2 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.571341Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-07-09T10:52:39.571364Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=2 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] test socket::tests::test_transport_layer_integration ... 2026-07-09T10:52:39.571384Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=136 srtt_ms=29 rttvar_ms=34 rto_ms=500 [INFO] [stdout] ok [INFO] [stdout] 2026-07-09T10:52:39.571400Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.571413Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.571429Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3096612428 [INFO] [stdout] 2026-07-09T10:52:39.571447Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3096612428 state=Established [INFO] [stdout] 2026-07-09T10:52:39.571439Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=101 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.571246Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=118 frame=Push { header: ShortHeader { command: Push, connection_id: 118, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11" } [INFO] [stdout] 2026-07-09T10:52:39.571531Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-07-09T10:52:39.571575Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:43049 frame_count=1 bytes=28 [INFO] [stdout] test timer::event::lockfree_ring::tests::test_optimized_dispatcher ... ok [INFO] [stdout] 2026-07-09T10:52:39.571668Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-07-09T10:52:39.571698Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-07-09T10:52:39.571706Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] test timer::event::lockfree_ring::tests::test_ring_buffer_basic_operations ... ok2026-07-09T10:52:39.571716Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] [INFO] [stdout] 2026-07-09T10:52:39.571774Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] test timer::event::lockfree_ring::tests::test_ring_buffer_batch_operations ... ok [INFO] [stdout] 2026-07-09T10:52:39.571864Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:57399 frame_count=1 bytes=28 [INFO] [stdout] 2026-07-09T10:52:39.570802Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 104, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03" } [INFO] [stdout] 2026-07-09T10:52:39.571225Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] test timer::event::lockfree_ring::tests::test_ring_buffer_capacity_behavior ... 2026-07-09T10:52:39.572340Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=104 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.572078Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-07-09T10:52:39.572017Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:57399 frame_count=1 bytes=28 [INFO] [stdout] 2026-07-09T10:52:39.570858Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=40 slots_to_advance=4 max_advance=4 current_slot=56 [INFO] [stdout] 2026-07-09T10:52:39.572439Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:46988 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.572510Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=52402838 frame=Push { header: ShortHeader { command: Push, connection_id: 52402838, payload_length: 19, recv_window_size: 256, timestamp: 12, sequence_number: 0, recv_next_sequence: 1 }, payload: b"hello from client B" } [INFO] [stdout] 2026-07-09T10:52:39.572535Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:43049 frame_count=1 bytes=28 [INFO] [stdout] 2026-07-09T10:52:39.572541Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 52402838, payload_length: 19, recv_window_size: 256, timestamp: 12, sequence_number: 0, recv_next_sequence: 1 }, payload: b"hello from client B" } [INFO] [stdout] 2026-07-09T10:52:39.572546Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=104 seq=0 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.572563Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=52402838 seq=0 payload_len=19 state=Established [INFO] [stdout] 2026-07-09T10:52:39.572583Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=52402838 seq=0 payload_len=19 [INFO] [stdout] 2026-07-09T10:52:39.572584Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=104 remote_addr=127.0.0.1:9003 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 4, payload_length: 8, recv_window_size: 255, timestamp: 130, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.572613Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=52402838 remote_addr=127.0.0.1:46988 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 951159906, payload_length: 8, recv_window_size: 255, timestamp: 36, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.572655Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=52402838 [INFO] [stdout] 2026-07-09T10:52:39.572659Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor has shut down [INFO] [stdout] 2026-07-09T10:52:39.572673Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=52402838 count=1 [INFO] [stdout] 2026-07-09T10:52:39.572700Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=52402838 state=Established [INFO] [stdout] 2026-07-09T10:52:39.572706Z DEBUG kestrel_protocol::socket::transport::udp: Receiver task received shutdown signal [INFO] [stdout] 2026-07-09T10:52:39.572716Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task has shut down [INFO] [stdout] 2026-07-09T10:52:39.572736Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:46988 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.572748Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-07-09T10:52:39.572779Z  INFO kestrel_protocol::core::tests::state: Second connection on server verified. [INFO] [stdout] 2026-07-09T10:52:39.572798Z DEBUG kestrel_protocol::socket::transport::udp: Receiver task received shutdown signal [INFO] [stdout] 2026-07-09T10:52:39.572809Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task has shut down [INFO] [stdout] 2026-07-09T10:52:39.572831Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor has shut down [INFO] [stdout] 2026-07-09T10:52:39.572825Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:46988 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.572858Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-07-09T10:52:39.571526Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 118, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11" } [INFO] [stdout] 2026-07-09T10:52:39.572628Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=104 frame=Push { header: ShortHeader { command: Push, connection_id: 104, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03" } [INFO] [stdout] 2026-07-09T10:52:39.570835Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 120, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13" } [INFO] [stdout] 2026-07-09T10:52:39.572154Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=102 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.572148Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=129 slots_to_advance=12 max_advance=12 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.573064Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=130 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.573125Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=129 slots_to_advance=12 max_advance=12 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.572960Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 104, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03" } [INFO] [stdout] 2026-07-09T10:52:39.573275Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=104 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.573296Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=104 seq=1 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.573324Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=104 remote_addr=127.0.0.1:9003 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 4, payload_length: 8, recv_window_size: 254, timestamp: 131, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.573330Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=101 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.573359Z TRACE mio::poll: registering event source with poller: token=Token(136413530048640), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.573383Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=129 slots_to_advance=12 max_advance=12 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.573418Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=130 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.573456Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=130 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.573500Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=129 slots_to_advance=12 max_advance=12 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.573552Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=143 [INFO] [stdout] 2026-07-09T10:52:39.573572Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.573572Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=143 state=Established [INFO] [stdout] 2026-07-09T10:52:39.573584Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-07-09T10:52:39.573595Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.573609Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=36 [INFO] [stdout] 2026-07-09T10:52:39.573609Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:43401) [INFO] [stdout] 2026-07-09T10:52:39.573626Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=36 state=Established [INFO] [stdout] 2026-07-09T10:52:39.573361Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=104 frame=Push { header: ShortHeader { command: Push, connection_id: 104, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03" } [INFO] [stdout] 2026-07-09T10:52:39.573663Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=142 [INFO] [stdout] 2026-07-09T10:52:39.573670Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-07-09T10:52:39.573686Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-07-09T10:52:39.573684Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=142 state=Established [INFO] [stdout] 2026-07-09T10:52:39.573726Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.573742Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=129 slots_to_advance=12 max_advance=12 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.573776Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=2455659004 [INFO] [stdout] 2026-07-09T10:52:39.573783Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=129 slots_to_advance=12 max_advance=12 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.573815Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2455659004 remote_addr=127.0.0.1:42028 [INFO] [stdout] 2026-07-09T10:52:39.573823Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=129 slots_to_advance=12 max_advance=12 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.572911Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=118 seq=6 payload_len=1200 state=Established [INFO] [stdout] ok [INFO] [stdout] 2026-07-09T10:52:39.573902Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=118 seq=6 payload_len=1200 [INFO] [stdout] test core::tests::state::test_transport_bidirectional_communication ... ok [INFO] [stdout] 2026-07-09T10:52:39.573935Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=118 remote_addr=127.0.0.1:9017 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 18, payload_length: 8, recv_window_size: 249, timestamp: 125, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] test socket::transport::udp::tests::test_local_addr_methods ... ok [INFO] [stdout] test socket::transport::udp::tests::test_send_and_recv_decoupled ... ok [INFO] [stdout] 2026-07-09T10:52:39.574031Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=102 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] test timer::event::memory_pool::tests::test_optimized_batch_processor ... ok [INFO] [stdout] 2026-07-09T10:52:39.574110Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=2167074086 [INFO] [stdout] 2026-07-09T10:52:39.574153Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2167074086 remote_addr=127.0.0.1:42028 [INFO] [stdout] 2026-07-09T10:52:39.573673Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 104, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03" } [INFO] [stdout] 2026-07-09T10:52:39.574221Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.574231Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=104 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.573985Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=118 frame=Push { header: ShortHeader { command: Push, connection_id: 118, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11" } [INFO] [stdout] 2026-07-09T10:52:39.574249Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=2455659004 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.574254Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=104 seq=2 payload_len=1200 [INFO] [stdout] test timer::event::pool::tests::test_pool_clone_ref ... ok [INFO] [stdout] 2026-07-09T10:52:39.574448Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=3 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.574483Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=3 entry_id=3 connection_id=2167074086 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.574263Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 118, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11" } [INFO] [stdout] 2026-07-09T10:52:39.574508Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=104 remote_addr=127.0.0.1:9003 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 4, payload_length: 8, recv_window_size: 253, timestamp: 132, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.574546Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.574544Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=118 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.574563Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=118 seq=7 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.574565Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=2455659004 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.574591Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=118 remote_addr=127.0.0.1:9017 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 18, payload_length: 8, recv_window_size: 248, timestamp: 126, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.574608Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=4 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.574630Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=4 entry_id=4 connection_id=2167074086 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.574678Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=2455659004 addr=127.0.0.1:42028 [INFO] [stdout] 2026-07-09T10:52:39.574717Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=2455659004 addr=127.0.0.1:42028 [INFO] [stdout] 2026-07-09T10:52:39.574759Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=2167074086 addr=127.0.0.1:42028 [INFO] [stdout] 2026-07-09T10:52:39.574627Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=118 frame=Push { header: ShortHeader { command: Push, connection_id: 118, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11" } [INFO] [stdout] 2026-07-09T10:52:39.574779Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=2167074086 addr=127.0.0.1:42028 [INFO] [stdout] 2026-07-09T10:52:39.574808Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for outbound connection addr=127.0.0.1:42028 cid=2455659004 [INFO] [stdout] 2026-07-09T10:52:39.574558Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=104 frame=Push { header: ShortHeader { command: Push, connection_id: 104, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03" } [INFO] [stdout] 2026-07-09T10:52:39.574831Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2455659004 remote_addr=127.0.0.1:42028 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 2455659004 } } [INFO] [stdout] 2026-07-09T10:52:39.574902Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2455659004 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.573866Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=129 slots_to_advance=12 max_advance=12 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.574951Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for outbound connection addr=127.0.0.1:42028 cid=2167074086 [INFO] [stdout] 2026-07-09T10:52:39.574952Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 255, timestamp: 69, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.574974Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2167074086 remote_addr=127.0.0.1:42028 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 2167074086 } } [INFO] [stdout] 2026-07-09T10:52:39.574985Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 255, timestamp: 69, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.575001Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2167074086 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.575009Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=2 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.575030Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2 [INFO] [stdout] 2026-07-09T10:52:39.575044Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:42028 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.575049Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=2 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.575071Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:42028 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.575098Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.575109Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:42028 frame_count=1 bytes=10 [INFO] [stdout] 2026-07-09T10:52:39.575119Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.575137Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:42028 frame_count=1 bytes=10 [INFO] [stdout] 2026-07-09T10:52:39.575140Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=132 srtt_ms=132 rttvar_ms=66 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.575157Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.575168Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.574895Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 104, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03" } [INFO] [stdout] 2026-07-09T10:52:39.575191Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 254, timestamp: 70, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.575193Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=104 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.575216Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=104 seq=3 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.575218Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 254, timestamp: 70, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.575240Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=2 recv_next_seq=0 recv_window=254 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.575244Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=104 remote_addr=127.0.0.1:9003 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 4, payload_length: 8, recv_window_size: 252, timestamp: 133, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.575259Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2 [INFO] [stdout] 2026-07-09T10:52:39.575273Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=2 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=254 [INFO] [stdout] 2026-07-09T10:52:39.575298Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-07-09T10:52:39.575314Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.575335Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=133 srtt_ms=132 rttvar_ms=49 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.575353Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.575364Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.575384Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 253, timestamp: 99, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.575392Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=597286251 [INFO] [stdout] 2026-07-09T10:52:39.575410Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 253, timestamp: 99, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.575431Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=2 recv_next_seq=0 recv_window=253 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.575451Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2 [INFO] [stdout] 2026-07-09T10:52:39.575465Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=2 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=253 [INFO] [stdout] 2026-07-09T10:52:39.575477Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-07-09T10:52:39.575491Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-07-09T10:52:39.575505Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.575526Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=133 srtt_ms=132 rttvar_ms=37 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.575545Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.575557Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.575280Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=104 frame=Push { header: ShortHeader { command: Push, connection_id: 104, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03" } [INFO] [stdout] 2026-07-09T10:52:39.575576Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 252, timestamp: 100, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.575601Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 252, timestamp: 100, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.575620Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=2 recv_next_seq=0 recv_window=252 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.575638Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2 [INFO] [stdout] 2026-07-09T10:52:39.575652Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=2 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=252 [INFO] [stdout] 2026-07-09T10:52:39.575677Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] 2026-07-09T10:52:39.575693Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-07-09T10:52:39.575691Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.575710Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=133 srtt_ms=132 rttvar_ms=28 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.575727Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.575737Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.575755Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 251, timestamp: 100, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.575780Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 251, timestamp: 100, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.575797Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-07-09T10:52:39.575799Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=2 recv_next_seq=0 recv_window=251 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.575817Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2 [INFO] [stdout] 2026-07-09T10:52:39.575831Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=2 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=251 [INFO] [stdout] 2026-07-09T10:52:39.575857Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-07-09T10:52:39.575596Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 104, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03" } [INFO] [stdout] 2026-07-09T10:52:39.576296Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.576316Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=133 srtt_ms=133 rttvar_ms=21 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.576332Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.576327Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=104 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.576342Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.576353Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=104 seq=4 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.576361Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 250, timestamp: 101, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.576385Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 250, timestamp: 101, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.576384Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=104 remote_addr=127.0.0.1:9003 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 4, payload_length: 8, recv_window_size: 251, timestamp: 134, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.576404Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=2 recv_next_seq=0 recv_window=250 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.576424Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2 [INFO] [stdout] 2026-07-09T10:52:39.576437Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=2 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=250 [INFO] [stdout] 2026-07-09T10:52:39.576464Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=5 [INFO] [stdout] 2026-07-09T10:52:39.576479Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.576497Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=134 srtt_ms=133 rttvar_ms=16 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.576513Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.576524Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=37 new_cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.576542Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 249, timestamp: 104, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.576562Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 249, timestamp: 104, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.576577Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=2 recv_next_seq=0 recv_window=249 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.576592Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2 [INFO] [stdout] 2026-07-09T10:52:39.576603Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=2 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=249 [INFO] [stdout] 2026-07-09T10:52:39.576624Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=6 [INFO] [stdout] 2026-07-09T10:52:39.576636Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.576654Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=134 srtt_ms=133 rttvar_ms=12 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.576671Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=39 [INFO] [stdout] 2026-07-09T10:52:39.576681Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=38 new_cwnd=39 [INFO] [stdout] 2026-07-09T10:52:39.576696Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 248, timestamp: 111, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.576424Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=104 frame=Push { header: ShortHeader { command: Push, connection_id: 104, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03" } [INFO] [stdout] 2026-07-09T10:52:39.576714Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 248, timestamp: 111, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.576733Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=2 recv_next_seq=0 recv_window=248 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.576749Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2 [INFO] [stdout] 2026-07-09T10:52:39.576760Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=2 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=248 [INFO] [stdout] 2026-07-09T10:52:39.576782Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=7 [INFO] [stdout] 2026-07-09T10:52:39.576794Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.576812Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=134 srtt_ms=133 rttvar_ms=9 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.576827Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=40 [INFO] [stdout] 2026-07-09T10:52:39.576837Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=39 new_cwnd=40 [INFO] [stdout] 2026-07-09T10:52:39.576852Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 247, timestamp: 114, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.576002Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:48784 frame_count=1 bytes=29 [INFO] [stdout] 2026-07-09T10:52:39.576040Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=120 seq=0 payload_len=1200 state=Established [INFO] [stdout] test socket::tests::rebind::test_rebind_impact_on_existing_connection_data ... 2026-07-09T10:52:39.574787Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 118, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11" } [INFO] [stdout] 2026-07-09T10:52:39.576893Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 247, timestamp: 114, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.576970Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=118 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-07-09T10:52:39.576980Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=2 recv_next_seq=0 recv_window=247 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.576979Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:48784 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.576990Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=118 seq=8 payload_len=640 [INFO] [stdout] 2026-07-09T10:52:39.576998Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2 [INFO] [stdout] 2026-07-09T10:52:39.577010Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=2 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=247 [INFO] [stdout] 2026-07-09T10:52:39.577018Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=118 remote_addr=127.0.0.1:9017 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 18, payload_length: 8, recv_window_size: 247, timestamp: 128, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.577044Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=8 [INFO] [stdout] 2026-07-09T10:52:39.577053Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=118 [INFO] [stdout] 2026-07-09T10:52:39.577045Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=951159906 frame=Ack { header: ShortHeader { command: Ack, connection_id: 951159906, payload_length: 8, recv_window_size: 255, timestamp: 36, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.577058Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.577074Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=118 count=9 [INFO] [stdout] 2026-07-09T10:52:39.577076Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=134 srtt_ms=133 rttvar_ms=7 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.577075Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 951159906, payload_length: 8, recv_window_size: 255, timestamp: 36, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.577092Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=41 [INFO] [stdout] 2026-07-09T10:52:39.577103Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=40 new_cwnd=41 [INFO] [stdout] 2026-07-09T10:52:39.577104Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=118 state=Established [INFO] [stdout] 2026-07-09T10:52:39.577100Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=951159906 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.577119Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.577122Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=951159906 [INFO] [stdout] 2026-07-09T10:52:39.577135Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.577137Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=951159906 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.577167Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.577181Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.577183Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.577193Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=17 [INFO] [stdout] 2026-07-09T10:52:39.577202Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.577202Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=124 srtt_ms=124 rttvar_ms=62 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.577211Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=17 state=Established [INFO] [stdout] 2026-07-09T10:52:39.577220Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.577231Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.577238Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=41 [INFO] [stdout] 2026-07-09T10:52:39.577241Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=147 [INFO] [stdout] 2026-07-09T10:52:39.577249Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=951159906 [INFO] [stdout] 2026-07-09T10:52:39.577255Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=147 state=Established [INFO] [stdout] 2026-07-09T10:52:39.577255Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=41 state=Established [INFO] [stdout] 2026-07-09T10:52:39.577269Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=951159906 state=Established [INFO] [stdout] 2026-07-09T10:52:39.577285Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=4 [INFO] [stdout] 2026-07-09T10:52:39.577286Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=46 [INFO] [stdout] 2026-07-09T10:52:39.577302Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4 state=Established [INFO] [stdout] 2026-07-09T10:52:39.577302Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=46 state=Established [INFO] [stdout] 2026-07-09T10:52:39.577334Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=18 [INFO] [stdout] 2026-07-09T10:52:39.577352Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=18 state=Established [INFO] [stdout] 2026-07-09T10:52:39.577359Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=131 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.577384Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=16 [INFO] [stdout] 2026-07-09T10:52:39.577402Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=16 state=Established [INFO] [stdout] 2026-07-09T10:52:39.577404Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=132 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.577430Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=119 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 19 } } [INFO] [stdout] 2026-07-09T10:52:39.577443Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=132 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.577452Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 19 } } [INFO] [stdout] 2026-07-09T10:52:39.577483Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=119 peer_cid=19 state=Established [INFO] [stdout] 2026-07-09T10:52:39.577481Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=131 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.577498Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=119 state=Established [INFO] [stdout] 2026-07-09T10:52:39.577516Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=1330556850 [INFO] [stdout] 2026-07-09T10:52:39.577518Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=119 frame=Ack { header: ShortHeader { command: Ack, connection_id: 119, payload_length: 8, recv_window_size: 255, timestamp: 1, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.576257Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2 [INFO] [stdout] 2026-07-09T10:52:39.577608Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-07-09T10:52:39.577673Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] ok [INFO] [stdout] test timer::event::pool::tests::test_batch_operations ... ok [INFO] [stdout] 2026-07-09T10:52:39.577777Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=951159906 [INFO] [stdout] test core::tests::shutdown::test_retransmission_after_fin_is_ignored ... ok [INFO] [stdout] 2026-07-09T10:52:39.577825Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=52402838 [INFO] [stdout] 2026-07-09T10:52:39.576729Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 104, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03" } [INFO] [stdout] 2026-07-09T10:52:39.578189Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=104 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.578214Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=104 seq=5 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.578244Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=104 remote_addr=127.0.0.1:9003 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 4, payload_length: 8, recv_window_size: 250, timestamp: 136, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.577519Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=131 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.578562Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3 [INFO] [stdout] 2026-07-09T10:52:39.578283Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=104 frame=Push { header: ShortHeader { command: Push, connection_id: 104, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03" } [INFO] [stdout] 2026-07-09T10:52:39.578590Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3 state=Established [INFO] [stdout] 2026-07-09T10:52:39.578639Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=5 [INFO] [stdout] 2026-07-09T10:52:39.578660Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=5 state=Established [INFO] [stdout] 2026-07-09T10:52:39.578697Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=144 [INFO] [stdout] 2026-07-09T10:52:39.578715Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=144 state=Established [INFO] [stdout] 2026-07-09T10:52:39.578751Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=131 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.578792Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=132 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.578832Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=132 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.576940Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=120 seq=0 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.578890Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=132 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.578923Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=120 remote_addr=127.0.0.1:9019 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 20, payload_length: 8, recv_window_size: 255, timestamp: 128, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.578937Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=132 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.578599Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 104, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03" } [INFO] [stdout] 2026-07-09T10:52:39.578976Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=131 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] test core::tests::state::test_address_reuse_after_connection_close ... ok2026-07-09T10:52:39.579904Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=104 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.579045Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 119, payload_length: 8, recv_window_size: 255, timestamp: 1, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.579937Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=104 seq=6 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.579948Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=119 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.579972Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=119 [INFO] [stdout] 2026-07-09T10:52:39.579970Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=104 remote_addr=127.0.0.1:9003 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 4, payload_length: 8, recv_window_size: 249, timestamp: 138, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.579989Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=119 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.580022Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.580038Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.580057Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=128 srtt_ms=128 rttvar_ms=64 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.580073Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.580084Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.580011Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=104 frame=Push { header: ShortHeader { command: Push, connection_id: 104, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03" } [INFO] [stdout] 2026-07-09T10:52:39.579384Z DEBUG kestrel_protocol::socket::transport::udp: Receiver task received shutdown signal [INFO] [stdout] 2026-07-09T10:52:39.580428Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task has shut down [INFO] [stdout] 2026-07-09T10:52:39.580572Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-07-09T10:52:39.580311Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 104, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03" } [INFO] [stdout] 2026-07-09T10:52:39.580622Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=104 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.580645Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=104 seq=7 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.580672Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=104 remote_addr=127.0.0.1:9003 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 4, payload_length: 8, recv_window_size: 248, timestamp: 138, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] [INFO] [stdout] test timer::event::pool::tests::test_pool_with_capacity ... ok [INFO] [stdout] test timer::event::pool::tests::test_timer_event_pool_basic_operations ... ok [INFO] [stdout] test timer::event::traits::tests::test_batch_creation_copy_type ... ok [INFO] [stdout] test timer::event::traits::tests::test_batch_creation_clone_type ... ok [INFO] [stdout] 2026-07-09T10:52:39.580709Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=104 frame=Push { header: ShortHeader { command: Push, connection_id: 104, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03" } [INFO] [stdout] test timer::event::traits::tests::test_clone_type_strategy_selection ... ok [INFO] [stdout] test socket::transport::udp::tests::test_shutdown_stops_receiver ... ok [INFO] [stdout] test timer::event::traits::tests::test_copy_type_strategy_selection ... ok [INFO] [stdout] 2026-07-09T10:52:39.578978Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=120 frame=Push { header: ShortHeader { command: Push, connection_id: 120, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13" } [INFO] [stdout] 2026-07-09T10:52:39.580963Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 104, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03" } [INFO] [stdout] 2026-07-09T10:52:39.581153Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=133 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.581158Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=104 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-07-09T10:52:39.581177Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=104 seq=8 payload_len=640 [INFO] [stdout] 2026-07-09T10:52:39.581189Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=132 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.581203Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=104 remote_addr=127.0.0.1:9003 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 4, payload_length: 8, recv_window_size: 247, timestamp: 139, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.581219Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=133 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.581238Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=104 [INFO] [stdout] 2026-07-09T10:52:39.581251Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=133 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.581259Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=104 count=9 [INFO] [stdout] 2026-07-09T10:52:39.581281Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=132 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.581290Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=104 state=Established [INFO] [stdout] 2026-07-09T10:52:39.581313Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=132 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.581345Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=131 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.581108Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 120, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13" } [INFO] [stdout] 2026-07-09T10:52:39.581375Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=132 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.581394Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=120 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.581414Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=120 seq=1 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.581424Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=43 [INFO] [stdout] 2026-07-09T10:52:39.581418Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=105 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 5 } } [INFO] [stdout] 2026-07-09T10:52:39.581443Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=43 state=Established [INFO] [stdout] 2026-07-09T10:52:39.581440Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=120 remote_addr=127.0.0.1:9019 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 20, payload_length: 8, recv_window_size: 254, timestamp: 131, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.581445Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 5 } } [INFO] [stdout] 2026-07-09T10:52:39.581475Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=105 peer_cid=5 state=Established [INFO] [stdout] 2026-07-09T10:52:39.581486Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=130 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.581489Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=105 state=Established [INFO] [stdout] 2026-07-09T10:52:39.581510Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=105 frame=Ack { header: ShortHeader { command: Ack, connection_id: 105, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.581524Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=131 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.581531Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 105, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.581551Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=105 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.581556Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=130 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.581570Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=105 [INFO] [stdout] 2026-07-09T10:52:39.581583Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=105 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.581593Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=42 [INFO] [stdout] 2026-07-09T10:52:39.581609Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=42 state=Established [INFO] [stdout] 2026-07-09T10:52:39.581612Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.581628Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.581636Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=7 [INFO] [stdout] 2026-07-09T10:52:39.581651Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=7 state=Established [INFO] [stdout] 2026-07-09T10:52:39.581648Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=138 srtt_ms=138 rttvar_ms=69 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.581666Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.581676Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=6 [INFO] [stdout] 2026-07-09T10:52:39.581677Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.581690Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=6 state=Established [INFO] [stdout] 2026-07-09T10:52:39.581714Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=8 [INFO] [stdout] 2026-07-09T10:52:39.581728Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.581477Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=120 frame=Push { header: ShortHeader { command: Push, connection_id: 120, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13" } [INFO] [stdout] 2026-07-09T10:52:39.581755Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=130 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.580105Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=119 frame=Push { header: ShortHeader { command: Push, connection_id: 119, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12" } [INFO] [stdout] test timer::event::traits::tests::test_pool_usage_clone_type ... 2026-07-09T10:52:39.581763Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 120, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13" } [INFO] [stdout] ok [INFO] [stdout] 2026-07-09T10:52:39.582147Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=120 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.582157Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=130 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.582170Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=120 seq=2 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.581693Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=105 frame=Push { header: ShortHeader { command: Push, connection_id: 105, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04" } [INFO] [stdout] 2026-07-09T10:52:39.582195Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.582199Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=120 remote_addr=127.0.0.1:9019 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 20, payload_length: 8, recv_window_size: 253, timestamp: 131, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.582219Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=9 [INFO] [stdout] 2026-07-09T10:52:39.582243Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=9 state=Established [INFO] [stdout] 2026-07-09T10:52:39.582284Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=10 [INFO] [stdout] 2026-07-09T10:52:39.582304Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=10 state=Established [INFO] [stdout] 2026-07-09T10:52:39.582338Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=12 [INFO] [stdout] 2026-07-09T10:52:39.582355Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=12 state=Established [INFO] [stdout] 2026-07-09T10:52:39.582389Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=11 [INFO] [stdout] 2026-07-09T10:52:39.582408Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=11 state=Established [INFO] [stdout] 2026-07-09T10:52:39.582442Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=146 [INFO] [stdout] 2026-07-09T10:52:39.582472Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=146 state=Established [INFO] [stdout] 2026-07-09T10:52:39.582237Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=120 frame=Push { header: ShortHeader { command: Push, connection_id: 120, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13" } [INFO] [stdout] 2026-07-09T10:52:39.582511Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=13 [INFO] [stdout] 2026-07-09T10:52:39.582532Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=13 state=Established [INFO] [stdout] 2026-07-09T10:52:39.582566Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=14 [INFO] [stdout] 2026-07-09T10:52:39.582584Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=14 state=Established [INFO] [stdout] 2026-07-09T10:52:39.582224Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 105, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04" } [INFO] [stdout] 2026-07-09T10:52:39.582620Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=105 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.582904Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=105 seq=0 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.582931Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=105 remote_addr=127.0.0.1:9004 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 5, payload_length: 8, recv_window_size: 255, timestamp: 140, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.582967Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=105 frame=Push { header: ShortHeader { command: Push, connection_id: 105, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04" } [INFO] [stdout] 2026-07-09T10:52:39.583271Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 105, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04" } [INFO] [stdout] 2026-07-09T10:52:39.583598Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=105 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.583621Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=105 seq=1 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.583651Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=105 remote_addr=127.0.0.1:9004 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 5, payload_length: 8, recv_window_size: 254, timestamp: 141, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.582646Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 119, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12" } [INFO] [stdout] 2026-07-09T10:52:39.583973Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=119 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.583995Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=119 seq=0 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.584025Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=119 remote_addr=127.0.0.1:9018 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 19, payload_length: 8, recv_window_size: 255, timestamp: 134, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.584074Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=119 frame=Push { header: ShortHeader { command: Push, connection_id: 119, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12" } [INFO] [stdout] 2026-07-09T10:52:39.584378Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 119, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12" } [INFO] [stdout] 2026-07-09T10:52:39.584671Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=119 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.584691Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=119 seq=1 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.584716Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=119 remote_addr=127.0.0.1:9018 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 19, payload_length: 8, recv_window_size: 254, timestamp: 135, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.582659Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=107 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.585063Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=115 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 15 } } [INFO] [stdout] 2026-07-09T10:52:39.585112Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 15 } } [INFO] [stdout] test timer::event::traits::tests::test_strategy_traits_copy ... ok [INFO] [stdout] 2026-07-09T10:52:39.585136Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=115 peer_cid=15 state=Established [INFO] [stdout] 2026-07-09T10:52:39.585153Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=115 state=Established [INFO] [stdout] 2026-07-09T10:52:39.585173Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=115 frame=Ack { header: ShortHeader { command: Ack, connection_id: 115, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] test timer::event::traits::tests::test_pool_usage_copy_type ... ok [INFO] [stdout] 2026-07-09T10:52:39.585198Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 115, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_event_factory_batch_creation ... ok [INFO] [stdout] 2026-07-09T10:52:39.585221Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=115 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.585243Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=115 [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_complete_zero_copy_workflow ... ok [INFO] [stdout] 2026-07-09T10:52:39.585261Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=115 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_event_factory_copy_strategy ... ok [INFO] [stdout] 2026-07-09T10:52:39.585302Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_event_factory_performance ... ok [INFO] [stdout] 2026-07-09T10:52:39.585322Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.585345Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=137 srtt_ms=137 rttvar_ms=68 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.585364Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.585376Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_fast_event_slot_write_multiple ... ok [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_fast_event_slot_creation ... ok [INFO] [stdout] 2026-07-09T10:52:39.585406Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=115 frame=Push { header: ShortHeader { command: Push, connection_id: 115, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e" } [INFO] [stdout] 2026-07-09T10:52:39.582515Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 120, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13" } [INFO] [stdout] 2026-07-09T10:52:39.585839Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=120 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.585860Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=120 seq=3 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.585920Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=120 remote_addr=127.0.0.1:9019 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 20, payload_length: 8, recv_window_size: 252, timestamp: 135, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.585822Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 115, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e" } [INFO] [stdout] 2026-07-09T10:52:39.586146Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=115 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.586164Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=115 seq=0 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.586185Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=115 remote_addr=127.0.0.1:9014 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 15, payload_length: 8, recv_window_size: 255, timestamp: 139, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.585965Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=120 frame=Push { header: ShortHeader { command: Push, connection_id: 120, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13" } [INFO] [stdout] 2026-07-09T10:52:39.586241Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 120, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13" } [INFO] [stdout] 2026-07-09T10:52:39.586217Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=115 frame=Push { header: ShortHeader { command: Push, connection_id: 115, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e" } [INFO] [stdout] 2026-07-09T10:52:39.586516Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=120 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.586534Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=120 seq=4 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.586554Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=120 remote_addr=127.0.0.1:9019 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 20, payload_length: 8, recv_window_size: 251, timestamp: 136, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.586528Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 115, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e" } [INFO] [stdout] 2026-07-09T10:52:39.586834Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=115 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.586586Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=120 frame=Push { header: ShortHeader { command: Push, connection_id: 120, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13" } [INFO] [stdout] 2026-07-09T10:52:39.586851Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=115 seq=1 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.583698Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=105 frame=Push { header: ShortHeader { command: Push, connection_id: 105, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04" } [INFO] [stdout] 2026-07-09T10:52:39.586859Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 120, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13" } [INFO] [stdout] 2026-07-09T10:52:39.587151Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=120 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.587170Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=120 seq=5 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.587192Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=120 remote_addr=127.0.0.1:9019 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 20, payload_length: 8, recv_window_size: 250, timestamp: 136, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.587104Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 105, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04" } [INFO] [stdout] 2026-07-09T10:52:39.587410Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=105 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.587427Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=105 seq=2 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.587448Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=105 remote_addr=127.0.0.1:9004 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 5, payload_length: 8, recv_window_size: 253, timestamp: 145, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.587222Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=120 frame=Push { header: ShortHeader { command: Push, connection_id: 120, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13" } [INFO] [stdout] 2026-07-09T10:52:39.587569Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:33087 frame_count=1 bytes=27 [INFO] [stdout] 2026-07-09T10:52:39.587493Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 120, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13" } [INFO] [stdout] 2026-07-09T10:52:39.587742Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:53709 frame_count=1 bytes=27 [INFO] [stdout] 2026-07-09T10:52:39.587763Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=120 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.587485Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=105 frame=Push { header: ShortHeader { command: Push, connection_id: 105, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04" } [INFO] [stdout] 2026-07-09T10:52:39.587778Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=120 seq=6 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.587800Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=120 remote_addr=127.0.0.1:9019 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 20, payload_length: 8, recv_window_size: 249, timestamp: 137, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.584751Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=119 frame=Push { header: ShortHeader { command: Push, connection_id: 119, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12" } [INFO] [stdout] 2026-07-09T10:52:39.588047Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 119, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12" } [INFO] [stdout] 2026-07-09T10:52:39.588363Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=119 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.588383Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=119 seq=2 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.588409Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=119 remote_addr=127.0.0.1:9018 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 19, payload_length: 8, recv_window_size: 253, timestamp: 139, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.587825Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=120 frame=Push { header: ShortHeader { command: Push, connection_id: 120, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13" } [INFO] [stdout] 2026-07-09T10:52:39.588442Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 120, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13" } [INFO] [stdout] 2026-07-09T10:52:39.591517Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=120 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.591569Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=120 seq=7 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.591618Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=120 remote_addr=127.0.0.1:9019 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 20, payload_length: 8, recv_window_size: 248, timestamp: 141, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.591678Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=120 frame=Push { header: ShortHeader { command: Push, connection_id: 120, payload_length: 640, recv_window_size: 256, timestamp: 2, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13" } [INFO] [stdout] 2026-07-09T10:52:39.588443Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=119 frame=Push { header: ShortHeader { command: Push, connection_id: 119, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12" } [INFO] [stdout] 2026-07-09T10:52:39.591914Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 119, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12" } [INFO] [stdout] 2026-07-09T10:52:39.592207Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=119 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.592232Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=119 seq=3 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.592265Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=119 remote_addr=127.0.0.1:9018 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 19, payload_length: 8, recv_window_size: 252, timestamp: 143, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.592311Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=119 frame=Push { header: ShortHeader { command: Push, connection_id: 119, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12" } [INFO] [stdout] 2026-07-09T10:52:39.592581Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 119, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12" } [INFO] [stdout] 2026-07-09T10:52:39.592843Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=119 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.591842Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 120, payload_length: 640, recv_window_size: 256, timestamp: 2, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13\x13" } [INFO] [stdout] 2026-07-09T10:52:39.593036Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=120 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-07-09T10:52:39.593058Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=120 seq=8 payload_len=640 [INFO] [stdout] 2026-07-09T10:52:39.593092Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=120 remote_addr=127.0.0.1:9019 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 20, payload_length: 8, recv_window_size: 247, timestamp: 142, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.593142Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=120 [INFO] [stdout] 2026-07-09T10:52:39.593170Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=120 count=9 [INFO] [stdout] 2026-07-09T10:52:39.593222Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=120 state=Established [INFO] [stdout] 2026-07-09T10:52:39.593387Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=135 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.593449Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=135 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.593481Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.593504Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.593548Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=134 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.593601Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=138 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.593651Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=138 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.593710Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=148 [INFO] [stdout] 2026-07-09T10:52:39.593733Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=148 state=Established [INFO] [stdout] 2026-07-09T10:52:39.593773Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=137 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.593817Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=137 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.593837Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.593865Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.588899Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=115 remote_addr=127.0.0.1:9014 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 15, payload_length: 8, recv_window_size: 254, timestamp: 140, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.593994Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=115 frame=Push { header: ShortHeader { command: Push, connection_id: 115, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e" } [INFO] [stdout] 2026-07-09T10:52:39.594305Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 115, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e" } [INFO] [stdout] 2026-07-09T10:52:39.594616Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=115 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.594637Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=115 seq=2 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.594667Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=115 remote_addr=127.0.0.1:9014 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 15, payload_length: 8, recv_window_size: 253, timestamp: 147, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.594705Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=115 frame=Push { header: ShortHeader { command: Push, connection_id: 115, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e" } [INFO] [stdout] 2026-07-09T10:52:39.595080Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.595109Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.595044Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 115, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e" } [INFO] [stdout] 2026-07-09T10:52:39.595354Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=115 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.595375Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=115 seq=3 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.595402Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=115 remote_addr=127.0.0.1:9014 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 15, payload_length: 8, recv_window_size: 252, timestamp: 148, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.595445Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=115 frame=Push { header: ShortHeader { command: Push, connection_id: 115, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e" } [INFO] [stdout] 2026-07-09T10:52:39.592864Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=119 seq=4 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.595924Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=119 remote_addr=127.0.0.1:9018 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 19, payload_length: 8, recv_window_size: 251, timestamp: 146, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.595977Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=119 frame=Push { header: ShortHeader { command: Push, connection_id: 119, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12" } [INFO] [stdout] 2026-07-09T10:52:39.596261Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 119, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12" } [INFO] [stdout] 2026-07-09T10:52:39.596527Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=119 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.596551Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=119 seq=5 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.596586Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=119 remote_addr=127.0.0.1:9018 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 19, payload_length: 8, recv_window_size: 250, timestamp: 147, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.593861Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=137 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.596983Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=140 slots_to_advance=14 max_advance=14 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.597063Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=45 [INFO] [stdout] 2026-07-09T10:52:39.597095Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=45 state=Established [INFO] [stdout] 2026-07-09T10:52:39.597141Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=149 [INFO] [stdout] 2026-07-09T10:52:39.597167Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=149 state=Established [INFO] [stdout] 2026-07-09T10:52:39.597269Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=102 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.597434Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=114 slots_to_advance=11 max_advance=11 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.597491Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=114 slots_to_advance=11 max_advance=11 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.597542Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=112 slots_to_advance=11 max_advance=11 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.597594Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=109 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.597638Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=107 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.597688Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=107 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.597736Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=106 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.597776Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=107 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.597830Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=22 [INFO] [stdout] 2026-07-09T10:52:39.587786Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 105, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04" } [INFO] [stdout] 2026-07-09T10:52:39.597900Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=105 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.597927Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=105 seq=3 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.597970Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=105 remote_addr=127.0.0.1:9004 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 5, payload_length: 8, recv_window_size: 252, timestamp: 155, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.598023Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=105 frame=Push { header: ShortHeader { command: Push, connection_id: 105, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04" } [INFO] [stdout] 2026-07-09T10:52:39.598328Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 105, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04" } [INFO] [stdout] 2026-07-09T10:52:39.598637Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=105 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.598656Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=105 seq=4 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.598682Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=105 remote_addr=127.0.0.1:9004 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 5, payload_length: 8, recv_window_size: 251, timestamp: 156, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.598857Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1854190210 [INFO] [stdout] 2026-07-09T10:52:39.598911Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1854190210 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.598718Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=105 frame=Push { header: ShortHeader { command: Push, connection_id: 105, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04" } [INFO] [stdout] 2026-07-09T10:52:39.599050Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 105, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04" } [INFO] [stdout] 2026-07-09T10:52:39.599342Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=105 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.599362Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=105 seq=5 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.599390Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=105 remote_addr=127.0.0.1:9004 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 5, payload_length: 8, recv_window_size: 250, timestamp: 157, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.599427Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=105 frame=Push { header: ShortHeader { command: Push, connection_id: 105, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04" } [INFO] [stdout] 2026-07-09T10:52:39.596628Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=119 frame=Push { header: ShortHeader { command: Push, connection_id: 119, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12" } [INFO] [stdout] 2026-07-09T10:52:39.599938Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 119, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12" } [INFO] [stdout] 2026-07-09T10:52:39.600222Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=119 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.600244Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=119 seq=6 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.600275Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=119 remote_addr=127.0.0.1:9018 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 19, payload_length: 8, recv_window_size: 249, timestamp: 151, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.600320Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=119 frame=Push { header: ShortHeader { command: Push, connection_id: 119, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12" } [INFO] [stdout] 2026-07-09T10:52:39.600594Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 119, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12" } [INFO] [stdout] 2026-07-09T10:52:39.597860Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=22 state=Established [INFO] [stdout] 2026-07-09T10:52:39.600966Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=39 [INFO] [stdout] 2026-07-09T10:52:39.600992Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=39 state=Established [INFO] [stdout] 2026-07-09T10:52:39.601031Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=126 [INFO] [stdout] 2026-07-09T10:52:39.601050Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=126 state=Established [INFO] [stdout] 2026-07-09T10:52:39.601084Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=127 [INFO] [stdout] 2026-07-09T10:52:39.601101Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=127 state=Established [INFO] [stdout] 2026-07-09T10:52:39.601132Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=27 [INFO] [stdout] 2026-07-09T10:52:39.601148Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=27 state=Established [INFO] [stdout] 2026-07-09T10:52:39.601179Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=26 [INFO] [stdout] 2026-07-09T10:52:39.601198Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=26 state=Established [INFO] [stdout] 2026-07-09T10:52:39.601231Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=129 [INFO] [stdout] 2026-07-09T10:52:39.601247Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=129 state=Established [INFO] [stdout] 2026-07-09T10:52:39.601280Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=29 [INFO] [stdout] 2026-07-09T10:52:39.601297Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=29 state=Established [INFO] [stdout] 2026-07-09T10:52:39.601326Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=128 [INFO] [stdout] 2026-07-09T10:52:39.601340Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=128 state=Established [INFO] [stdout] 2026-07-09T10:52:39.601380Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=107 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.601433Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=110 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 10 } } [INFO] [stdout] 2026-07-09T10:52:39.601458Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 10 } } [INFO] [stdout] 2026-07-09T10:52:39.601483Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=110 peer_cid=10 state=Established [INFO] [stdout] 2026-07-09T10:52:39.601505Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=110 state=Established [INFO] [stdout] 2026-07-09T10:52:39.601523Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=110 frame=Ack { header: ShortHeader { command: Ack, connection_id: 110, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.601544Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 110, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.601566Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=110 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.601587Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=110 [INFO] [stdout] 2026-07-09T10:52:39.601605Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=110 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.601648Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.601668Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.601688Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=156 srtt_ms=156 rttvar_ms=78 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.601707Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.601719Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.595751Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 115, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e" } [INFO] [stdout] 2026-07-09T10:52:39.602095Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=115 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.602120Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=115 seq=4 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.602155Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=115 remote_addr=127.0.0.1:9014 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 15, payload_length: 8, recv_window_size: 251, timestamp: 155, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.602206Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=115 frame=Push { header: ShortHeader { command: Push, connection_id: 115, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e" } [INFO] [stdout] 2026-07-09T10:52:39.602504Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 115, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e" } [INFO] [stdout] 2026-07-09T10:52:39.602818Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=115 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.602840Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=115 seq=5 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.599733Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 105, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04" } [INFO] [stdout] 2026-07-09T10:52:39.603074Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=105 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.603094Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=105 seq=6 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.603118Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=105 remote_addr=127.0.0.1:9004 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 5, payload_length: 8, recv_window_size: 249, timestamp: 160, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.603156Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=105 frame=Push { header: ShortHeader { command: Push, connection_id: 105, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04" } [INFO] [stdout] 2026-07-09T10:52:39.603470Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 105, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04" } [INFO] [stdout] 2026-07-09T10:52:39.603780Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=105 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.603803Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=105 seq=7 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.603833Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=105 remote_addr=127.0.0.1:9004 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 5, payload_length: 8, recv_window_size: 248, timestamp: 161, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.603904Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=119 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.603928Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=119 seq=7 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.603970Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=119 remote_addr=127.0.0.1:9018 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 19, payload_length: 8, recv_window_size: 248, timestamp: 154, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.604098Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=807311785 [INFO] [stdout] 2026-07-09T10:52:39.604139Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=807311785 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.604015Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=119 frame=Push { header: ShortHeader { command: Push, connection_id: 119, payload_length: 640, recv_window_size: 256, timestamp: 1, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12" } [INFO] [stdout] 2026-07-09T10:52:39.604178Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 119, payload_length: 640, recv_window_size: 256, timestamp: 1, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12\x12" } [INFO] [stdout] 2026-07-09T10:52:39.604357Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=119 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-07-09T10:52:39.604374Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=119 seq=8 payload_len=640 [INFO] [stdout] 2026-07-09T10:52:39.604398Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=119 remote_addr=127.0.0.1:9018 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 19, payload_length: 8, recv_window_size: 247, timestamp: 155, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.604430Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=119 [INFO] [stdout] 2026-07-09T10:52:39.604453Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=119 count=9 [INFO] [stdout] 2026-07-09T10:52:39.604488Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=119 state=Established [INFO] [stdout] 2026-07-09T10:52:39.604586Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=145 slots_to_advance=14 max_advance=14 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.604652Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=48 [INFO] [stdout] 2026-07-09T10:52:39.604675Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=48 state=Established [INFO] [stdout] 2026-07-09T10:52:39.604716Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=144 slots_to_advance=14 max_advance=14 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.604760Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=144 slots_to_advance=14 max_advance=14 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.604799Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=124 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 24 } } [INFO] [stdout] 2026-07-09T10:52:39.604822Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 24 } } [INFO] [stdout] 2026-07-09T10:52:39.604842Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=124 peer_cid=24 state=Established [INFO] [stdout] 2026-07-09T10:52:39.604858Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=124 state=Established [INFO] [stdout] 2026-07-09T10:52:39.604896Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=124 frame=Ack { header: ShortHeader { command: Ack, connection_id: 124, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.604919Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 124, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.604949Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=124 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.604978Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=124 [INFO] [stdout] 2026-07-09T10:52:39.604995Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=124 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_fast_event_slot_non_power_of_two ... ok [INFO] [stdout] 2026-07-09T10:52:39.605032Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.605050Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_fast_event_slot_write_single ... ok [INFO] [stdout] 2026-07-09T10:52:39.605070Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=147 srtt_ms=147 rttvar_ms=73 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.605089Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.605101Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.605128Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=124 frame=Push { header: ShortHeader { command: Push, connection_id: 124, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17" } [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_memory_efficiency_no_cloning ... ok [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_ref_event_handler_batch ... ok [INFO] [stdout] test timer::event::traits::tests::test_strategy_traits_clone ... ok [INFO] [stdout] test timer::event::performance_bench::bench_tests::test_lightweight_benchmark ... ok [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_zero_copy_batch_dispatcher_creation ... ok [INFO] [stdout] 2026-07-09T10:52:39.605405Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 124, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17" } [INFO] [stdout] 2026-07-09T10:52:39.605670Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=124 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.605686Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=124 seq=0 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.605710Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=124 remote_addr=127.0.0.1:9023 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 24, payload_length: 8, recv_window_size: 255, timestamp: 149, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_zero_copy_batch_dispatcher_multiple_batches ... 2026-07-09T10:52:39.602868Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=115 remote_addr=127.0.0.1:9014 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 15, payload_length: 8, recv_window_size: 250, timestamp: 156, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.601739Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=110 frame=Push { header: ShortHeader { command: Push, connection_id: 110, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" } [INFO] [stdout] 2026-07-09T10:52:39.605953Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 110, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" } [INFO] [stdout] 2026-07-09T10:52:39.606108Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=110 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.606125Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=110 seq=0 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.606148Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=110 remote_addr=127.0.0.1:9009 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 10, payload_length: 8, recv_window_size: 255, timestamp: 161, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.605958Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=115 frame=Push { header: ShortHeader { command: Push, connection_id: 115, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e" } [INFO] [stdout] 2026-07-09T10:52:39.606179Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=110 frame=Push { header: ShortHeader { command: Push, connection_id: 110, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" } [INFO] [stdout] 2026-07-09T10:52:39.606336Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 110, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" } [INFO] [stdout] 2026-07-09T10:52:39.606497Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=110 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.606514Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=110 seq=1 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.606539Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=110 remote_addr=127.0.0.1:9009 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 10, payload_length: 8, recv_window_size: 254, timestamp: 161, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.606278Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 115, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e" } [INFO] [stdout] 2026-07-09T10:52:39.606594Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=115 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.606616Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=115 seq=6 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.606648Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=115 remote_addr=127.0.0.1:9014 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 15, payload_length: 8, recv_window_size: 249, timestamp: 159, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.606573Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=110 frame=Push { header: ShortHeader { command: Push, connection_id: 110, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" } [INFO] [stdout] 2026-07-09T10:52:39.606724Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 110, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" } [INFO] [stdout] 2026-07-09T10:52:39.606910Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=110 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.606938Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=110 seq=2 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.606690Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=115 frame=Push { header: ShortHeader { command: Push, connection_id: 115, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e" } [INFO] [stdout] 2026-07-09T10:52:39.606983Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=110 remote_addr=127.0.0.1:9009 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 10, payload_length: 8, recv_window_size: 253, timestamp: 162, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.607024Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=110 frame=Push { header: ShortHeader { command: Push, connection_id: 110, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" } [INFO] [stdout] 2026-07-09T10:52:39.607005Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 115, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e" } [INFO] [stdout] 2026-07-09T10:52:39.607309Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=115 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.607190Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 110, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" } [INFO] [stdout] 2026-07-09T10:52:39.607330Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=115 seq=7 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.607346Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=110 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.607365Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=110 seq=3 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.607357Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=115 remote_addr=127.0.0.1:9014 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 15, payload_length: 8, recv_window_size: 248, timestamp: 160, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.607394Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=110 remote_addr=127.0.0.1:9009 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 10, payload_length: 8, recv_window_size: 252, timestamp: 162, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.607399Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=115 frame=Push { header: ShortHeader { command: Push, connection_id: 115, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e" } [INFO] [stdout] 2026-07-09T10:52:39.607434Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=110 frame=Push { header: ShortHeader { command: Push, connection_id: 110, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" } [INFO] [stdout] 2026-07-09T10:52:39.607591Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 110, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" } [INFO] [stdout] 2026-07-09T10:52:39.607583Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 115, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e\x0e" } [INFO] [stdout] 2026-07-09T10:52:39.607746Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=110 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.607751Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=115 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-07-09T10:52:39.607766Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=110 seq=4 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.607770Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=115 seq=8 payload_len=640 [INFO] [stdout] 2026-07-09T10:52:39.607795Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=110 remote_addr=127.0.0.1:9009 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 10, payload_length: 8, recv_window_size: 251, timestamp: 163, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.607902Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=105 frame=Push { header: ShortHeader { command: Push, connection_id: 105, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04" } [INFO] [stdout] 2026-07-09T10:52:39.608089Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 105, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04" } [INFO] [stdout] 2026-07-09T10:52:39.608267Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=105 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-07-09T10:52:39.608286Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=105 seq=8 payload_len=640 [INFO] [stdout] 2026-07-09T10:52:39.608315Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=105 remote_addr=127.0.0.1:9004 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 5, payload_length: 8, recv_window_size: 247, timestamp: 166, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.608356Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=105 [INFO] [stdout] 2026-07-09T10:52:39.608387Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=105 count=9 [INFO] [stdout] 2026-07-09T10:52:39.608427Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=105 state=Established [INFO] [stdout] 2026-07-09T10:52:39.608630Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=101 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.608694Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=111 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 11 } } [INFO] [stdout] 2026-07-09T10:52:39.608724Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 11 } } [INFO] [stdout] 2026-07-09T10:52:39.608749Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=111 peer_cid=11 state=Established [INFO] [stdout] 2026-07-09T10:52:39.608771Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=111 state=Established [INFO] [stdout] 2026-07-09T10:52:39.608789Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=111 frame=Ack { header: ShortHeader { command: Ack, connection_id: 111, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.608812Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 111, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.608838Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=111 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.608887Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=111 [INFO] [stdout] 2026-07-09T10:52:39.608906Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=111 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.608946Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.608981Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.608999Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=162 srtt_ms=162 rttvar_ms=81 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.608993Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:33087 frame_count=1 bytes=27 [INFO] [stdout] 2026-07-09T10:52:39.609014Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.609026Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.609143Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:53709 frame_count=1 bytes=27 [INFO] [stdout] 2026-07-09T10:52:39.605754Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=124 frame=Push { header: ShortHeader { command: Push, connection_id: 124, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17" } [INFO] [stdout] 2026-07-09T10:52:39.609527Z DEBUG kestrel_protocol::core::reliability::retransmission::sack_manager: RTO retransmission triggered - reconstructing frame with fresh header seq=0 frame_type=Push updated_cid=2 [INFO] [stdout] 2026-07-09T10:52:39.609563Z DEBUG kestrel_protocol::core::reliability::retransmission: Retransmission timeout detected by unified manager with frame reconstruction retx_count=1 current_peer_cid=2 [INFO] [stdout] 2026-07-09T10:52:39.609578Z DEBUG kestrel_protocol::core::reliability::congestion::vegas: Congestive loss detected! New ssthresh: 16, New cwnd: 16 [INFO] [stdout] 2026-07-09T10:52:39.609337Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 124, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17" } [INFO] [stdout] 2026-07-09T10:52:39.609591Z DEBUG kestrel_protocol::core::reliability: Congestion window reduced due to retransmissions old_cwnd=32 new_cwnd=16 count=1 [INFO] [stdout] 2026-07-09T10:52:39.609607Z DEBUG kestrel_protocol::core::reliability::retransmission::rtt: RTO backoff old_rto_ms=100 new_rto_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.609606Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=124 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.609626Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=124 seq=1 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.609631Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 13, recv_window_size: 256, timestamp: 155, sequence_number: 0, recv_next_sequence: 0 }, payload: b"rto test data" } [INFO] [stdout] 2026-07-09T10:52:39.609667Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.609662Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=124 remote_addr=127.0.0.1:9023 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 24, payload_length: 8, recv_window_size: 254, timestamp: 153, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.609685Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.607843Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=110 frame=Push { header: ShortHeader { command: Push, connection_id: 110, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" } [INFO] [stdout] 2026-07-09T10:52:39.610054Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 110, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" } [INFO] [stdout] 2026-07-09T10:52:39.610209Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=110 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.610225Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=110 seq=5 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.610248Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=110 remote_addr=127.0.0.1:9009 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 10, payload_length: 8, recv_window_size: 250, timestamp: 165, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.609045Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=111 frame=Push { header: ShortHeader { command: Push, connection_id: 111, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" } [INFO] [stdout] 2026-07-09T10:52:39.610380Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 111, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" } [INFO] [stdout] 2026-07-09T10:52:39.610515Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=111 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.610530Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=111 seq=0 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.610551Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=111 remote_addr=127.0.0.1:9010 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 11, payload_length: 8, recv_window_size: 255, timestamp: 165, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.610585Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=111 frame=Push { header: ShortHeader { command: Push, connection_id: 111, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" } [INFO] [stdout] 2026-07-09T10:52:39.610722Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 111, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" } [INFO] [stdout] 2026-07-09T10:52:39.610888Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=111 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.610868Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 13, recv_window_size: 256, timestamp: 155, sequence_number: 0, recv_next_sequence: 0 }, payload: b"rto test data" } [INFO] [stdout] 2026-07-09T10:52:39.610909Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=111 seq=1 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.610917Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 13, recv_window_size: 256, timestamp: 155, sequence_number: 0, recv_next_sequence: 0 }, payload: b"rto test data" } [INFO] [stdout] 2026-07-09T10:52:39.610938Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=0 payload_len=13 state=Established [INFO] [stdout] 2026-07-09T10:52:39.610934Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=111 remote_addr=127.0.0.1:9010 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 11, payload_length: 8, recv_window_size: 254, timestamp: 165, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.610954Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=0 payload_len=13 [INFO] [stdout] 2026-07-09T10:52:39.610972Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.610990Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.610974Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=111 frame=Push { header: ShortHeader { command: Push, connection_id: 111, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" } [INFO] [stdout] 2026-07-09T10:52:39.611128Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 111, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" } [INFO] [stdout] 2026-07-09T10:52:39.611276Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=111 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.611294Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=111 seq=2 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.611319Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=111 remote_addr=127.0.0.1:9010 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 11, payload_length: 8, recv_window_size: 253, timestamp: 166, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.611353Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=111 frame=Push { header: ShortHeader { command: Push, connection_id: 111, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" } [INFO] [stdout] 2026-07-09T10:52:39.611505Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 111, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" } [INFO] [stdout] 2026-07-09T10:52:39.611658Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=111 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.611675Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=111 seq=3 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.611696Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=111 remote_addr=127.0.0.1:9010 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 11, payload_length: 8, recv_window_size: 252, timestamp: 166, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.611726Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=111 frame=Push { header: ShortHeader { command: Push, connection_id: 111, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" } [INFO] [stdout] 2026-07-09T10:52:39.611909Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=110 frame=Push { header: ShortHeader { command: Push, connection_id: 110, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" } [INFO] [stdout] 2026-07-09T10:52:39.612082Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 110, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" } [INFO] [stdout] 2026-07-09T10:52:39.612239Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=110 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.612257Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=110 seq=6 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.612282Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=110 remote_addr=127.0.0.1:9009 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 10, payload_length: 8, recv_window_size: 249, timestamp: 167, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.612314Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=110 frame=Push { header: ShortHeader { command: Push, connection_id: 110, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" } [INFO] [stdout] 2026-07-09T10:52:39.612452Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 110, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" } [INFO] [stdout] 2026-07-09T10:52:39.612590Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=110 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.612605Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=110 seq=7 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.612625Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=110 remote_addr=127.0.0.1:9009 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 10, payload_length: 8, recv_window_size: 248, timestamp: 167, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.612650Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=110 frame=Push { header: ShortHeader { command: Push, connection_id: 110, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" } [INFO] [stdout] 2026-07-09T10:52:39.612731Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 110, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" } [INFO] [stdout] 2026-07-09T10:52:39.612810Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=110 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-07-09T10:52:39.612825Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=110 seq=8 payload_len=640 [INFO] [stdout] 2026-07-09T10:52:39.612845Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=110 remote_addr=127.0.0.1:9009 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 10, payload_length: 8, recv_window_size: 247, timestamp: 168, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.609696Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=124 frame=Push { header: ShortHeader { command: Push, connection_id: 124, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17" } [INFO] [stdout] 2026-07-09T10:52:39.613166Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 124, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17" } [INFO] [stdout] 2026-07-09T10:52:39.613415Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=124 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.613431Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=124 seq=2 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.613457Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=124 remote_addr=127.0.0.1:9023 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 24, payload_length: 8, recv_window_size: 253, timestamp: 157, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.613668Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2572252030 [INFO] [stdout] 2026-07-09T10:52:39.613704Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2572252030 state=FinWait [INFO] [stdout] 2026-07-09T10:52:39.613490Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=124 frame=Push { header: ShortHeader { command: Push, connection_id: 124, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17" } [INFO] [stdout] 2026-07-09T10:52:39.605706Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.613732Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 124, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17" } [INFO] [stdout] 2026-07-09T10:52:39.614012Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=124 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.614034Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=124 seq=3 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.614060Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=124 remote_addr=127.0.0.1:9023 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 24, payload_length: 8, recv_window_size: 252, timestamp: 157, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.614097Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=124 frame=Push { header: ShortHeader { command: Push, connection_id: 124, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17" } [INFO] [stdout] 2026-07-09T10:52:39.614369Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 124, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17" } [INFO] [stdout] 2026-07-09T10:52:39.614650Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=124 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.614672Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=124 seq=4 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.614699Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=124 remote_addr=127.0.0.1:9023 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 24, payload_length: 8, recv_window_size: 251, timestamp: 158, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.612908Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 111, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" } [INFO] [stdout] 2026-07-09T10:52:39.614910Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=111 seq=4 payload_len=1200 state=Established [INFO] [stdout] ok [INFO] [stdout] 2026-07-09T10:52:39.614932Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=111 seq=4 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.614969Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=111 remote_addr=127.0.0.1:9010 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 11, payload_length: 8, recv_window_size: 251, timestamp: 169, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_zero_copy_batch_dispatcher_single_batch ... ok [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_ref_event_handler_single ... ok [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_zero_copy_concurrent_dispatching ... ok [INFO] [stdout] 2026-07-09T10:52:39.615006Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=111 frame=Push { header: ShortHeader { command: Push, connection_id: 111, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" } [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_zero_copy_single_event ... ok [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_zero_copy_performance_medium_batch ... ok [INFO] [stdout] test timer::parallel::tests::test_comprehensive_optimization_benchmark ... ignored [INFO] [stdout] 2026-07-09T10:52:39.615185Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 111, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" } [INFO] [stdout] 2026-07-09T10:52:39.615345Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=111 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.615367Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=111 seq=5 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.615394Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=111 remote_addr=127.0.0.1:9010 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 11, payload_length: 8, recv_window_size: 250, timestamp: 170, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.615425Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.615429Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=111 frame=Push { header: ShortHeader { command: Push, connection_id: 111, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" } [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_zero_copy_max_batch_size ... ok [INFO] [stdout] 2026-07-09T10:52:39.615586Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 111, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" } [INFO] [stdout] 2026-07-09T10:52:39.613056Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=110 [INFO] [stdout] 2026-07-09T10:52:39.615719Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.615735Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=111 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.615755Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=111 seq=6 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.615756Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=110 count=9 [INFO] [stdout] 2026-07-09T10:52:39.615782Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=111 remote_addr=127.0.0.1:9010 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 11, payload_length: 8, recv_window_size: 249, timestamp: 170, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.615797Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=110 state=Established [INFO] [stdout] 2026-07-09T10:52:39.615827Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.615869Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3853114792 [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_zero_copy_performance_large_batch ... 2026-07-09T10:52:39.615916Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3853114792 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.607796Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=115 remote_addr=127.0.0.1:9014 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 15, payload_length: 8, recv_window_size: 247, timestamp: 160, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] ok [INFO] [stdout] 2026-07-09T10:52:39.615909Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=106 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 6 } } [INFO] [stdout] 2026-07-09T10:52:39.615965Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 6 } } [INFO] [stdout] 2026-07-09T10:52:39.615820Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=111 frame=Push { header: ShortHeader { command: Push, connection_id: 111, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" } [INFO] [stdout] 2026-07-09T10:52:39.616241Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 111, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" } [INFO] [stdout] 2026-07-09T10:52:39.616397Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=111 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.616418Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=111 seq=7 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.616444Z DEBUG kestrel_protocol::socket::transport::udp: Attempting to rebind UDP socket new_addr=127.0.0.1:0 [INFO] [stdout] 2026-07-09T10:52:39.616445Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=111 remote_addr=127.0.0.1:9010 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 11, payload_length: 8, recv_window_size: 248, timestamp: 171, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.616511Z TRACE mio::poll: registering event source with poller: token=Token(136411650986624), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.616481Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=111 frame=Push { header: ShortHeader { command: Push, connection_id: 111, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" } [INFO] [stdout] 2026-07-09T10:52:39.616626Z DEBUG kestrel_protocol::socket::transport::udp: UDP socket rebound to new address addr=127.0.0.1:49785 [INFO] [stdout] 2026-07-09T10:52:39.616570Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 111, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" } [INFO] [stdout] 2026-07-09T10:52:39.616656Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=111 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-07-09T10:52:39.616671Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=111 seq=8 payload_len=640 [INFO] [stdout] 2026-07-09T10:52:39.616694Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=111 remote_addr=127.0.0.1:9010 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 11, payload_length: 8, recv_window_size: 247, timestamp: 171, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.616721Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=111 [INFO] [stdout] 2026-07-09T10:52:39.616737Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=111 count=9 [INFO] [stdout] 2026-07-09T10:52:39.616762Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=111 state=Established [INFO] [stdout] 2026-07-09T10:52:39.616842Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=112 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 12 } } [INFO] [stdout] 2026-07-09T10:52:39.615988Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=106 peer_cid=6 state=Established [INFO] [stdout] 2026-07-09T10:52:39.616019Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=115 [INFO] [stdout] 2026-07-09T10:52:39.616929Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=115 count=9 [INFO] [stdout] 2026-07-09T10:52:39.616977Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=115 state=Established [INFO] [stdout] 2026-07-09T10:52:39.617108Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=15 [INFO] [stdout] 2026-07-09T10:52:39.617137Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=15 state=Established [INFO] [stdout] 2026-07-09T10:52:39.617170Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=116 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 16 } } [INFO] [stdout] 2026-07-09T10:52:39.617197Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 16 } } [INFO] [stdout] 2026-07-09T10:52:39.617220Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=116 peer_cid=16 state=Established [INFO] [stdout] 2026-07-09T10:52:39.617242Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=116 state=Established [INFO] [stdout] 2026-07-09T10:52:39.617258Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=116 frame=Ack { header: ShortHeader { command: Ack, connection_id: 116, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.617285Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 116, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.617309Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=116 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.617333Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=116 [INFO] [stdout] 2026-07-09T10:52:39.617350Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=116 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.617393Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.617417Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.617441Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=168 srtt_ms=168 rttvar_ms=84 rto_ms=506 [INFO] [stdout] 2026-07-09T10:52:39.617472Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.617483Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.616089Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.617713Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=101 slots_to_advance=10 max_advance=10 current_slot=10 [INFO] [stdout] 2026-07-09T10:52:39.617506Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=116 frame=Push { header: ShortHeader { command: Push, connection_id: 116, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f" } [INFO] [stdout] 2026-07-09T10:52:39.617888Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=106 state=Established [INFO] [stdout] 2026-07-09T10:52:39.617913Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=106 frame=Ack { header: ShortHeader { command: Ack, connection_id: 106, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.617934Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 106, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.617958Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=106 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.617975Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=106 [INFO] [stdout] 2026-07-09T10:52:39.617994Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=106 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.618026Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.618048Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.618070Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=174 srtt_ms=174 rttvar_ms=87 rto_ms=522 [INFO] [stdout] 2026-07-09T10:52:39.618091Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.618101Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.618123Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=106 frame=Push { header: ShortHeader { command: Push, connection_id: 106, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05" } [INFO] [stdout] 2026-07-09T10:52:39.618520Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=102 slots_to_advance=10 max_advance=10 current_slot=10 [INFO] [stdout] 2026-07-09T10:52:39.614737Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=124 frame=Push { header: ShortHeader { command: Push, connection_id: 124, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17" } [INFO] [stdout] 2026-07-09T10:52:39.618433Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 106, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05" } [INFO] [stdout] 2026-07-09T10:52:39.618752Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=106 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.618771Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=106 seq=0 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.618910Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=106 remote_addr=127.0.0.1:9005 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 6, payload_length: 8, recv_window_size: 255, timestamp: 176, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.618627Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 124, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17" } [INFO] [stdout] 2026-07-09T10:52:39.618989Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=124 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.619014Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=124 seq=5 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.619044Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=124 remote_addr=127.0.0.1:9023 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 24, payload_length: 8, recv_window_size: 250, timestamp: 162, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.618954Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=106 frame=Push { header: ShortHeader { command: Push, connection_id: 106, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05" } [INFO] [stdout] 2026-07-09T10:52:39.619083Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=124 frame=Push { header: ShortHeader { command: Push, connection_id: 124, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17" } [INFO] [stdout] 2026-07-09T10:52:39.619251Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 106, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05" } [INFO] [stdout] 2026-07-09T10:52:39.619561Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=106 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.619583Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=106 seq=1 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.619609Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=106 remote_addr=127.0.0.1:9005 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 6, payload_length: 8, recv_window_size: 254, timestamp: 176, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.619366Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 124, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17" } [INFO] [stdout] 2026-07-09T10:52:39.619659Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=124 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.619680Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=124 seq=6 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.619708Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=124 remote_addr=127.0.0.1:9023 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 24, payload_length: 8, recv_window_size: 249, timestamp: 163, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.617808Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 116, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f" } [INFO] [stdout] 2026-07-09T10:52:39.620065Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=116 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.620089Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=116 seq=0 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.620117Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=116 remote_addr=127.0.0.1:9015 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 16, payload_length: 8, recv_window_size: 255, timestamp: 172, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.620158Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=116 frame=Push { header: ShortHeader { command: Push, connection_id: 116, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f" } [INFO] [stdout] 2026-07-09T10:52:39.620482Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 116, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f" } [INFO] [stdout] 2026-07-09T10:52:39.620792Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=116 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.620814Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=116 seq=1 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.620842Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=116 remote_addr=127.0.0.1:9015 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 16, payload_length: 8, recv_window_size: 254, timestamp: 173, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.619644Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=106 frame=Push { header: ShortHeader { command: Push, connection_id: 106, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05" } [INFO] [stdout] 2026-07-09T10:52:39.620967Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 106, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05" } [INFO] [stdout] 2026-07-09T10:52:39.616864Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 12 } } [INFO] [stdout] 2026-07-09T10:52:39.621676Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=106 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.621698Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=106 seq=2 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.621705Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=112 peer_cid=12 state=Established [INFO] [stdout] 2026-07-09T10:52:39.621728Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=112 state=Established [INFO] [stdout] 2026-07-09T10:52:39.621724Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=106 remote_addr=127.0.0.1:9005 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 6, payload_length: 8, recv_window_size: 253, timestamp: 178, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.621751Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=112 frame=Ack { header: ShortHeader { command: Ack, connection_id: 112, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.621775Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 112, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.621795Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=112 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.621815Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=112 [INFO] [stdout] 2026-07-09T10:52:39.621832Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=112 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.621271Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=116 frame=Push { header: ShortHeader { command: Push, connection_id: 116, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f" } [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_zero_copy_performance_small_batch ... ok [INFO] [stdout] 2026-07-09T10:52:39.621756Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=106 frame=Push { header: ShortHeader { command: Push, connection_id: 106, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05" } [INFO] [stdout] 2026-07-09T10:52:39.622121Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.621899Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 116, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f" } [INFO] [stdout] 2026-07-09T10:52:39.619746Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=124 frame=Push { header: ShortHeader { command: Push, connection_id: 124, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17" } [INFO] [stdout] 2026-07-09T10:52:39.622219Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=116 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.622240Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=116 seq=2 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.622264Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=116 remote_addr=127.0.0.1:9015 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 16, payload_length: 8, recv_window_size: 253, timestamp: 174, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.622069Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 106, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05" } [INFO] [stdout] 2026-07-09T10:52:39.622362Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=106 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.622379Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=106 seq=3 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.622399Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=106 remote_addr=127.0.0.1:9005 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 6, payload_length: 8, recv_window_size: 252, timestamp: 179, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.622224Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 124, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17" } [INFO] [stdout] 2026-07-09T10:52:39.622508Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=124 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.622526Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=124 seq=7 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.622548Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=124 remote_addr=127.0.0.1:9023 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 24, payload_length: 8, recv_window_size: 248, timestamp: 166, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.622296Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=116 frame=Push { header: ShortHeader { command: Push, connection_id: 116, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f" } [INFO] [stdout] 2026-07-09T10:52:39.622577Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=124 frame=Push { header: ShortHeader { command: Push, connection_id: 124, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17" } [INFO] [stdout] 2026-07-09T10:52:39.622426Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=106 frame=Push { header: ShortHeader { command: Push, connection_id: 106, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05" } [INFO] [stdout] 2026-07-09T10:52:39.622902Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.622924Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.622945Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=175 srtt_ms=175 rttvar_ms=87 rto_ms=527 [INFO] [stdout] 2026-07-09T10:52:39.622972Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.622984Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.622828Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 106, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05" } [INFO] [stdout] 2026-07-09T10:52:39.623177Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=106 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.623196Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=106 seq=4 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.623218Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=106 remote_addr=127.0.0.1:9005 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 6, payload_length: 8, recv_window_size: 251, timestamp: 180, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.623006Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=112 frame=Push { header: ShortHeader { command: Push, connection_id: 112, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" } [INFO] [stdout] 2026-07-09T10:52:39.623257Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=106 frame=Push { header: ShortHeader { command: Push, connection_id: 106, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05" } [INFO] [stdout] 2026-07-09T10:52:39.623341Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 112, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" } [INFO] [stdout] 2026-07-09T10:52:39.623670Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=112 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.623689Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=112 seq=0 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.623712Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=112 remote_addr=127.0.0.1:9011 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 12, payload_length: 8, recv_window_size: 255, timestamp: 178, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.623576Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 106, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05" } [INFO] [stdout] 2026-07-09T10:52:39.623903Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=106 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.622599Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 116, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f" } [INFO] [stdout] 2026-07-09T10:52:39.623921Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=106 seq=5 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.623935Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=116 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.623943Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=106 remote_addr=127.0.0.1:9005 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 6, payload_length: 8, recv_window_size: 250, timestamp: 181, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.623955Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=116 seq=3 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.623989Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=116 remote_addr=127.0.0.1:9015 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 16, payload_length: 8, recv_window_size: 252, timestamp: 176, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] test timer::parallel::tests::test_hybrid_parallel_system_creation ... ok [INFO] [stdout] 2026-07-09T10:52:39.622737Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 124, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17" } [INFO] [stdout] 2026-07-09T10:52:39.624225Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=124 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-07-09T10:52:39.623972Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=106 frame=Push { header: ShortHeader { command: Push, connection_id: 106, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05" } [INFO] [stdout] 2026-07-09T10:52:39.624245Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=124 seq=8 payload_len=640 [INFO] [stdout] 2026-07-09T10:52:39.624295Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=124 remote_addr=127.0.0.1:9023 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 24, payload_length: 8, recv_window_size: 247, timestamp: 168, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.624031Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=116 frame=Push { header: ShortHeader { command: Push, connection_id: 116, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f" } [INFO] [stdout] 2026-07-09T10:52:39.624357Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=124 [INFO] [stdout] 2026-07-09T10:52:39.623746Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=112 frame=Push { header: ShortHeader { command: Push, connection_id: 112, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" } [INFO] [stdout] 2026-07-09T10:52:39.624724Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=124 count=9 [INFO] [stdout] 2026-07-09T10:52:39.624769Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=124 state=Established [INFO] [stdout] 2026-07-09T10:52:39.624847Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=122 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 22 } } [INFO] [stdout] 2026-07-09T10:52:39.624275Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 106, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05" } [INFO] [stdout] test timer::parallel::tests::test_memory_efficiency ... ok [INFO] [stdout] 2026-07-09T10:52:39.624913Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=106 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.624935Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=106 seq=6 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.624972Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=106 remote_addr=127.0.0.1:9005 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 6, payload_length: 8, recv_window_size: 249, timestamp: 182, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.624697Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 116, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f" } [INFO] [stdout] 2026-07-09T10:52:39.625013Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=116 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.625013Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.625037Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=116 seq=4 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.625066Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.625065Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=116 remote_addr=127.0.0.1:9015 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 16, payload_length: 8, recv_window_size: 251, timestamp: 177, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.625100Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=116 frame=Push { header: ShortHeader { command: Push, connection_id: 116, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f" } [INFO] [stdout] 2026-07-09T10:52:39.624740Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 112, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" } [INFO] [stdout] 2026-07-09T10:52:39.625452Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=112 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.625469Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=112 seq=1 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.625493Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=112 remote_addr=127.0.0.1:9011 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 12, payload_length: 8, recv_window_size: 254, timestamp: 179, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.625419Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 116, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f" } [INFO] [stdout] 2026-07-09T10:52:39.625734Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=116 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.625754Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=116 seq=5 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.625780Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=116 remote_addr=127.0.0.1:9015 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 16, payload_length: 8, recv_window_size: 250, timestamp: 178, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.625523Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=112 frame=Push { header: ShortHeader { command: Push, connection_id: 112, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" } [INFO] [stdout] 2026-07-09T10:52:39.624868Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 22 } } [INFO] [stdout] 2026-07-09T10:52:39.625913Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=122 peer_cid=22 state=Established [INFO] [stdout] 2026-07-09T10:52:39.625929Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=122 state=Established [INFO] [stdout] 2026-07-09T10:52:39.625014Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=106 frame=Push { header: ShortHeader { command: Push, connection_id: 106, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05" } [INFO] [stdout] 2026-07-09T10:52:39.625944Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=122 [INFO] [stdout] 2026-07-09T10:52:39.628959Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=122 state=Established [INFO] [stdout] 2026-07-09T10:52:39.629031Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=125 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 25 } } [INFO] [stdout] 2026-07-09T10:52:39.629058Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 25 } } [INFO] [stdout] 2026-07-09T10:52:39.629081Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=125 peer_cid=25 state=Established [INFO] [stdout] 2026-07-09T10:52:39.629098Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=125 state=Established [INFO] [stdout] 2026-07-09T10:52:39.629115Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=125 frame=Ack { header: ShortHeader { command: Ack, connection_id: 125, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.629137Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 125, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.629157Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=125 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.629178Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=125 [INFO] [stdout] 2026-07-09T10:52:39.629196Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=125 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.629235Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.629254Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.629273Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=170 srtt_ms=170 rttvar_ms=85 rto_ms=512 [INFO] [stdout] 2026-07-09T10:52:39.629299Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.629311Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] test timer::parallel::tests::test_rayon_executor ... ok [INFO] [stdout] 2026-07-09T10:52:39.629330Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=125 [INFO] [stdout] 2026-07-09T10:52:39.629350Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=125 state=Established [INFO] [stdout] 2026-07-09T10:52:39.629391Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=123 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 23 } } [INFO] [stdout] 2026-07-09T10:52:39.629412Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 23 } } [INFO] [stdout] 2026-07-09T10:52:39.629427Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=123 peer_cid=23 state=Established [INFO] [stdout] 2026-07-09T10:52:39.629442Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=123 state=Established [INFO] [stdout] 2026-07-09T10:52:39.629469Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=123 frame=Ack { header: ShortHeader { command: Ack, connection_id: 123, payload_length: 8, recv_window_size: 255, timestamp: 1, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.629493Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 123, payload_length: 8, recv_window_size: 255, timestamp: 1, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.629512Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=123 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.629531Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=123 [INFO] [stdout] 2026-07-09T10:52:39.629545Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=123 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.629570Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.629585Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.629606Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=171 srtt_ms=171 rttvar_ms=85 rto_ms=515 [INFO] [stdout] 2026-07-09T10:52:39.629622Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.629633Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.629653Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.629744Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:33087 frame_count=1 bytes=27 [INFO] [stdout] 2026-07-09T10:52:39.625815Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=116 frame=Push { header: ShortHeader { command: Push, connection_id: 116, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f" } [INFO] [stdout] 2026-07-09T10:52:39.629934Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:49785 frame_count=1 bytes=27 [INFO] [stdout] test timer::parallel::tests::test_simd_processor ... ok [INFO] [stdout] 2026-07-09T10:52:39.630122Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.629981Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 116, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f" } [INFO] [stdout] 2026-07-09T10:52:39.630308Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=116 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.630329Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=116 seq=6 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.630360Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=116 remote_addr=127.0.0.1:9015 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 16, payload_length: 8, recv_window_size: 249, timestamp: 182, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] test timer::parallel::tests::test_simd_processor_detailed ... ok [INFO] [stdout] 2026-07-09T10:52:39.630536Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.630407Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=116 frame=Push { header: ShortHeader { command: Push, connection_id: 116, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f" } [INFO] [stdout] 2026-07-09T10:52:39.625966Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 106, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05" } [INFO] [stdout] 2026-07-09T10:52:39.630909Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=106 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.630928Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=106 seq=7 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.630952Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=106 remote_addr=127.0.0.1:9005 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 6, payload_length: 8, recv_window_size: 248, timestamp: 188, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.630986Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=106 frame=Push { header: ShortHeader { command: Push, connection_id: 106, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05" } [INFO] [stdout] 2026-07-09T10:52:39.631160Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 106, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05" } [INFO] [stdout] test timer::parallel::tests::test_concurrent_processing ... ok [INFO] [stdout] 2026-07-09T10:52:39.631347Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=106 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-07-09T10:52:39.631363Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=106 seq=8 payload_len=640 [INFO] [stdout] 2026-07-09T10:52:39.631383Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=106 remote_addr=127.0.0.1:9005 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 6, payload_length: 8, recv_window_size: 247, timestamp: 188, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.631412Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=106 [INFO] [stdout] 2026-07-09T10:52:39.631432Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=106 count=9 [INFO] [stdout] 2026-07-09T10:52:39.631470Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=106 state=Established [INFO] [stdout] 2026-07-09T10:52:39.631472Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.631572Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=107 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 7 } } [INFO] [stdout] 2026-07-09T10:52:39.631594Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 7 } } [INFO] [stdout] 2026-07-09T10:52:39.631611Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=107 peer_cid=7 state=Established [INFO] [stdout] 2026-07-09T10:52:39.631625Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=107 state=Established [INFO] [stdout] 2026-07-09T10:52:39.631639Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=107 frame=Ack { header: ShortHeader { command: Ack, connection_id: 107, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.631656Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 107, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.631674Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=107 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.631692Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=107 [INFO] [stdout] 2026-07-09T10:52:39.631705Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=107 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.631736Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.631750Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.631771Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=187 srtt_ms=187 rttvar_ms=93 rto_ms=562 [INFO] [stdout] 2026-07-09T10:52:39.631788Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.631799Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.629651Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=123 frame=Push { header: ShortHeader { command: Push, connection_id: 123, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16" } [INFO] [stdout] 2026-07-09T10:52:39.632032Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 123, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16" } [INFO] [stdout] 2026-07-09T10:52:39.632298Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=123 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.632320Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=123 seq=0 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.632349Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=123 remote_addr=127.0.0.1:9022 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 23, payload_length: 8, recv_window_size: 255, timestamp: 176, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.632388Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=123 frame=Push { header: ShortHeader { command: Push, connection_id: 123, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16" } [INFO] [stdout] 2026-07-09T10:52:39.632676Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 123, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16" } [INFO] [stdout] 2026-07-09T10:52:39.632969Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=123 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.632991Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=123 seq=1 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.633018Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=123 remote_addr=127.0.0.1:9022 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 23, payload_length: 8, recv_window_size: 254, timestamp: 177, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_zero_copy_batch_dispatcher_load_balancing ... ok [INFO] [stdout] 2026-07-09T10:52:39.633052Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=123 frame=Push { header: ShortHeader { command: Push, connection_id: 123, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16" } [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_zero_copy_empty_batch ... ok [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_fast_event_slot_concurrent_writes ... ok [INFO] [stdout] 2026-07-09T10:52:39.633323Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 123, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16" } [INFO] [stdout] 2026-07-09T10:52:39.633595Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.633608Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=123 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.633627Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=123 seq=2 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.633651Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=123 remote_addr=127.0.0.1:9022 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 23, payload_length: 8, recv_window_size: 253, timestamp: 178, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.633975Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.630732Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 116, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f" } [INFO] [stdout] 2026-07-09T10:52:39.634126Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=116 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.634147Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=116 seq=7 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.634173Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=116 remote_addr=127.0.0.1:9015 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 16, payload_length: 8, recv_window_size: 248, timestamp: 186, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.634208Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=116 frame=Push { header: ShortHeader { command: Push, connection_id: 116, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f" } [INFO] [stdout] 2026-07-09T10:52:39.634380Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 116, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f" } [INFO] [stdout] 2026-07-09T10:52:39.634555Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=116 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-07-09T10:52:39.634570Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=116 seq=8 payload_len=640 [INFO] [stdout] 2026-07-09T10:52:39.634589Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=116 remote_addr=127.0.0.1:9015 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 16, payload_length: 8, recv_window_size: 247, timestamp: 186, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.634614Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=116 [INFO] [stdout] 2026-07-09T10:52:39.634634Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=116 count=9 [INFO] [stdout] 2026-07-09T10:52:39.634663Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=116 state=Established [INFO] [stdout] 2026-07-09T10:52:39.634747Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=44 [INFO] [stdout] 2026-07-09T10:52:39.634764Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=44 state=Established [INFO] [stdout] 2026-07-09T10:52:39.634816Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=50 [INFO] [stdout] 2026-07-09T10:52:39.634836Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-07-09T10:52:39.634849Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.634860Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-07-09T10:52:39.636005Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] test timer::parallel::tests::test_single_thread_bypass ... ok [INFO] [stdout] 2026-07-09T10:52:39.637204Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.637361Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.637398Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.637435Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.637467Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=0 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] test timer::parallel::tests::test_strategy_selection ... ok [INFO] [stdout] 2026-07-09T10:52:39.637558Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.637584Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=1 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.637648Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=3 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.637670Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=3 entry_id=3 connection_id=2 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.637728Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=4 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.637755Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=4 entry_id=4 connection_id=3 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.637821Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=5 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.637846Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=5 entry_id=5 connection_id=4 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.637936Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=6 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.637970Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=6 entry_id=6 connection_id=5 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.638038Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=7 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.638061Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=7 entry_id=7 connection_id=6 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.638123Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=8 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.631815Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=107 frame=Push { header: ShortHeader { command: Push, connection_id: 107, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06" } [INFO] [stdout] 2026-07-09T10:52:39.638150Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=8 entry_id=8 connection_id=7 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.638211Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=9 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.638233Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=9 entry_id=9 connection_id=8 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.638289Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=10 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.638310Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=10 entry_id=10 connection_id=9 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.638379Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=11 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.638401Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=11 entry_id=11 connection_id=10 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.638165Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 107, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06" } [INFO] [stdout] 2026-07-09T10:52:39.638459Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=12 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.638471Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=107 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.638484Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=12 entry_id=12 connection_id=11 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.638494Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=107 seq=0 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.638529Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=107 remote_addr=127.0.0.1:9006 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 7, payload_length: 8, recv_window_size: 255, timestamp: 195, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.638540Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=13 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.638562Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=13 entry_id=13 connection_id=12 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.638724Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=14 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.638752Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=14 entry_id=14 connection_id=13 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.638819Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=15 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.638571Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=107 frame=Push { header: ShortHeader { command: Push, connection_id: 107, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06" } [INFO] [stdout] 2026-07-09T10:52:39.638858Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=15 entry_id=15 connection_id=14 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.639047Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=16 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.639068Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.639074Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=16 entry_id=16 connection_id=15 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.638846Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 107, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06" } [INFO] [stdout] 2026-07-09T10:52:39.639146Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=17 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.639160Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=107 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.639172Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=17 entry_id=17 connection_id=16 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.639178Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=107 seq=1 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.639203Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=107 remote_addr=127.0.0.1:9006 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 7, payload_length: 8, recv_window_size: 254, timestamp: 195, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.639239Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=18 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.639264Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=18 entry_id=18 connection_id=17 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.639324Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=19 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.639346Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=19 entry_id=19 connection_id=18 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.639418Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-07-09T10:52:39.639415Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=20 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.639434Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-07-09T10:52:39.639445Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-07-09T10:52:39.639475Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-07-09T10:52:39.639488Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-07-09T10:52:39.639499Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-07-09T10:52:39.639517Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=50 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 150, payload_length: 1200, recv_window_size: 256, timestamp: 127, sequence_number: 0, recv_next_sequence: 1 }, payload: b"111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" } [INFO] [stdout] 2026-07-09T10:52:39.639621Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=50 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 150, payload_length: 1200, recv_window_size: 256, timestamp: 127, sequence_number: 1, recv_next_sequence: 1 }, payload: b"111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" } [INFO] [stdout] 2026-07-09T10:52:39.639718Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=50 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 150, payload_length: 1200, recv_window_size: 256, timestamp: 127, sequence_number: 2, recv_next_sequence: 1 }, payload: b"111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" } [INFO] [stdout] 2026-07-09T10:52:39.639440Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=20 entry_id=20 connection_id=19 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.640380Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=21 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.640410Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=21 entry_id=21 connection_id=20 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.640487Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=22 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.640515Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=22 entry_id=22 connection_id=21 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.640595Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=23 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.640627Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=23 entry_id=23 connection_id=22 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.640700Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=24 slot_index=20 delay_ms=200 [INFO] [stdout] test timer::parallel::tests::test_strategy_selection_comprehensive ... 2026-07-09T10:52:39.640723Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=24 entry_id=24 connection_id=23 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] ok [INFO] [stdout] 2026-07-09T10:52:39.640804Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=25 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.644965Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=104 slots_to_advance=10 max_advance=10 current_slot=3 [INFO] [stdout] 2026-07-09T10:52:39.644974Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=25 entry_id=25 connection_id=24 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.644997Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=101 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.645089Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=26 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.645115Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=26 entry_id=26 connection_id=25 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.645176Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=27 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.645200Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=27 entry_id=27 connection_id=26 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.645261Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=28 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.645285Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=28 entry_id=28 connection_id=27 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.645358Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=29 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.645408Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=29 entry_id=29 connection_id=28 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.645491Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=30 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.645520Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=30 entry_id=30 connection_id=29 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.645577Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.645586Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=31 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.645610Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.645607Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=31 entry_id=31 connection_id=30 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.645672Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.645672Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=32 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.645695Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.645697Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=32 entry_id=32 connection_id=31 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.645777Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=33 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.645804Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=33 entry_id=33 connection_id=32 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.645898Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=34 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.645924Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=34 entry_id=34 connection_id=33 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.645990Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=35 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.646014Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=35 entry_id=35 connection_id=34 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.646072Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=36 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.646095Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=36 entry_id=36 connection_id=35 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.646261Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=37 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.646290Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=37 entry_id=37 connection_id=36 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.646355Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=38 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.646379Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=38 entry_id=38 connection_id=37 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.646440Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=39 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.646475Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=39 entry_id=39 connection_id=38 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.646540Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=40 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.646563Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=40 entry_id=40 connection_id=39 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.646626Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=41 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.646649Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=41 entry_id=41 connection_id=40 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.646710Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=42 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.646734Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=42 entry_id=42 connection_id=41 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.646803Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=43 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.646830Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=43 entry_id=43 connection_id=42 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.646927Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=44 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.646955Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=44 entry_id=44 connection_id=43 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.647026Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=45 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.647053Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=45 entry_id=45 connection_id=44 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.647131Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=46 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.647158Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=46 entry_id=46 connection_id=45 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.647230Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=47 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.647257Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=47 entry_id=47 connection_id=46 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.647333Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=48 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.647361Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=48 entry_id=48 connection_id=47 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.647428Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=49 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.647462Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=49 entry_id=49 connection_id=48 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.647632Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=50 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.647663Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=50 entry_id=50 connection_id=49 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.647743Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=51 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.647771Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=51 entry_id=51 connection_id=50 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.647840Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=52 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.625839Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 112, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" } [INFO] [stdout] 2026-07-09T10:52:39.640914Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.647931Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=112 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.639814Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=50 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 150, payload_length: 1200, recv_window_size: 256, timestamp: 127, sequence_number: 3, recv_next_sequence: 1 }, payload: b"111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" } [INFO] [stdout] 2026-07-09T10:52:39.647960Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=112 seq=2 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.647867Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=52 entry_id=52 connection_id=51 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.648000Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=112 remote_addr=127.0.0.1:9011 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 12, payload_length: 8, recv_window_size: 253, timestamp: 202, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.648050Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=53 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.648076Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=53 entry_id=53 connection_id=52 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.647997Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=50 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 150, payload_length: 1200, recv_window_size: 256, timestamp: 127, sequence_number: 4, recv_next_sequence: 1 }, payload: b"111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" } [INFO] [stdout] 2026-07-09T10:52:39.648137Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=54 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.648161Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=54 entry_id=54 connection_id=53 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.648119Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=50 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 150, payload_length: 1200, recv_window_size: 256, timestamp: 127, sequence_number: 5, recv_next_sequence: 1 }, payload: b"111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" } [INFO] [stdout] 2026-07-09T10:52:39.648221Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=55 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.648243Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=55 entry_id=55 connection_id=54 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.648300Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=56 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.648231Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=50 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 150, payload_length: 1200, recv_window_size: 256, timestamp: 127, sequence_number: 6, recv_next_sequence: 1 }, payload: b"111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" } [INFO] [stdout] 2026-07-09T10:52:39.648322Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=56 entry_id=56 connection_id=55 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.648047Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=112 frame=Push { header: ShortHeader { command: Push, connection_id: 112, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" } [INFO] [stdout] test timer::parallel::tests::test_zero_copy_batch_dispatcher ... ok [INFO] [stdout] 2026-07-09T10:52:39.648594Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.648630Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] test timer::parallel::tests::test_system_statistics ... ok [INFO] [stdout] 2026-07-09T10:52:39.648677Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.648703Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=0 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.648783Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=468 delay_ms=61000 [INFO] [stdout] 2026-07-09T10:52:39.648791Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.648812Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=1 delay_ms=61000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.648913Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=3 slot_index=56 delay_ms=62000 [INFO] [stdout] 2026-07-09T10:52:39.648947Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=3 entry_id=3 connection_id=2 delay_ms=62000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.648957Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.648988Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.649013Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=100 delay_ms=1000 [INFO] [stdout] 2026-07-09T10:52:39.649018Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=4 slot_index=156 delay_ms=63000 [INFO] [stdout] 2026-07-09T10:52:39.649037Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=1 delay_ms=1000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.649050Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=4 entry_id=4 connection_id=3 delay_ms=63000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.649102Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1854190210 [INFO] [stdout] 2026-07-09T10:52:39.649113Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=5 slot_index=256 delay_ms=64000 [INFO] [stdout] 2026-07-09T10:52:39.649115Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=110 delay_ms=1100 [INFO] [stdout] 2026-07-09T10:52:39.649129Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1854190210 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.649136Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=5 entry_id=5 connection_id=4 delay_ms=64000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.649137Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=1 delay_ms=1100 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.649199Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=6 slot_index=356 delay_ms=65000 [INFO] [stdout] 2026-07-09T10:52:39.649203Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=3 slot_index=120 delay_ms=1200 [INFO] [stdout] 2026-07-09T10:52:39.649223Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=6 entry_id=6 connection_id=5 delay_ms=65000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.649225Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=3 entry_id=3 connection_id=1 delay_ms=1200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.649285Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.649283Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=7 slot_index=456 delay_ms=66000 [INFO] [stdout] 2026-07-09T10:52:39.649301Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=3 [INFO] [stdout] 2026-07-09T10:52:39.649312Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=1 [INFO] [stdout] 2026-07-09T10:52:39.649306Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=7 entry_id=7 connection_id=6 delay_ms=66000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.649330Z DEBUG kestrel_protocol::timer::task::global: Cleared all timers for connection connection_id=1 count=3 [INFO] [stdout] 2026-07-09T10:52:39.649373Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=8 slot_index=44 delay_ms=67000 [INFO] [stdout] 2026-07-09T10:52:39.649403Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=8 entry_id=8 connection_id=7 delay_ms=67000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.649467Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=9 slot_index=144 delay_ms=68000 [INFO] [stdout] 2026-07-09T10:52:39.649491Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=9 entry_id=9 connection_id=8 delay_ms=68000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.649558Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=10 slot_index=244 delay_ms=69000 [INFO] [stdout] 2026-07-09T10:52:39.649585Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=10 entry_id=10 connection_id=9 delay_ms=69000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.649626Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=102 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.649667Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=11 slot_index=344 delay_ms=70000 [INFO] [stdout] 2026-07-09T10:52:39.649675Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.649695Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=11 entry_id=11 connection_id=10 delay_ms=70000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.649767Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=12 slot_index=444 delay_ms=71000 [INFO] [stdout] 2026-07-09T10:52:39.649792Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=12 entry_id=12 connection_id=11 delay_ms=71000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.649859Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=13 slot_index=32 delay_ms=72000 [INFO] [stdout] 2026-07-09T10:52:39.649915Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=13 entry_id=13 connection_id=12 delay_ms=72000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.650006Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=14 slot_index=132 delay_ms=73000 [INFO] [stdout] 2026-07-09T10:52:39.650033Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=14 entry_id=14 connection_id=13 delay_ms=73000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.650104Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=15 slot_index=232 delay_ms=74000 [INFO] [stdout] 2026-07-09T10:52:39.650137Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=15 entry_id=15 connection_id=14 delay_ms=74000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.650206Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=16 slot_index=332 delay_ms=75000 [INFO] [stdout] 2026-07-09T10:52:39.650236Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=16 entry_id=16 connection_id=15 delay_ms=75000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.650305Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=17 slot_index=432 delay_ms=76000 [INFO] [stdout] 2026-07-09T10:52:39.650333Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=17 entry_id=17 connection_id=16 delay_ms=76000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.639235Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=107 frame=Push { header: ShortHeader { command: Push, connection_id: 107, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06" } [INFO] [stdout] 2026-07-09T10:52:39.644518Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.644563Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.650407Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=18 slot_index=20 delay_ms=77000 [INFO] [stdout] 2026-07-09T10:52:39.650436Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=18 entry_id=18 connection_id=17 delay_ms=77000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.648414Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=57 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.648340Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=50 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 150, payload_length: 1200, recv_window_size: 256, timestamp: 127, sequence_number: 7, recv_next_sequence: 1 }, payload: b"111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" } [INFO] [stdout] 2026-07-09T10:52:39.633684Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=123 frame=Push { header: ShortHeader { command: Push, connection_id: 123, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16" } [INFO] [stdout] 2026-07-09T10:52:39.650510Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=19 slot_index=120 delay_ms=78000 [INFO] [stdout] 2026-07-09T10:52:39.650539Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=19 entry_id=19 connection_id=18 delay_ms=78000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.650606Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=20 slot_index=220 delay_ms=79000 [INFO] [stdout] 2026-07-09T10:52:39.650631Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=20 entry_id=20 connection_id=19 delay_ms=79000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.650399Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 107, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06" } [INFO] [stdout] 2026-07-09T10:52:39.650703Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=21 slot_index=320 delay_ms=80000 [INFO] [stdout] 2026-07-09T10:52:39.650696Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=107 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.650746Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=107 seq=2 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.650790Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=102 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.650494Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 123, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16" } [INFO] [stdout] 2026-07-09T10:52:39.650801Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=107 remote_addr=127.0.0.1:9006 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 7, payload_length: 8, recv_window_size: 253, timestamp: 207, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] test timer::task::tests::tests::test_clear_connection_timers ... ok [INFO] [stdout] 2026-07-09T10:52:39.650832Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=123 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.650854Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=123 seq=3 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.650933Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.650969Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=0 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.651020Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.651050Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=50 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 150, payload_length: 640, recv_window_size: 256, timestamp: 127, sequence_number: 8, recv_next_sequence: 1 }, payload: b"1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" } [INFO] [stdout] 2026-07-09T10:52:39.651129Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=50 state=Established [INFO] [stdout] 2026-07-09T10:52:39.651135Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.651161Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.650848Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=107 frame=Push { header: ShortHeader { command: Push, connection_id: 107, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06" } [INFO] [stdout] 2026-07-09T10:52:39.651184Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.651205Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=187 slots_to_advance=18 max_advance=18 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.651205Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=1 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.651282Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=468 delay_ms=61000 [INFO] [stdout] 2026-07-09T10:52:39.651303Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=1 delay_ms=61000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.651316Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 104, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.651340Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 104, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.651360Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=1 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.651370Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=3 slot_index=56 delay_ms=62000 [INFO] [stdout] 2026-07-09T10:52:39.651381Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=1 [INFO] [stdout] 2026-07-09T10:52:39.651395Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=3 entry_id=3 connection_id=1 delay_ms=62000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.651398Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=1 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.651440Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.651460Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.651481Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=208 srtt_ms=208 rttvar_ms=104 rto_ms=626 [INFO] [stdout] 2026-07-09T10:52:39.651196Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 107, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06" } [INFO] [stdout] 2026-07-09T10:52:39.651481Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=4 slot_index=156 delay_ms=63000 [INFO] [stdout] 2026-07-09T10:52:39.652977Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=4 entry_id=4 connection_id=1 delay_ms=63000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.653071Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=5 slot_index=256 delay_ms=64000 [INFO] [stdout] 2026-07-09T10:52:39.653095Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=5 entry_id=5 connection_id=1 delay_ms=64000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.653165Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=6 slot_index=344 delay_ms=70000 [INFO] [stdout] 2026-07-09T10:52:39.653189Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=6 entry_id=6 connection_id=2 delay_ms=70000 event_type=RetransmissionTimeout [INFO] [stdout] 2026-07-09T10:52:39.653257Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=7 slot_index=444 delay_ms=71000 [INFO] [stdout] 2026-07-09T10:52:39.653278Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=7 entry_id=7 connection_id=2 delay_ms=71000 event_type=RetransmissionTimeout [INFO] [stdout] 2026-07-09T10:52:39.653333Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=8 slot_index=32 delay_ms=72000 [INFO] [stdout] 2026-07-09T10:52:39.653356Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=8 entry_id=8 connection_id=2 delay_ms=72000 event_type=RetransmissionTimeout [INFO] [stdout] 2026-07-09T10:52:39.653465Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=1 [INFO] [stdout] 2026-07-09T10:52:39.653483Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-07-09T10:52:39.653494Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=3 [INFO] [stdout] 2026-07-09T10:52:39.653504Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=4 [INFO] [stdout] 2026-07-09T10:52:39.653514Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=5 [INFO] [stdout] 2026-07-09T10:52:39.653525Z DEBUG kestrel_protocol::timer::task::global: Cleared all timers for connection connection_id=1 count=5 [INFO] [stdout] 2026-07-09T10:52:39.653702Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=8 [INFO] [stdout] 2026-07-09T10:52:39.653719Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=7 [INFO] [stdout] 2026-07-09T10:52:39.653731Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=6 [INFO] [stdout] 2026-07-09T10:52:39.653740Z DEBUG kestrel_protocol::timer::task::global: Cleared all timers for connection connection_id=2 count=3 [INFO] [stdout] 2026-07-09T10:52:39.653791Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=9 slot_index=10 delay_ms=100 [INFO] [stdout] 2026-07-09T10:52:39.653812Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=9 entry_id=9 connection_id=1 delay_ms=100 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.655302Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=807311785 [INFO] [stdout] 2026-07-09T10:52:39.655348Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=807311785 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.655904Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=101 slots_to_advance=10 max_advance=10 current_slot=10 [INFO] [stdout] 2026-07-09T10:52:39.657095Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=102 slots_to_advance=10 max_advance=10 current_slot=10 [INFO] [stdout] 2026-07-09T10:52:39.660440Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.660512Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.661681Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.661713Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.651498Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.651508Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=107 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.665010Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2572252030 [INFO] [stdout] 2026-07-09T10:52:39.665010Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.665033Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=107 seq=3 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.665052Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2572252030 state=FinWait [INFO] [stdout] 2026-07-09T10:52:39.665060Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 254, timestamp: 105, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.665092Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=107 remote_addr=127.0.0.1:9006 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 7, payload_length: 8, recv_window_size: 252, timestamp: 221, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.665103Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 254, timestamp: 105, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.665117Z  INFO kestrel_protocol::socket::tests::rebind: ⚠️ 测试跳过 - rebind后现有连接预期会断开,因为传输层已切换到新地址 [INFO] [stdout] 2026-07-09T10:52:39.665128Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=1 recv_next_seq=0 recv_window=254 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.665148Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=1 [INFO] [stdout] 2026-07-09T10:52:39.665165Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=1 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=254 [INFO] [stdout] 2026-07-09T10:52:39.665177Z TRACE mio::poll: registering event source with poller: token=Token(136413194570240), interests=READABLE | WRITABLE [INFO] [stdout] 2026-07-09T10:52:39.665202Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-07-09T10:52:39.665221Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.665241Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=222 srtt_ms=210 rttvar_ms=81 rto_ms=537 [INFO] [stdout] 2026-07-09T10:52:39.665258Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.665270Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.665290Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 253, timestamp: 107, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.665313Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 253, timestamp: 107, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.665333Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=1 recv_next_seq=0 recv_window=253 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.665351Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=1 [INFO] [stdout] 2026-07-09T10:52:39.665363Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=1 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=253 [INFO] [stdout] 2026-07-09T10:52:39.665385Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.665387Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-07-09T10:52:39.665397Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-07-09T10:52:39.665408Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-07-09T10:52:39.665400Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.665418Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=222 srtt_ms=211 rttvar_ms=64 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.665424Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:50247) [INFO] [stdout] 2026-07-09T10:52:39.665140Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=107 frame=Push { header: ShortHeader { command: Push, connection_id: 107, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06" } [INFO] [stdout] 2026-07-09T10:52:39.665434Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.665447Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.665476Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 252, timestamp: 107, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.665499Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 252, timestamp: 107, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.665519Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=1 recv_next_seq=0 recv_window=252 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.665534Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=1 [INFO] [stdout] 2026-07-09T10:52:39.665545Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=1 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=252 [INFO] [stdout] 2026-07-09T10:52:39.665568Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] 2026-07-09T10:52:39.665587Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-07-09T10:52:39.665583Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.665600Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=222 srtt_ms=213 rttvar_ms=50 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.665610Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-07-09T10:52:39.665616Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.665627Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.665645Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 251, timestamp: 110, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.665656Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.665668Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 251, timestamp: 110, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.665690Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=1 recv_next_seq=0 recv_window=251 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.665707Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=1 [INFO] [stdout] 2026-07-09T10:52:39.665705Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=3845860860 [INFO] [stdout] 2026-07-09T10:52:39.665720Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=1 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=251 [INFO] [stdout] 2026-07-09T10:52:39.665738Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=3845860860 remote_addr=127.0.0.1:59909 [INFO] [stdout] 2026-07-09T10:52:39.665745Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-07-09T10:52:39.665455Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 107, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06" } [INFO] [stdout] 2026-07-09T10:52:39.665759Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.665765Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=107 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.665778Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=223 srtt_ms=214 rttvar_ms=40 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.665785Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=107 seq=4 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.665795Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.665805Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.665805Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.665812Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=107 remote_addr=127.0.0.1:9006 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 7, payload_length: 8, recv_window_size: 251, timestamp: 222, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.665822Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 250, timestamp: 111, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.665835Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=3845860860 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.665843Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 250, timestamp: 111, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.651555Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.665924Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=1 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.665952Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-07-09T10:52:39.665991Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=21 slots_to_advance=2 max_advance=2 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.666014Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=3845860860 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.666048Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=3 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.666070Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=3 entry_id=3 connection_id=2 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.666129Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=3845860860 addr=127.0.0.1:59909 [INFO] [stdout] 2026-07-09T10:52:39.666165Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=3845860860 addr=127.0.0.1:59909 [INFO] [stdout] 2026-07-09T10:52:39.651604Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:33087 frame_count=1 bytes=27 [INFO] [stdout] 2026-07-09T10:52:39.651640Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=57 entry_id=57 connection_id=56 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.665906Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 112, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" } [INFO] [stdout] 2026-07-09T10:52:39.666216Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=112 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.666223Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for outbound connection addr=127.0.0.1:59909 cid=3845860860 [INFO] [stdout] 2026-07-09T10:52:39.666238Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=112 seq=3 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.666247Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=3845860860 remote_addr=127.0.0.1:59909 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 3845860860 } } [INFO] [stdout] 2026-07-09T10:52:39.666264Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=112 remote_addr=127.0.0.1:9011 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 12, payload_length: 8, recv_window_size: 252, timestamp: 220, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.666277Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3845860860 state=Connecting [INFO] [stdout] 2026-07-09T10:52:39.666284Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=58 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.666309Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:59909 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.666317Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=58 entry_id=58 connection_id=57 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.666318Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:49785 frame_count=1 bytes=27 [INFO] [stdout] 2026-07-09T10:52:39.666347Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:59909 frame_count=1 bytes=10 [INFO] [stdout] 2026-07-09T10:52:39.666375Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=59 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.666397Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=59 entry_id=59 connection_id=58 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.666436Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:50247 frame_count=1 bytes=10 [INFO] [stdout] 2026-07-09T10:52:39.666454Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=60 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.666476Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=60 entry_id=60 connection_id=59 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.666489Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:50247 frame_count=1 [INFO] [stdout] 2026-07-09T10:52:39.666506Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:50247 [INFO] [stdout] 2026-07-09T10:52:39.666534Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=61 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.666555Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=61 entry_id=61 connection_id=60 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.666571Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=3824887537 [INFO] [stdout] 2026-07-09T10:52:39.666299Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=112 frame=Push { header: ShortHeader { command: Push, connection_id: 112, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" } [INFO] [stdout] 2026-07-09T10:52:39.666596Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=3824887537 remote_addr=127.0.0.1:50247 [INFO] [stdout] 2026-07-09T10:52:39.666606Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=62 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.666626Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=62 entry_id=62 connection_id=61 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.666648Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=510 delay_ms=5000 [INFO] [stdout] 2026-07-09T10:52:39.666670Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=3824887537 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.666675Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=63 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.666695Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=63 entry_id=63 connection_id=62 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.666722Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=3824887537 addr=127.0.0.1:50247 [INFO] [stdout] 2026-07-09T10:52:39.666744Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=3824887537 addr=127.0.0.1:50247 [INFO] [stdout] 2026-07-09T10:52:39.666743Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=64 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.666763Z  WARN kestrel_protocol::socket::event_loop::session_coordinator: Listener channel full or closed, dropping new connection addr=127.0.0.1:50247 cid=3824887537 error=channel closed [INFO] [stdout] 2026-07-09T10:52:39.666763Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=64 entry_id=64 connection_id=63 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.666784Z DEBUG kestrel_protocol::socket::event_loop::routing: 移除连接的地址映射 | Removed address mapping for connection cid=3824887537 addr=127.0.0.1:50247 [INFO] [stdout] 2026-07-09T10:52:39.666800Z DEBUG kestrel_protocol::socket::event_loop::routing: 清理连接状态完成,CID现在处于 draining 状态 | Cleaned up connection state. CID is now in draining state. cid=3824887537 [INFO] [stdout] 2026-07-09T10:52:39.666818Z  WARN kestrel_protocol::socket::event_loop: Failed to handle new connection addr=127.0.0.1:50247 error=Internal channel is broken [INFO] [stdout] 2026-07-09T10:52:39.666824Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=65 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.666544Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=107 frame=Push { header: ShortHeader { command: Push, connection_id: 107, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06" } [INFO] [stdout] 2026-07-09T10:52:39.666847Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:50247 cid=3824887537 [INFO] [stdout] 2026-07-09T10:52:39.651646Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=21 entry_id=21 connection_id=20 delay_ms=80000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.666945Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3853114792 [INFO] [stdout] 2026-07-09T10:52:39.666961Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=22 slot_index=420 delay_ms=81000 [INFO] [stdout] 2026-07-09T10:52:39.666976Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3853114792 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.666989Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=22 entry_id=22 connection_id=21 delay_ms=81000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.667028Z  INFO kestrel_protocol::socket::tests::rebind: ✅ rebind后可以建立新连接 [INFO] [stdout] 2026-07-09T10:52:39.667053Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=23 slot_index=8 delay_ms=82000 [INFO] [stdout] 2026-07-09T10:52:39.667077Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=23 entry_id=23 connection_id=22 delay_ms=82000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.667131Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=24 slot_index=108 delay_ms=83000 [INFO] [stdout] 2026-07-09T10:52:39.667152Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=24 entry_id=24 connection_id=23 delay_ms=83000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.666867Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 107, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06" } [INFO] [stdout] 2026-07-09T10:52:39.667203Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-07-09T10:52:39.667205Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=25 slot_index=208 delay_ms=84000 [INFO] [stdout] 2026-07-09T10:52:39.672944Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=107 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.672984Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=107 seq=5 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.673001Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=25 entry_id=25 connection_id=24 delay_ms=84000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.673024Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2572252030 [INFO] [stdout] 2026-07-09T10:52:39.673028Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=107 remote_addr=127.0.0.1:9006 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 7, payload_length: 8, recv_window_size: 250, timestamp: 229, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.673111Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=26 slot_index=308 delay_ms=85000 [INFO] [stdout] 2026-07-09T10:52:39.673135Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=26 entry_id=26 connection_id=25 delay_ms=85000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.673141Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-07-09T10:52:39.673192Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=27 slot_index=408 delay_ms=86000 [INFO] [stdout] 2026-07-09T10:52:39.673212Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=27 entry_id=27 connection_id=26 delay_ms=86000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.673262Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=28 slot_index=508 delay_ms=87000 [INFO] [stdout] 2026-07-09T10:52:39.673281Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=28 entry_id=28 connection_id=27 delay_ms=87000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.673352Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=29 slot_index=96 delay_ms=88000 [INFO] [stdout] 2026-07-09T10:52:39.673083Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=107 frame=Push { header: ShortHeader { command: Push, connection_id: 107, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06" } [INFO] [stdout] 2026-07-09T10:52:39.673410Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=29 entry_id=29 connection_id=28 delay_ms=88000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.673479Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=30 slot_index=196 delay_ms=89000 [INFO] [stdout] 2026-07-09T10:52:39.673502Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=30 entry_id=30 connection_id=29 delay_ms=89000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.673551Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=31 slot_index=296 delay_ms=90000 [INFO] [stdout] 2026-07-09T10:52:39.673571Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=31 entry_id=31 connection_id=30 delay_ms=90000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.673619Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=32 slot_index=396 delay_ms=91000 [INFO] [stdout] 2026-07-09T10:52:39.673639Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=32 entry_id=32 connection_id=31 delay_ms=91000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.673692Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=33 slot_index=496 delay_ms=92000 [INFO] [stdout] 2026-07-09T10:52:39.673410Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 107, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06" } [INFO] [stdout] 2026-07-09T10:52:39.673712Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=33 entry_id=33 connection_id=32 delay_ms=92000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.673729Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=107 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.673750Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=107 seq=6 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.673777Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=34 slot_index=84 delay_ms=93000 [INFO] [stdout] 2026-07-09T10:52:39.673777Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=107 remote_addr=127.0.0.1:9006 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 7, payload_length: 8, recv_window_size: 249, timestamp: 230, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.673799Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=34 entry_id=34 connection_id=33 delay_ms=93000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.666845Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=65 entry_id=65 connection_id=64 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.673985Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=66 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.674016Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=66 entry_id=66 connection_id=65 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.674087Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=67 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.674114Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=67 entry_id=67 connection_id=66 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.674187Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=68 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.674216Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=68 entry_id=68 connection_id=67 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.674294Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=69 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.674323Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=69 entry_id=69 connection_id=68 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.674398Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=70 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.674427Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=70 entry_id=70 connection_id=69 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.674506Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=71 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.674535Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=71 entry_id=71 connection_id=70 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.674613Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=72 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.674642Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=72 entry_id=72 connection_id=71 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.674719Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=73 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.674748Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=73 entry_id=73 connection_id=72 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.674811Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=74 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.674833Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=74 entry_id=74 connection_id=73 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.667270Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=4 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.674921Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=4 entry_id=4 connection_id=3 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.673810Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=107 frame=Push { header: ShortHeader { command: Push, connection_id: 107, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06" } [INFO] [stdout] 2026-07-09T10:52:39.667312Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=3845860860 [INFO] [stdout] 2026-07-09T10:52:39.651680Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=123 remote_addr=127.0.0.1:9022 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 23, payload_length: 8, recv_window_size: 252, timestamp: 196, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.675029Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=5 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.675051Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=5 entry_id=5 connection_id=4 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.667480Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-07-09T10:52:39.675129Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=6 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.675152Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=6 entry_id=6 connection_id=5 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.673861Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=35 slot_index=184 delay_ms=94000 [INFO] [stdout] 2026-07-09T10:52:39.675232Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=35 entry_id=35 connection_id=34 delay_ms=94000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.675299Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=36 slot_index=284 delay_ms=95000 [INFO] [stdout] 2026-07-09T10:52:39.675322Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=36 entry_id=36 connection_id=35 delay_ms=95000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.675321Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=7 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.675352Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=7 entry_id=7 connection_id=6 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.675384Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=37 slot_index=384 delay_ms=96000 [INFO] [stdout] 2026-07-09T10:52:39.675001Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 107, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06" } [INFO] [stdout] 2026-07-09T10:52:39.675407Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=37 entry_id=37 connection_id=36 delay_ms=96000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.675439Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=107 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.675458Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=75 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.675470Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=107 seq=7 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.675478Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=75 entry_id=75 connection_id=74 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.675475Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=8 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.675501Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=107 remote_addr=127.0.0.1:9006 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 7, payload_length: 8, recv_window_size: 248, timestamp: 232, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.675513Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=8 entry_id=8 connection_id=7 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.675545Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=76 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.675566Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=76 entry_id=76 connection_id=75 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.675621Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=77 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.675626Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=9 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.675643Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=77 entry_id=77 connection_id=76 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.675654Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=9 entry_id=9 connection_id=8 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.675693Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=78 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.675537Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=107 frame=Push { header: ShortHeader { command: Push, connection_id: 107, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06" } [INFO] [stdout] 2026-07-09T10:52:39.675713Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=78 entry_id=78 connection_id=77 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.675769Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=79 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.675767Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=10 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.675789Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=79 entry_id=79 connection_id=78 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.675797Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=10 entry_id=10 connection_id=9 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.675837Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=80 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.675857Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=80 entry_id=80 connection_id=79 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] test core::endpoint::timing::tests::test_timer_cancellation ... ok [INFO] [stdout] 2026-07-09T10:52:39.670796Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=100 slots_to_advance=10 max_advance=10 current_slot=10 [INFO] [stdout] 2026-07-09T10:52:39.676193Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=104 slots_to_advance=10 max_advance=10 current_slot=10 [INFO] [stdout] 2026-07-09T10:52:39.675052Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=123 frame=Push { header: ShortHeader { command: Push, connection_id: 123, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16" } [INFO] [stdout] 2026-07-09T10:52:39.675941Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=11 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.676285Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=11 entry_id=11 connection_id=10 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.667508Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3824887537 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.675961Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=38 slot_index=484 delay_ms=97000 [INFO] [stdout] 2026-07-09T10:52:39.676366Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=38 entry_id=38 connection_id=37 delay_ms=97000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.676371Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=3824887537 [INFO] [stdout] 2026-07-09T10:52:39.676440Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=39 slot_index=72 delay_ms=98000 [INFO] [stdout] 2026-07-09T10:52:39.676464Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=39 entry_id=39 connection_id=38 delay_ms=98000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.676533Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=40 slot_index=172 delay_ms=99000 [INFO] [stdout] 2026-07-09T10:52:39.667638Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.676555Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=40 entry_id=40 connection_id=39 delay_ms=99000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.676606Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=41 slot_index=272 delay_ms=100000 [INFO] [stdout] 2026-07-09T10:52:39.676626Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=41 entry_id=41 connection_id=40 delay_ms=100000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.676677Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=42 slot_index=372 delay_ms=101000 [INFO] [stdout] 2026-07-09T10:52:39.676698Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=42 entry_id=42 connection_id=41 delay_ms=101000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.676798Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=12 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.676825Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=12 entry_id=12 connection_id=11 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.675717Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 107, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06" } [INFO] [stdout] 2026-07-09T10:52:39.676922Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=107 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-07-09T10:52:39.676947Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=107 seq=8 payload_len=640 [INFO] [stdout] 2026-07-09T10:52:39.676970Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=13 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.676980Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=107 remote_addr=127.0.0.1:9006 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 7, payload_length: 8, recv_window_size: 247, timestamp: 233, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.676994Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=13 entry_id=13 connection_id=12 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.677019Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=107 [INFO] [stdout] 2026-07-09T10:52:39.677042Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=107 count=9 [INFO] [stdout] 2026-07-09T10:52:39.677079Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=107 state=Established [INFO] [stdout] 2026-07-09T10:52:39.677096Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=14 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.677120Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=14 entry_id=14 connection_id=13 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.677187Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=108 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 8 } } [INFO] [stdout] 2026-07-09T10:52:39.677206Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=15 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.677214Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 8 } } [INFO] [stdout] 2026-07-09T10:52:39.677234Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=108 peer_cid=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.677250Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=108 state=Established [INFO] [stdout] 2026-07-09T10:52:39.677248Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=15 entry_id=15 connection_id=14 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.677267Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=108 frame=Ack { header: ShortHeader { command: Ack, connection_id: 108, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.677289Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 108, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.677314Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=108 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.677327Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=43 slot_index=472 delay_ms=102000 [INFO] [stdout] 2026-07-09T10:52:39.677337Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=108 [INFO] [stdout] 2026-07-09T10:52:39.677351Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=43 entry_id=43 connection_id=42 delay_ms=102000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.677353Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=108 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.676257Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 123, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16" } [INFO] [stdout] 2026-07-09T10:52:39.677392Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.677414Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=123 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.677422Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=44 slot_index=60 delay_ms=103000 [INFO] [stdout] 2026-07-09T10:52:39.677439Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=123 seq=4 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.677472Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=123 remote_addr=127.0.0.1:9022 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 23, payload_length: 8, recv_window_size: 251, timestamp: 221, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.677484Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=16 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.677510Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=16 entry_id=16 connection_id=15 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.677584Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=17 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.677606Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=17 entry_id=17 connection_id=16 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.677634Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.677702Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=18 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.677725Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=18 entry_id=18 connection_id=17 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.677513Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=123 frame=Push { header: ShortHeader { command: Push, connection_id: 123, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16" } [INFO] [stdout] 2026-07-09T10:52:39.677780Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=19 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.677793Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.677800Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=19 entry_id=19 connection_id=18 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.677827Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.677844Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=20 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.677863Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=20 entry_id=20 connection_id=19 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.677897Z TRACE kestrel_protocol::timer::wheel::core: Batch cancelled timers batch_size=3 cancelled_count=0 [INFO] [stdout] 2026-07-09T10:52:39.677933Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=44 entry_id=44 connection_id=43 delay_ms=103000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.677924Z TRACE kestrel_protocol::timer::task::global: Batch cancelled timers using wheel batch API batch_size=3 cancelled_count=0 wheel_cancelled_count=0 [INFO] [stdout] 2026-07-09T10:52:39.678037Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=45 slot_index=160 delay_ms=104000 [INFO] [stdout] 2026-07-09T10:52:39.678064Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=45 entry_id=45 connection_id=44 delay_ms=104000 event_type=IdleTimeout [INFO] [stdout] test socket::tests::rebind::test_rebind_with_existing_connections ... ok [INFO] [stdout] 2026-07-09T10:52:39.678111Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.678135Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=46 slot_index=260 delay_ms=105000 [INFO] [stdout] 2026-07-09T10:52:39.678138Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=0 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.678160Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=46 entry_id=46 connection_id=45 delay_ms=105000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.678217Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=47 slot_index=360 delay_ms=106000 [INFO] [stdout] 2026-07-09T10:52:39.678222Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.678239Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=47 entry_id=47 connection_id=46 delay_ms=106000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.678250Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=1 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.678257Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.678288Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=48 slot_index=460 delay_ms=107000 [INFO] [stdout] 2026-07-09T10:52:39.678323Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=3 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.678337Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=21 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.678350Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=3 entry_id=3 connection_id=2 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.678355Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=21 entry_id=21 connection_id=20 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.677802Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 123, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16" } [INFO] [stdout] 2026-07-09T10:52:39.678374Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.678383Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=123 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.678401Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.678406Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=123 seq=5 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.678419Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=22 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.678440Z TRACE kestrel_protocol::timer::wheel::core: Batch cancelled timers batch_size=5 cancelled_count=3 [INFO] [stdout] 2026-07-09T10:52:39.678436Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=123 remote_addr=127.0.0.1:9022 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 23, payload_length: 8, recv_window_size: 250, timestamp: 222, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.678444Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=22 entry_id=22 connection_id=21 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.678491Z TRACE kestrel_protocol::timer::task::global: Batch cancelled timers using wheel batch API batch_size=5 cancelled_count=3 wheel_cancelled_count=3 [INFO] [stdout] 2026-07-09T10:52:39.678498Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.678535Z  INFO kestrel_protocol::timer::task::global: Received shutdown command [INFO] [stdout] 2026-07-09T10:52:39.678548Z  INFO kestrel_protocol::timer::task::global: Global timer task shutdown completed [INFO] [stdout] 2026-07-09T10:52:39.678552Z DEBUG kestrel_protocol::core::reliability::retransmission::sack_manager: RTO retransmission triggered - reconstructing frame with fresh header seq=0 frame_type=Push updated_cid=2 [INFO] [stdout] 2026-07-09T10:52:39.678579Z DEBUG kestrel_protocol::core::reliability::retransmission: Retransmission timeout detected by unified manager with frame reconstruction retx_count=1 current_peer_cid=2 [INFO] [stdout] 2026-07-09T10:52:39.678592Z DEBUG kestrel_protocol::core::reliability::congestion::vegas: Congestive loss detected! New ssthresh: 16, New cwnd: 16 [INFO] [stdout] 2026-07-09T10:52:39.678601Z DEBUG kestrel_protocol::core::reliability: Congestion window reduced due to retransmissions old_cwnd=32 new_cwnd=16 count=1 [INFO] [stdout] 2026-07-09T10:52:39.678608Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.678615Z DEBUG kestrel_protocol::core::reliability::retransmission::rtt: RTO backoff old_rto_ms=200 new_rto_ms=400 [INFO] [stdout] 2026-07-09T10:52:39.678634Z  INFO kestrel_protocol::timer::task::global: Received shutdown command [INFO] [stdout] 2026-07-09T10:52:39.678644Z  INFO kestrel_protocol::timer::task::global: Global timer task shutdown completed [INFO] [stdout] 2026-07-09T10:52:39.678632Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 29, recv_window_size: 256, timestamp: 208, sequence_number: 0, recv_next_sequence: 1 }, payload: b"hello, this is a test message" } [INFO] [stdout] 2026-07-09T10:52:39.678667Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.678684Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.678473Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=123 frame=Push { header: ShortHeader { command: Push, connection_id: 123, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16" } [INFO] [stdout] 2026-07-09T10:52:39.678754Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 29, recv_window_size: 256, timestamp: 208, sequence_number: 0, recv_next_sequence: 1 }, payload: b"hello, this is a test message" } [INFO] [stdout] test timer::task::tests::tests::test_global_timer_task_error_recovery ... ok [INFO] [stdout] 2026-07-09T10:52:39.678791Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2, payload_length: 29, recv_window_size: 256, timestamp: 208, sequence_number: 0, recv_next_sequence: 1 }, payload: b"hello, this is a test message" } [INFO] [stdout] 2026-07-09T10:52:39.678815Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=0 payload_len=29 state=Established [INFO] [stdout] 2026-07-09T10:52:39.678835Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=0 payload_len=29 [INFO] [stdout] 2026-07-09T10:52:39.678941Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=23 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.678977Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=23 entry_id=23 connection_id=22 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.678734Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 123, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16" } [INFO] [stdout] 2026-07-09T10:52:39.679021Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=123 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.678869Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 206, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.679038Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=123 seq=6 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.679063Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.679064Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=123 remote_addr=127.0.0.1:9022 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 23, payload_length: 8, recv_window_size: 249, timestamp: 223, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.679078Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2 count=1 [INFO] [stdout] 2026-07-09T10:52:39.679117Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.679157Z  INFO kestrel_protocol::core::tests::retransmission: [Server] Successfully received message after RTO. [INFO] [stdout] 2026-07-09T10:52:39.677419Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.679176Z  INFO kestrel_protocol::core::tests::retransmission: [Server] Sending response... [INFO] [stdout] 2026-07-09T10:52:39.679182Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=232 srtt_ms=232 rttvar_ms=116 rto_ms=697 [INFO] [stdout] 2026-07-09T10:52:39.679203Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.667602Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.679215Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.679269Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.679296Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=400 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.679329Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.679095Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=123 frame=Push { header: ShortHeader { command: Push, connection_id: 123, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16" } [INFO] [stdout] 2026-07-09T10:52:39.679347Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=500 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.679496Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=3 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.679237Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=108 frame=Push { header: ShortHeader { command: Push, connection_id: 108, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07" } [INFO] [stdout] 2026-07-09T10:52:39.679520Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=3 entry_id=3 connection_id=600 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.679569Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=4 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.679589Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=4 entry_id=4 connection_id=700 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.679620Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=5 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.679636Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=5 entry_id=5 connection_id=800 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.679676Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=6 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.679692Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=6 entry_id=6 connection_id=900 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.679731Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=7 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.679748Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=7 entry_id=7 connection_id=1000 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.679787Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=8 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.679530Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 108, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07" } [INFO] [stdout] 2026-07-09T10:52:39.679814Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=8 entry_id=8 connection_id=1100 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.679829Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=108 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.679850Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=108 seq=0 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.679854Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=9 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.679890Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=9 entry_id=9 connection_id=1200 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.679936Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=10 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.679954Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=10 entry_id=10 connection_id=1300 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.679979Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=81 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.679996Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=11 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.680014Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=11 entry_id=11 connection_id=1400 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.680019Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=81 entry_id=81 connection_id=80 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.680041Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=12 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.680057Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=12 entry_id=12 connection_id=1500 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.680085Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=13 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.680101Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=13 entry_id=13 connection_id=1600 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.680100Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=82 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.680129Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=14 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.680129Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=82 entry_id=82 connection_id=81 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.665861Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=1 recv_next_seq=0 recv_window=250 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.680144Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=14 entry_id=14 connection_id=1700 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.680166Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=1 [INFO] [stdout] 2026-07-09T10:52:39.680180Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=15 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.680188Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=1 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=250 [INFO] [stdout] 2026-07-09T10:52:39.680203Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=83 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.680212Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=15 entry_id=15 connection_id=1800 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.680221Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=5 [INFO] [stdout] 2026-07-09T10:52:39.680230Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=83 entry_id=83 connection_id=82 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.680236Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=16 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.680238Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.680253Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=16 entry_id=16 connection_id=1900 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.680255Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=223 srtt_ms=215 rttvar_ms=32 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.680272Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.680282Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=37 new_cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.680286Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=17 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.680301Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=84 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.680303Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 249, timestamp: 112, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.680302Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=17 entry_id=17 connection_id=2000 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.680327Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=84 entry_id=84 connection_id=83 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.680329Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 249, timestamp: 112, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.680339Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=18 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.680351Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=1 recv_next_seq=0 recv_window=249 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.680355Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=18 entry_id=18 connection_id=2100 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.680367Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=1 [INFO] [stdout] 2026-07-09T10:52:39.680378Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=1 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=249 [INFO] [stdout] 2026-07-09T10:52:39.680385Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=19 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.680399Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=6 [INFO] [stdout] 2026-07-09T10:52:39.680401Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=19 entry_id=19 connection_id=2200 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.680402Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=85 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.680411Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.680429Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=237 srtt_ms=218 rttvar_ms=30 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.680428Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=85 entry_id=85 connection_id=84 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.680445Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=39 [INFO] [stdout] 2026-07-09T10:52:39.680441Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=20 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.680455Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=38 new_cwnd=39 [INFO] [stdout] 2026-07-09T10:52:39.680462Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=20 entry_id=20 connection_id=2300 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.680471Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 248, timestamp: 118, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.680492Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 248, timestamp: 118, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.680500Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=21 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.680500Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=86 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.680511Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=1 recv_next_seq=0 recv_window=248 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.680520Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=21 entry_id=21 connection_id=2400 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.680528Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=1 [INFO] [stdout] 2026-07-09T10:52:39.680527Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=86 entry_id=86 connection_id=85 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.680541Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=1 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=248 [INFO] [stdout] 2026-07-09T10:52:39.680563Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=7 [INFO] [stdout] 2026-07-09T10:52:39.680561Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=22 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.680577Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.680582Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=22 entry_id=22 connection_id=2500 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.680597Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=237 srtt_ms=220 rttvar_ms=27 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.680602Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=87 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.680612Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=40 [INFO] [stdout] 2026-07-09T10:52:39.680623Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=39 new_cwnd=40 [INFO] [stdout] 2026-07-09T10:52:39.680622Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=23 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.680629Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=87 entry_id=87 connection_id=86 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.680639Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 247, timestamp: 119, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.680642Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=23 entry_id=23 connection_id=2600 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.680660Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 247, timestamp: 119, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.680678Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=24 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.680678Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=1 recv_next_seq=0 recv_window=247 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.680695Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=1 [INFO] [stdout] 2026-07-09T10:52:39.680695Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=24 entry_id=24 connection_id=2700 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.680707Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=1 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=247 [INFO] [stdout] 2026-07-09T10:52:39.680703Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=88 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.680729Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=8 [INFO] [stdout] 2026-07-09T10:52:39.680730Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=25 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.680732Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=88 entry_id=88 connection_id=87 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.680743Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.680750Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=25 entry_id=25 connection_id=2800 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.680761Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=238 srtt_ms=222 rttvar_ms=24 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.680776Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=41 [INFO] [stdout] 2026-07-09T10:52:39.680786Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=40 new_cwnd=41 [INFO] [stdout] 2026-07-09T10:52:39.680788Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=26 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.680802Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.680802Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=89 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.680807Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=26 entry_id=26 connection_id=2900 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.680820Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.680835Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=27 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.680831Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=89 entry_id=89 connection_id=88 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.680899Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=48 entry_id=48 connection_id=47 delay_ms=107000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.681006Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=24 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.681038Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=24 entry_id=24 connection_id=23 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.681111Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=216 slots_to_advance=21 max_advance=21 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.681166Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=215 slots_to_advance=21 max_advance=21 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.681165Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=49 slot_index=48 delay_ms=108000 [INFO] [stdout] 2026-07-09T10:52:39.681193Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=49 entry_id=49 connection_id=48 delay_ms=108000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.681203Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=215 slots_to_advance=21 max_advance=21 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.681255Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=50 slot_index=148 delay_ms=109000 [INFO] [stdout] 2026-07-09T10:52:39.681276Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=50 entry_id=50 connection_id=49 delay_ms=109000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.681326Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=51 slot_index=248 delay_ms=110000 [INFO] [stdout] 2026-07-09T10:52:39.681345Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=214 slots_to_advance=21 max_advance=21 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.681346Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=51 entry_id=51 connection_id=50 delay_ms=110000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.681390Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=213 slots_to_advance=21 max_advance=21 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.681400Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=52 slot_index=348 delay_ms=111000 [INFO] [stdout] 2026-07-09T10:52:39.681420Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=52 entry_id=52 connection_id=51 delay_ms=111000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.681429Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=214 slots_to_advance=21 max_advance=21 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.681469Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=212 slots_to_advance=21 max_advance=21 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.681474Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=53 slot_index=448 delay_ms=112000 [INFO] [stdout] 2026-07-09T10:52:39.681496Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=53 entry_id=53 connection_id=52 delay_ms=112000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.681509Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=212 slots_to_advance=21 max_advance=21 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.681559Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=54 slot_index=36 delay_ms=113000 [INFO] [stdout] 2026-07-09T10:52:39.681581Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=54 entry_id=54 connection_id=53 delay_ms=113000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.681617Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=213 slots_to_advance=21 max_advance=21 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.681637Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=55 slot_index=136 delay_ms=114000 [INFO] [stdout] 2026-07-09T10:52:39.681657Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=55 entry_id=55 connection_id=54 delay_ms=114000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.681708Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=56 slot_index=236 delay_ms=115000 [INFO] [stdout] 2026-07-09T10:52:39.681728Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=56 entry_id=56 connection_id=55 delay_ms=115000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.681807Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=57 slot_index=336 delay_ms=116000 [INFO] [stdout] 2026-07-09T10:52:39.681924Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.681955Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.679367Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 123, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16" } [INFO] [stdout] 2026-07-09T10:52:39.681976Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 1, payload_length: 3, recv_window_size: 256, timestamp: 209, sequence_number: 1, recv_next_sequence: 1 }, payload: b"ack" } [INFO] [stdout] 2026-07-09T10:52:39.681981Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=123 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.682004Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=123 seq=7 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.682012Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.682035Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=123 remote_addr=127.0.0.1:9022 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 23, payload_length: 8, recv_window_size: 248, timestamp: 226, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.682070Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=108 remote_addr=127.0.0.1:9007 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 8, payload_length: 8, recv_window_size: 255, timestamp: 238, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.682070Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=123 frame=Push { header: ShortHeader { command: Push, connection_id: 123, payload_length: 640, recv_window_size: 256, timestamp: 1, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16" } [INFO] [stdout] 2026-07-09T10:52:39.682211Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 123, payload_length: 640, recv_window_size: 256, timestamp: 1, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16" } [INFO] [stdout] 2026-07-09T10:52:39.682352Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=123 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-07-09T10:52:39.682368Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=123 seq=8 payload_len=640 [INFO] [stdout] 2026-07-09T10:52:39.682105Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=108 frame=Push { header: ShortHeader { command: Push, connection_id: 108, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07" } [INFO] [stdout] 2026-07-09T10:52:39.682389Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=123 remote_addr=127.0.0.1:9022 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 23, payload_length: 8, recv_window_size: 247, timestamp: 226, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.682421Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=123 [INFO] [stdout] 2026-07-09T10:52:39.682440Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=123 count=9 [INFO] [stdout] 2026-07-09T10:52:39.682469Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=123 state=Established [INFO] [stdout] 2026-07-09T10:52:39.682552Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=24 [INFO] [stdout] 2026-07-09T10:52:39.682572Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=24 state=Established [INFO] [stdout] 2026-07-09T10:52:39.682605Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=23 [INFO] [stdout] 2026-07-09T10:52:39.682622Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=23 state=Established [INFO] [stdout] 2026-07-09T10:52:39.682652Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=25 [INFO] [stdout] 2026-07-09T10:52:39.682668Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=25 state=Established [INFO] [stdout] 2026-07-09T10:52:39.682415Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 108, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07" } [INFO] [stdout] 2026-07-09T10:52:39.682729Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=108 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.682745Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=108 seq=1 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.682744Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=221 slots_to_advance=22 max_advance=22 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.682767Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=108 remote_addr=127.0.0.1:9007 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 8, payload_length: 8, recv_window_size: 254, timestamp: 238, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.682790Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=221 slots_to_advance=22 max_advance=22 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.682830Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=220 slots_to_advance=22 max_advance=22 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.682935Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=125 [INFO] [stdout] 2026-07-09T10:52:39.682972Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=125 state=Established [INFO] [stdout] 2026-07-09T10:52:39.682980Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 206, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.683008Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 206, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.683031Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=1 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.683050Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=1 [INFO] [stdout] 2026-07-09T10:52:39.683065Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=1 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.683106Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.683115Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=213 slots_to_advance=21 max_advance=21 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.683120Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.683139Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=4 srtt_ms=4 rttvar_ms=2 rto_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.683156Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=17 [INFO] [stdout] 2026-07-09T10:52:39.683161Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=212 slots_to_advance=21 max_advance=21 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.683175Z TRACE kestrel_protocol::core::reliability::congestion::vegas: State changed to CongestionAvoidance [INFO] [stdout] 2026-07-09T10:52:39.683184Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=16 new_cwnd=17 [INFO] [stdout] 2026-07-09T10:52:39.683199Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=211 slots_to_advance=21 max_advance=21 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.683201Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Push { header: ShortHeader { command: Push, connection_id: 1, payload_length: 3, recv_window_size: 256, timestamp: 209, sequence_number: 1, recv_next_sequence: 1 }, payload: b"ack" } [INFO] [stdout] 2026-07-09T10:52:39.683221Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 1, payload_length: 3, recv_window_size: 256, timestamp: 209, sequence_number: 1, recv_next_sequence: 1 }, payload: b"ack" } [INFO] [stdout] 2026-07-09T10:52:39.683238Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=1 seq=1 payload_len=3 state=Established [INFO] [stdout] 2026-07-09T10:52:39.683240Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=209 slots_to_advance=20 max_advance=20 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.683254Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=1 seq=1 payload_len=3 [INFO] [stdout] 2026-07-09T10:52:39.683275Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 255, timestamp: 213, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.683284Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=209 slots_to_advance=20 max_advance=20 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.683306Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.683319Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=1 count=1 [INFO] [stdout] 2026-07-09T10:52:39.683354Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.683367Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=206 slots_to_advance=20 max_advance=20 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.683449Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=25 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.683467Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=103 [INFO] [stdout] 2026-07-09T10:52:39.683487Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=25 entry_id=25 connection_id=24 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.683500Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=103 state=Established [INFO] [stdout] 2026-07-09T10:52:39.683539Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=150 [INFO] [stdout] 2026-07-09T10:52:39.683556Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=150 state=Established [INFO] [stdout] 2026-07-09T10:52:39.683590Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=35 [INFO] [stdout] 2026-07-09T10:52:39.683605Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=35 state=Established [INFO] [stdout] 2026-07-09T10:52:39.683615Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=26 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.683632Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=134 [INFO] [stdout] 2026-07-09T10:52:39.683646Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=134 state=Established [INFO] [stdout] 2026-07-09T10:52:39.683642Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=26 entry_id=26 connection_id=25 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.683675Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=137 [INFO] [stdout] 2026-07-09T10:52:39.683691Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=137 state=Established [INFO] [stdout] 2026-07-09T10:52:39.683721Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=136 [INFO] [stdout] 2026-07-09T10:52:39.683736Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=136 state=Established [INFO] [stdout] 2026-07-09T10:52:39.683748Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=27 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.683770Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=138 [INFO] [stdout] 2026-07-09T10:52:39.683778Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=27 entry_id=27 connection_id=26 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.683788Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=138 state=Established [INFO] [stdout] 2026-07-09T10:52:39.683821Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=34 [INFO] [stdout] 2026-07-09T10:52:39.683839Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=34 state=Established [INFO] [stdout] 2026-07-09T10:52:39.683908Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=221 slots_to_advance=22 max_advance=22 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.683916Z TRACE kestrel_protocol::timer::wheel::core[2m: Added timer to timing wheel entry_id=28 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.683954Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=28 entry_id=28 connection_id=27 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.683977Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=221 slots_to_advance=22 max_advance=22 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.684025Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=220 slots_to_advance=22 max_advance=22 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.684089Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=117 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 17 } } [INFO] [stdout] 2026-07-09T10:52:39.684094Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=29 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.684114Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 17 } } [INFO] [stdout] 2026-07-09T10:52:39.684134Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=117 peer_cid=17 state=Established [INFO] [stdout] 2026-07-09T10:52:39.684149Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=117 state=Established [INFO] [stdout] 2026-07-09T10:52:39.684152Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=29 entry_id=29 connection_id=28 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.684179Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=117 frame=Ack { header: ShortHeader { command: Ack, connection_id: 117, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.684206Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 117, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.684225Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=117 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.684243Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=117 [INFO] [stdout] 2026-07-09T10:52:39.684247Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=30 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.684257Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=117 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.684273Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=30 entry_id=30 connection_id=29 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.684286Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.684300Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.684343Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=234 srtt_ms=234 rttvar_ms=117 rto_ms=704 [INFO] [stdout] 2026-07-09T10:52:39.684361Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.684356Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=57 entry_id=57 connection_id=56 delay_ms=116000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.684372Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.684437Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=58 slot_index=436 delay_ms=117000 [INFO] [stdout] 2026-07-09T10:52:39.684467Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=58 entry_id=58 connection_id=57 delay_ms=117000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.684535Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=59 slot_index=24 delay_ms=118000 [INFO] [stdout] 2026-07-09T10:52:39.684560Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=59 entry_id=59 connection_id=58 delay_ms=118000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.684624Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=60 slot_index=124 delay_ms=119000 [INFO] [stdout] 2026-07-09T10:52:39.684391Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=117 frame=Push { header: ShortHeader { command: Push, connection_id: 117, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10" } [INFO] [stdout] 2026-07-09T10:52:39.684647Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=60 entry_id=60 connection_id=59 delay_ms=119000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.684711Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=61 slot_index=224 delay_ms=120000 [INFO] [stdout] 2026-07-09T10:52:39.684735Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=61 entry_id=61 connection_id=60 delay_ms=120000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.684800Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=62 slot_index=324 delay_ms=121000 [INFO] [stdout] 2026-07-09T10:52:39.684825Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=62 entry_id=62 connection_id=61 delay_ms=121000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.680857Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=27 entry_id=27 connection_id=3000 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.684896Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=37 [INFO] [stdout] 2026-07-09T10:52:39.684922Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=37 state=Established [INFO] [stdout] 2026-07-09T10:52:39.684938Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=90 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.684968Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=28 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.684979Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=38 [INFO] [stdout] 2026-07-09T10:52:39.684976Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=90 entry_id=90 connection_id=89 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.685000Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=38 state=Established [INFO] [stdout] 2026-07-09T10:52:39.685000Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=28 entry_id=28 connection_id=3100 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.685037Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=139 [INFO] [stdout] 2026-07-09T10:52:39.685047Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=91 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.685055Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=139 state=Established [INFO] [stdout] 2026-07-09T10:52:39.685056Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=29 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.685074Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=91 entry_id=91 connection_id=90 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.685089Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=140 [INFO] [stdout] 2026-07-09T10:52:39.685106Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=140 state=Established [INFO] [stdout] 2026-07-09T10:52:39.685104Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=29 entry_id=29 connection_id=3200 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.685140Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=40 [INFO] [stdout] 2026-07-09T10:52:39.685139Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=92 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.685152Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=30 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.685158Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=40 state=Established [INFO] [stdout] 2026-07-09T10:52:39.685163Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=92 entry_id=92 connection_id=91 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.685174Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=30 entry_id=30 connection_id=3300 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.685193Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=141 [INFO] [stdout] 2026-07-09T10:52:39.685204Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=31 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.685211Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=141 state=Established [INFO] [stdout] 2026-07-09T10:52:39.685223Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=31 entry_id=31 connection_id=3400 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.685225Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=93 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.685244Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=101 [INFO] [stdout] 2026-07-09T10:52:39.685248Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=93 entry_id=93 connection_id=92 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.685260Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=101 state=Established [INFO] [stdout] 2026-07-09T10:52:39.685264Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=32 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.685285Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=32 entry_id=32 connection_id=3500 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.685294Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=145 [INFO] [stdout] 2026-07-09T10:52:39.685306Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=94 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.685311Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=145 state=Established [INFO] [stdout] 2026-07-09T10:52:39.685326Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=94 entry_id=94 connection_id=93 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.685334Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=33 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.685348Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=49 [INFO] [stdout] 2026-07-09T10:52:39.685359Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=33 entry_id=33 connection_id=3600 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.685368Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=49 state=Established [INFO] [stdout] 2026-07-09T10:52:39.685379Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=95 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.685399Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=95 entry_id=95 connection_id=94 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.685403Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=47 [INFO] [stdout] 2026-07-09T10:52:39.685402Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=34 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.685423Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=47 state=Established [INFO] [stdout] 2026-07-09T10:52:39.685424Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=34 entry_id=34 connection_id=3700 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.685460Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=19 [INFO] [stdout] 2026-07-09T10:52:39.685470Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=35 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.685480Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=19 state=Established [INFO] [stdout] 2026-07-09T10:52:39.685490Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=35 entry_id=35 connection_id=3800 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.685515Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=21 [INFO] [stdout] 2026-07-09T10:52:39.685516Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=36 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.685534Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=21 state=Established [INFO] [stdout] 2026-07-09T10:52:39.685534Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=36 entry_id=36 connection_id=3900 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.685567Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=143 [INFO] [stdout] 2026-07-09T10:52:39.685574Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=37 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.685585Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=143 state=Established [INFO] [stdout] 2026-07-09T10:52:39.685594Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=37 entry_id=37 connection_id=4000 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.685618Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=36 [INFO] [stdout] 2026-07-09T10:52:39.685620Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=38 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.685636Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=36 state=Established [INFO] [stdout] 2026-07-09T10:52:39.685637Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=38 entry_id=38 connection_id=4100 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.682794Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=108 frame=Push { header: ShortHeader { command: Push, connection_id: 108, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07" } [INFO] [stdout] 2026-07-09T10:52:39.685662Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=39 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.685668Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=142 [INFO] [stdout] 2026-07-09T10:52:39.685686Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=142 state=Established [INFO] [stdout] 2026-07-09T10:52:39.685681Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=39 entry_id=39 connection_id=4200 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.685717Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=118 [INFO] [stdout] 2026-07-09T10:52:39.685716Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=40 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.685733Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=118 state=Established [INFO] [stdout] 2026-07-09T10:52:39.685918Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=31 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.685963Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=31 entry_id=31 connection_id=30 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.685968Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.685993Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.686037Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=17 [INFO] [stdout] 2026-07-09T10:52:39.686057Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=17 state=Established [INFO] [stdout] 2026-07-09T10:52:39.684661Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 117, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10" } [INFO] [stdout] 2026-07-09T10:52:39.686105Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=117 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.686127Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=117 seq=0 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.686135Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 255, timestamp: 213, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.686156Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=117 remote_addr=127.0.0.1:9016 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 17, payload_length: 8, recv_window_size: 255, timestamp: 238, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.686169Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 255, timestamp: 213, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.686190Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=2 recv_next_seq=1 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.686209Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2 [INFO] [stdout] 2026-07-09T10:52:39.686224Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=2 recv_next_seq=1 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.686255Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-07-09T10:52:39.686272Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=1 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.686292Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=4 srtt_ms=3 rttvar_ms=1 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.686310Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.686322Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.686339Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.686359Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.686198Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=117 frame=Push { header: ShortHeader { command: Push, connection_id: 117, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10" } [INFO] [stdout] 2026-07-09T10:52:39.686477Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=32 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.686509Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=32 entry_id=32 connection_id=31 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.686620Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=33 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.686648Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=33 entry_id=33 connection_id=32 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.686463Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 117, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10" } [INFO] [stdout] 2026-07-09T10:52:39.686727Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=117 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.686748Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=117 seq=1 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.686747Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=34 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.686774Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=34 entry_id=34 connection_id=33 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.686773Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=117 remote_addr=127.0.0.1:9016 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 17, payload_length: 8, recv_window_size: 254, timestamp: 238, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.686862Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=35 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.686912Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=35 entry_id=35 connection_id=34 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.686925Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=147 [INFO] [stdout] 2026-07-09T10:52:39.686947Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=147 state=Established [INFO] [stdout] 2026-07-09T10:52:39.686990Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=41 [INFO] [stdout] 2026-07-09T10:52:39.687007Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=41 state=Established [INFO] [stdout] 2026-07-09T10:52:39.687009Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=63 slot_index=424 delay_ms=122000 [INFO] [stdout] 2026-07-09T10:52:39.687035Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=4 [INFO] [stdout] 2026-07-09T10:52:39.687038Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=63 entry_id=63 connection_id=62 delay_ms=122000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.687050Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4 state=Established [INFO] [stdout] 2026-07-09T10:52:39.687078Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=46 [INFO] [stdout] 2026-07-09T10:52:39.687093Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=46 state=Established [INFO] [stdout] 2026-07-09T10:52:39.687124Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=18 [INFO] [stdout] 2026-07-09T10:52:39.687117Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=64 slot_index=12 delay_ms=123000 [INFO] [stdout] 2026-07-09T10:52:39.687140Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=18 state=Established [INFO] [stdout] 2026-07-09T10:52:39.687145Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=64 entry_id=64 connection_id=63 delay_ms=123000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.687168Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=16 [INFO] [stdout] 2026-07-09T10:52:39.687184Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=16 state=Established [INFO] [stdout] 2026-07-09T10:52:39.687211Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3 [INFO] [stdout] 2026-07-09T10:52:39.687227Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3 state=Established [INFO] [stdout] 2026-07-09T10:52:39.687222Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=65 slot_index=112 delay_ms=124000 [INFO] [stdout] 2026-07-09T10:52:39.687247Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=65 entry_id=65 connection_id=64 delay_ms=124000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.687256Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=5 [INFO] [stdout] 2026-07-09T10:52:39.687272Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=5 state=Established [INFO] [stdout] 2026-07-09T10:52:39.687300Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=144 [INFO] [stdout] 2026-07-09T10:52:39.687314Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=144 state=Established [INFO] [stdout] 2026-07-09T10:52:39.687312Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=66 slot_index=212 delay_ms=125000 [INFO] [stdout] 2026-07-09T10:52:39.687335Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=66 entry_id=66 connection_id=65 delay_ms=125000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.687343Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=104 [INFO] [stdout] 2026-07-09T10:52:39.687357Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=104 state=Established [INFO] [stdout] 2026-07-09T10:52:39.687386Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=43 [INFO] [stdout] 2026-07-09T10:52:39.687390Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=67 slot_index=312 delay_ms=126000 [INFO] [stdout] 2026-07-09T10:52:39.687402Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=43 state=Established [INFO] [stdout] 2026-07-09T10:52:39.687412Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=67 entry_id=67 connection_id=66 delay_ms=126000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.687430Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=42 [INFO] [stdout] 2026-07-09T10:52:39.687448Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=42 state=Established [INFO] [stdout] 2026-07-09T10:52:39.687480Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=7 [INFO] [stdout] 2026-07-09T10:52:39.687477Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=68 slot_index=412 delay_ms=127000 [INFO] [stdout] 2026-07-09T10:52:39.687497Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=7 state=Established [INFO] [stdout] 2026-07-09T10:52:39.687500Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=68 entry_id=68 connection_id=67 delay_ms=127000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.687527Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=6 [INFO] [stdout] 2026-07-09T10:52:39.687543Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=6 state=Established [INFO] [stdout] 2026-07-09T10:52:39.687554Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=69 slot_index=0 delay_ms=128000 [INFO] [stdout] 2026-07-09T10:52:39.687553Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:33087 frame_count=1 bytes=27 [INFO] [stdout] 2026-07-09T10:52:39.687573Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=8 [INFO] [stdout] 2026-07-09T10:52:39.687575Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=69 entry_id=69 connection_id=68 delay_ms=128000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.687588Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.687617Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=9 [INFO] [stdout] 2026-07-09T10:52:39.687636Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=9 state=Established [INFO] [stdout] 2026-07-09T10:52:39.687634Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=70 slot_index=100 delay_ms=129000 [INFO] [stdout] 2026-07-09T10:52:39.687656Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=70 entry_id=70 connection_id=69 delay_ms=129000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.687662Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=10 frame=Ack { header: ShortHeader { command: Ack, connection_id: 10, payload_length: 8, recv_window_size: 255, timestamp: 161, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.687687Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 10, payload_length: 8, recv_window_size: 255, timestamp: 161, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.687708Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=10 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.687713Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=71 slot_index=200 delay_ms=130000 [INFO] [stdout] 2026-07-09T10:52:39.687725Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=10 [INFO] [stdout] 2026-07-09T10:52:39.687715Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:49785 frame_count=1 bytes=27 [INFO] [stdout] 2026-07-09T10:52:39.687733Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=71 entry_id=71 connection_id=70 delay_ms=130000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.687741Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=10 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.687772Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.687786Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.687788Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=72 slot_index=300 delay_ms=131000 [INFO] [stdout] 2026-07-09T10:52:39.687804Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=241 srtt_ms=241 rttvar_ms=120 rto_ms=725 [INFO] [stdout] 2026-07-09T10:52:39.687820Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.687814Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=72 entry_id=72 connection_id=71 delay_ms=131000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.687830Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.687847Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=10 frame=Ack { header: ShortHeader { command: Ack, connection_id: 10, payload_length: 8, recv_window_size: 254, timestamp: 161, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.685686Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 108, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07" } [INFO] [stdout] 2026-07-09T10:52:39.688017Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=108 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.688042Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=108 seq=2 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.686806Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=117 frame=Push { header: ShortHeader { command: Push, connection_id: 117, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10" } [INFO] [stdout] 2026-07-09T10:52:39.688069Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=108 remote_addr=127.0.0.1:9007 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 8, payload_length: 8, recv_window_size: 253, timestamp: 244, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] test timer::parallel::tests::test_error_handling ... ok [INFO] [stdout] 2026-07-09T10:52:39.688096Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 117, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10" } [INFO] [stdout] 2026-07-09T10:52:39.688354Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=117 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.688358Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.688371Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=117 seq=2 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.688109Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=108 frame=Push { header: ShortHeader { command: Push, connection_id: 108, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07" } [INFO] [stdout] 2026-07-09T10:52:39.688394Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=117 remote_addr=127.0.0.1:9016 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 17, payload_length: 8, recv_window_size: 253, timestamp: 240, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.688499Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.688504Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=36 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.688531Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.688527Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=36 entry_id=36 connection_id=35 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.688554Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=12 delay_ms=120 [INFO] [stdout] 2026-07-09T10:52:39.688578Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=1 delay_ms=120 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.688624Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=96 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.688428Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=117 frame=Push { header: ShortHeader { command: Push, connection_id: 117, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10" } [INFO] [stdout] 2026-07-09T10:52:39.688664Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=17 delay_ms=170 [INFO] [stdout] 2026-07-09T10:52:39.688663Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=96 entry_id=96 connection_id=95 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.688686Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=2 delay_ms=170 event_type=RetransmissionTimeout [INFO] [stdout] 2026-07-09T10:52:39.688741Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=97 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.688741Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=3 slot_index=22 delay_ms=220 [INFO] [stdout] 2026-07-09T10:52:39.688764Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=97 entry_id=97 connection_id=96 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.688764Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=3 entry_id=3 connection_id=3 delay_ms=220 event_type=PathValidationTimeout [INFO] [stdout] 2026-07-09T10:52:39.688830Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=4 slot_index=27 delay_ms=270 [INFO] [stdout] 2026-07-09T10:52:39.688830Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=98 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.688854Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=98 entry_id=98 connection_id=97 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.688856Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=4 entry_id=4 connection_id=4 delay_ms=270 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.688924Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 10, payload_length: 8, recv_window_size: 254, timestamp: 161, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.688948Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=10 recv_next_seq=0 recv_window=254 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.688943Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=99 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.688972Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=10 [INFO] [stdout] 2026-07-09T10:52:39.688982Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=99 entry_id=99 connection_id=98 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.688679Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 117, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10" } [INFO] [stdout] 2026-07-09T10:52:39.689050Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=37 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.689068Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=117 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.689074Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=37 entry_id=37 connection_id=36 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.689084Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=117 seq=3 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.689106Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=117 remote_addr=127.0.0.1:9016 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 17, payload_length: 8, recv_window_size: 252, timestamp: 241, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.689196Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=100 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.689225Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=100 entry_id=100 connection_id=99 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.689292Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=101 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.689316Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=101 entry_id=101 connection_id=100 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.689137Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=117 frame=Push { header: ShortHeader { command: Push, connection_id: 117, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10" } [INFO] [stdout] 2026-07-09T10:52:39.689377Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=102 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.689401Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=102 entry_id=102 connection_id=101 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.689467Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=103 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.689494Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=103 entry_id=103 connection_id=102 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.689563Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=104 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.689590Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=104 entry_id=104 connection_id=103 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.689387Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 117, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10" } [INFO] [stdout] 2026-07-09T10:52:39.689638Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=117 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.689656Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=117 seq=4 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.689660Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=105 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.689678Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=117 remote_addr=127.0.0.1:9016 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 17, payload_length: 8, recv_window_size: 251, timestamp: 241, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.689686Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=105 entry_id=105 connection_id=104 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.689756Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=106 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.689781Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=106 entry_id=106 connection_id=105 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.689851Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=107 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.688987Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=10 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=254 [INFO] [stdout] 2026-07-09T10:52:39.690466Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-07-09T10:52:39.690487Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.689707Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=117 frame=Push { header: ShortHeader { command: Push, connection_id: 117, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10" } [INFO] [stdout] 2026-07-09T10:52:39.690507Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=242 srtt_ms=241 rttvar_ms=90 rto_ms=605 [INFO] [stdout] 2026-07-09T10:52:39.690528Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.690539Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.690562Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=10 frame=Ack { header: ShortHeader { command: Ack, connection_id: 10, payload_length: 8, recv_window_size: 253, timestamp: 162, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.690589Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 10, payload_length: 8, recv_window_size: 253, timestamp: 162, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.690610Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=10 recv_next_seq=0 recv_window=253 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.690629Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=10 [INFO] [stdout] 2026-07-09T10:52:39.690643Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=10 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=253 [INFO] [stdout] 2026-07-09T10:52:39.690666Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-07-09T10:52:39.690680Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.690699Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=244 srtt_ms=242 rttvar_ms=68 rto_ms=517 [INFO] [stdout] 2026-07-09T10:52:39.690715Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.690726Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.690744Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=10 frame=Ack { header: ShortHeader { command: Ack, connection_id: 10, payload_length: 8, recv_window_size: 252, timestamp: 162, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.690767Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 10, payload_length: 8, recv_window_size: 252, timestamp: 162, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.690533Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 117, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10" } [INFO] [stdout] 2026-07-09T10:52:39.690788Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=10 recv_next_seq=0 recv_window=252 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.690798Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=117 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.690808Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=10 [INFO] [stdout] 2026-07-09T10:52:39.690815Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=117 seq=5 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.690821Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=10 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=252 [INFO] [stdout] 2026-07-09T10:52:39.690846Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] 2026-07-09T10:52:39.690840Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=117 remote_addr=127.0.0.1:9016 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 17, payload_length: 8, recv_window_size: 250, timestamp: 242, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.690859Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.688422Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 108, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07" } [INFO] [stdout] 2026-07-09T10:52:39.690898Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=245 srtt_ms=242 rttvar_ms=52 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.690925Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.690936Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.690966Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=10 frame=Ack { header: ShortHeader { command: Ack, connection_id: 10, payload_length: 8, recv_window_size: 251, timestamp: 163, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.690990Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 10, payload_length: 8, recv_window_size: 251, timestamp: 163, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.691011Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=10 recv_next_seq=0 recv_window=251 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.691030Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=10 [INFO] [stdout] 2026-07-09T10:52:39.691043Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=10 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=251 [INFO] [stdout] 2026-07-09T10:52:39.691070Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-07-09T10:52:39.690934Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=108 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.691085Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.691104Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=108 seq=3 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.691104Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=245 srtt_ms=243 rttvar_ms=39 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.691121Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.691132Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.691133Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=108 remote_addr=127.0.0.1:9007 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 8, payload_length: 8, recv_window_size: 252, timestamp: 247, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.691150Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=10 frame=Ack { header: ShortHeader { command: Ack, connection_id: 10, payload_length: 8, recv_window_size: 250, timestamp: 165, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.691174Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 10, payload_length: 8, recv_window_size: 250, timestamp: 165, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.691194Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=10 recv_next_seq=0 recv_window=250 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.691213Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=10 [INFO] [stdout] 2026-07-09T10:52:39.691226Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=10 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=250 [INFO] [stdout] 2026-07-09T10:52:39.691251Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=5 [INFO] [stdout] 2026-07-09T10:52:39.691266Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.691285Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=245 srtt_ms=243 rttvar_ms=30 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.691301Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.691312Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=37 new_cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.691330Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=10 frame=Ack { header: ShortHeader { command: Ack, connection_id: 10, payload_length: 8, recv_window_size: 249, timestamp: 167, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.691353Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 10, payload_length: 8, recv_window_size: 249, timestamp: 167, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.691373Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=10 recv_next_seq=0 recv_window=249 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.691391Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=10 [INFO] [stdout] 2026-07-09T10:52:39.691404Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=10 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=249 [INFO] [stdout] 2026-07-09T10:52:39.691427Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=6 [INFO] [stdout] 2026-07-09T10:52:39.691174Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=108 frame=Push { header: ShortHeader { command: Push, connection_id: 108, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07" } [INFO] [stdout] 2026-07-09T10:52:39.691443Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.691465Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=245 srtt_ms=243 rttvar_ms=23 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.691482Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=39 [INFO] [stdout] 2026-07-09T10:52:39.691493Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=38 new_cwnd=39 [INFO] [stdout] 2026-07-09T10:52:39.691512Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=10 frame=Ack { header: ShortHeader { command: Ack, connection_id: 10, payload_length: 8, recv_window_size: 248, timestamp: 167, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.691535Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 10, payload_length: 8, recv_window_size: 248, timestamp: 167, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.691555Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=10 recv_next_seq=0 recv_window=248 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.691574Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=10 [INFO] [stdout] 2026-07-09T10:52:39.691587Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=10 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=248 [INFO] [stdout] 2026-07-09T10:52:39.691612Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=7 [INFO] [stdout] 2026-07-09T10:52:39.691627Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.691647Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=245 srtt_ms=243 rttvar_ms=18 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.691663Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=40 [INFO] [stdout] 2026-07-09T10:52:39.691674Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=39 new_cwnd=40 [INFO] [stdout] 2026-07-09T10:52:39.691692Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=10 frame=Ack { header: ShortHeader { command: Ack, connection_id: 10, payload_length: 8, recv_window_size: 247, timestamp: 168, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.691716Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 10, payload_length: 8, recv_window_size: 247, timestamp: 168, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.691470Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 108, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07" } [INFO] [stdout] 2026-07-09T10:52:39.691736Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=10 recv_next_seq=0 recv_window=247 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.691756Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=10 [INFO] [stdout] 2026-07-09T10:52:39.691753Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=108 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.691770Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=108 seq=4 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.691769Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=10 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=247 [INFO] [stdout] 2026-07-09T10:52:39.691795Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=8 [INFO] [stdout] 2026-07-09T10:52:39.691793Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=108 remote_addr=127.0.0.1:9007 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 8, payload_length: 8, recv_window_size: 251, timestamp: 247, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.691810Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.691829Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=245 srtt_ms=244 rttvar_ms=14 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.691846Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=41 [INFO] [stdout] 2026-07-09T10:52:39.691857Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=40 new_cwnd=41 [INFO] [stdout] 2026-07-09T10:52:39.691910Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=107 entry_id=107 connection_id=106 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.692017Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=108 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.692047Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=108 entry_id=108 connection_id=107 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.691825Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=108 frame=Push { header: ShortHeader { command: Push, connection_id: 108, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07" } [INFO] [stdout] 2026-07-09T10:52:39.690236Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=38 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.693154Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=38 entry_id=38 connection_id=37 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.692112Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=109 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.690393Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=73 slot_index=400 delay_ms=132000 [INFO] [stdout] 2026-07-09T10:52:39.693247Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=109 entry_id=109 connection_id=108 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.693271Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=73 entry_id=73 connection_id=72 delay_ms=132000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.693336Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=110 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.693362Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=74 slot_index=500 delay_ms=133000 [INFO] [stdout] 2026-07-09T10:52:39.693365Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=110 entry_id=110 connection_id=109 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.693387Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=74 entry_id=74 connection_id=73 delay_ms=133000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.693440Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=111 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.693455Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=75 slot_index=88 delay_ms=134000 [INFO] [stdout] 2026-07-09T10:52:39.693469Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=111 entry_id=111 connection_id=110 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.693480Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=75 entry_id=75 connection_id=74 delay_ms=134000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.693539Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=76 slot_index=188 delay_ms=135000 [INFO] [stdout] 2026-07-09T10:52:39.693542Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=112 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.693124Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 108, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07" } [INFO] [stdout] 2026-07-09T10:52:39.693560Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=76 entry_id=76 connection_id=75 delay_ms=135000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.693570Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=112 entry_id=112 connection_id=111 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.693572Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=108 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.693593Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=108 seq=5 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.693627Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=77 slot_index=288 delay_ms=136000 [INFO] [stdout] 2026-07-09T10:52:39.693627Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=108 remote_addr=127.0.0.1:9007 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 8, payload_length: 8, recv_window_size: 250, timestamp: 249, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.693649Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=77 entry_id=77 connection_id=76 delay_ms=136000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.693698Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=113 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.693713Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=78 slot_index=388 delay_ms=137000 [INFO] [stdout] 2026-07-09T10:52:39.693735Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=78 entry_id=78 connection_id=77 delay_ms=137000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.693787Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=79 slot_index=488 delay_ms=138000 [INFO] [stdout] 2026-07-09T10:52:39.693806Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=79 entry_id=79 connection_id=78 delay_ms=138000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.693817Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=113 entry_id=113 connection_id=112 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.693857Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=80 slot_index=76 delay_ms=139000 [INFO] [stdout] 2026-07-09T10:52:39.693897Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=80 entry_id=80 connection_id=79 delay_ms=139000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.693921Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=39 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.693937Z  INFO kestrel_protocol::core::tests::retransmission: [Client] Successfully received server response. [INFO] [stdout] 2026-07-09T10:52:39.693959Z  INFO kestrel_protocol::core::tests::retransmission: [Test] Shutting down client stream... [INFO] [stdout] 2026-07-09T10:52:39.693951Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=39 entry_id=39 connection_id=38 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.693972Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=81 slot_index=176 delay_ms=140000 [INFO] [stdout] 2026-07-09T10:52:39.692147Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=117 frame=Push { header: ShortHeader { command: Push, connection_id: 117, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10" } [INFO] [stdout] 2026-07-09T10:52:39.694123Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 117, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10" } [INFO] [stdout] 2026-07-09T10:52:39.694387Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=117 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.694408Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=117 seq=6 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.694437Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=117 remote_addr=127.0.0.1:9016 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 17, payload_length: 8, recv_window_size: 249, timestamp: 246, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.694478Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=117 frame=Push { header: ShortHeader { command: Push, connection_id: 117, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10" } [INFO] [stdout] 2026-07-09T10:52:39.694904Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=81 entry_id=81 connection_id=80 delay_ms=140000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.695003Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=82 slot_index=276 delay_ms=141000 [INFO] [stdout] 2026-07-09T10:52:39.695029Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=82 entry_id=82 connection_id=81 delay_ms=141000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.693665Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=108 frame=Push { header: ShortHeader { command: Push, connection_id: 108, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07" } [INFO] [stdout] 2026-07-09T10:52:39.695215Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 108, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07" } [INFO] [stdout] 2026-07-09T10:52:39.695498Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=108 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.695515Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=108 seq=6 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.695540Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=108 remote_addr=127.0.0.1:9007 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 8, payload_length: 8, recv_window_size: 249, timestamp: 251, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.695576Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=108 frame=Push { header: ShortHeader { command: Push, connection_id: 108, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07" } [INFO] [stdout] 2026-07-09T10:52:39.693995Z  INFO kestrel_protocol::core::tests::retransmission: [Test] Shutting down server stream... [INFO] [stdout] 2026-07-09T10:52:39.694041Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=40 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.694072Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=1 current_state=Established [INFO] [stdout] 2026-07-09T10:52:39.696167Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Established" to="Closing" [INFO] [stdout] 2026-07-09T10:52:39.696191Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=2 current_state=Established [INFO] [stdout] 2026-07-09T10:52:39.696208Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=1 [INFO] [stdout] 2026-07-09T10:52:39.696217Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="Established" to="Closing" [INFO] [stdout] 2026-07-09T10:52:39.696226Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Added packet to simple retransmission tracking seq=1 max_retries=5 retry_interval_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.696240Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=2 [INFO] [stdout] 2026-07-09T10:52:39.696247Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Fin { header: ShortHeader { command: Fin, connection_id: 2, payload_length: 0, recv_window_size: 256, timestamp: 226, sequence_number: 1, recv_next_sequence: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.696263Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Added packet to simple retransmission tracking seq=2 max_retries=5 retry_interval_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.696292Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.692151Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=10 [INFO] [stdout] 2026-07-09T10:52:39.695908Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=83 slot_index=376 delay_ms=142000 [INFO] [stdout] 2026-07-09T10:52:39.696341Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=10 state=Established [INFO] [stdout] 2026-07-09T10:52:39.696371Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=83 entry_id=83 connection_id=82 delay_ms=142000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.696401Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=12 [INFO] [stdout] 2026-07-09T10:52:39.696423Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=12 state=Established [INFO] [stdout] 2026-07-09T10:52:39.696475Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=11 [INFO] [stdout] 2026-07-09T10:52:39.696469Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=84 slot_index=476 delay_ms=143000 [INFO] [stdout] 2026-07-09T10:52:39.696496Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=11 state=Established [INFO] [stdout] 2026-07-09T10:52:39.696500Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=84 entry_id=84 connection_id=83 delay_ms=143000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.696546Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=146 [INFO] [stdout] 2026-07-09T10:52:39.696577Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=146 state=Established [INFO] [stdout] 2026-07-09T10:52:39.696579Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=85 slot_index=64 delay_ms=144000 [INFO] [stdout] 2026-07-09T10:52:39.696284Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Fin { header: ShortHeader { command: Fin, connection_id: 1, payload_length: 0, recv_window_size: 256, timestamp: 223, sequence_number: 2, recv_next_sequence: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.696636Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=13 [INFO] [stdout] 2026-07-09T10:52:39.696645Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.696658Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=13 state=Established [INFO] [stdout] 2026-07-09T10:52:39.696669Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.696711Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=14 [INFO] [stdout] 2026-07-09T10:52:39.696739Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=85 entry_id=85 connection_id=84 delay_ms=144000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.696749Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=14 state=Established [INFO] [stdout] 2026-07-09T10:52:39.696797Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=137 slots_to_advance=13 max_advance=13 current_slot=12 [INFO] [stdout] 2026-07-09T10:52:39.696826Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=86 slot_index=164 delay_ms=145000 [INFO] [stdout] 2026-07-09T10:52:39.696847Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=136 slots_to_advance=13 max_advance=13 current_slot=12 [INFO] [stdout] 2026-07-09T10:52:39.696853Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=86 entry_id=86 connection_id=85 delay_ms=145000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.696924Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=136 slots_to_advance=13 max_advance=13 current_slot=12 [INFO] [stdout] 2026-07-09T10:52:39.696978Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=135 slots_to_advance=13 max_advance=13 current_slot=12 [INFO] [stdout] 2026-07-09T10:52:39.697010Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=135 slots_to_advance=13 max_advance=13 current_slot=12 [INFO] [stdout] 2026-07-09T10:52:39.697042Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=135 slots_to_advance=13 max_advance=13 current_slot=12 [INFO] [stdout] 2026-07-09T10:52:39.697072Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=135 slots_to_advance=13 max_advance=13 current_slot=12 [INFO] [stdout] 2026-07-09T10:52:39.697103Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=134 slots_to_advance=13 max_advance=13 current_slot=12 [INFO] [stdout] 2026-07-09T10:52:39.697142Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=134 slots_to_advance=13 max_advance=13 current_slot=12 [INFO] [stdout] 2026-07-09T10:52:39.697180Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=124 slots_to_advance=12 max_advance=12 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.696897Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 108, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07" } [INFO] [stdout] 2026-07-09T10:52:39.697215Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=133 slots_to_advance=13 max_advance=13 current_slot=12 [INFO] [stdout] 2026-07-09T10:52:39.697217Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=108 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.697239Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=108 seq=7 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.697248Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=133 slots_to_advance=13 max_advance=13 current_slot=12 [INFO] [stdout] 2026-07-09T10:52:39.697278Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=123 slots_to_advance=12 max_advance=12 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.694753Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 117, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10" } [INFO] [stdout] 2026-07-09T10:52:39.697308Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=117 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.697321Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=124 slots_to_advance=12 max_advance=12 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.697330Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=117 seq=7 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.697353Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=133 slots_to_advance=13 max_advance=13 current_slot=12 [INFO] [stdout] 2026-07-09T10:52:39.697358Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=117 remote_addr=127.0.0.1:9016 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 17, payload_length: 8, recv_window_size: 248, timestamp: 249, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.697391Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=120 [INFO] [stdout] 2026-07-09T10:52:39.697408Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=120 state=Established [INFO] [stdout] 2026-07-09T10:52:39.697444Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=148 [INFO] [stdout] 2026-07-09T10:52:39.697470Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=148 state=Established [INFO] [stdout] 2026-07-09T10:52:39.697473Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=87 slot_index=264 delay_ms=146000 [INFO] [stdout] 2026-07-09T10:52:39.697504Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=132 slots_to_advance=13 max_advance=13 current_slot=12 [INFO] [stdout] 2026-07-09T10:52:39.697503Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=87 entry_id=87 connection_id=86 delay_ms=146000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.697540Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=133 slots_to_advance=13 max_advance=13 current_slot=12 [INFO] [stdout] 2026-07-09T10:52:39.697577Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=133 slots_to_advance=13 max_advance=13 current_slot=12 [INFO] [stdout] 2026-07-09T10:52:39.697581Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=88 slot_index=364 delay_ms=147000 [INFO] [stdout] 2026-07-09T10:52:39.697607Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=88 entry_id=88 connection_id=87 delay_ms=147000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.697609Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=132 slots_to_advance=13 max_advance=13 current_slot=12 [INFO] [stdout] 2026-07-09T10:52:39.697644Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=121 slots_to_advance=12 max_advance=12 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.697679Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=122 slots_to_advance=12 max_advance=12 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.697676Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=89 slot_index=464 delay_ms=148000 [INFO] [stdout] 2026-07-09T10:52:39.697705Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=89 entry_id=89 connection_id=88 delay_ms=148000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.697713Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=122 slots_to_advance=12 max_advance=12 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.697747Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=122 slots_to_advance=12 max_advance=12 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.697779Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=121 slots_to_advance=12 max_advance=12 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.697785Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=90 slot_index=52 delay_ms=149000 [INFO] [stdout] 2026-07-09T10:52:39.697808Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=120 slots_to_advance=12 max_advance=12 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.697813Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=90 entry_id=90 connection_id=89 delay_ms=149000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.697837Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=121 slots_to_advance=12 max_advance=12 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.697905Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.694091Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=114 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.697989Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=114 entry_id=114 connection_id=113 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.697903Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=117 frame=Push { header: ShortHeader { command: Push, connection_id: 117, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10" } [INFO] [stdout] 2026-07-09T10:52:39.698074Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=115 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.698099Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=115 entry_id=115 connection_id=114 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.698168Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=116 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.698197Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=116 entry_id=116 connection_id=115 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.698087Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 117, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10" } [INFO] [stdout] 2026-07-09T10:52:39.698256Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=117 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-07-09T10:52:39.698267Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=117 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.698278Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=117 seq=8 payload_len=640 [INFO] [stdout] 2026-07-09T10:52:39.698293Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=117 entry_id=117 connection_id=116 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.698306Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=117 remote_addr=127.0.0.1:9016 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 17, payload_length: 8, recv_window_size: 247, timestamp: 250, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.698348Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=117 [INFO] [stdout] 2026-07-09T10:52:39.698363Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=118 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.698399Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=118 entry_id=118 connection_id=117 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.698469Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Fin { header: ShortHeader { command: Fin, connection_id: 2, payload_length: 0, recv_window_size: 256, timestamp: 226, sequence_number: 1, recv_next_sequence: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.698515Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Fin { header: ShortHeader { command: Fin, connection_id: 2, payload_length: 0, recv_window_size: 256, timestamp: 226, sequence_number: 1, recv_next_sequence: 2 } } [INFO] [stdout] 2026-07-09T10:52:39.698515Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=40 entry_id=40 connection_id=39 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.698556Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=2 seq=1 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.698574Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Handling FIN in Closing state cid=2 seq=1 [INFO] [stdout] 2026-07-09T10:52:39.698599Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2 remote_addr=127.0.0.1:1234 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 225, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.698643Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=Closing target_state=ClosingWait [INFO] [stdout] 2026-07-09T10:52:39.698665Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="Closing" to="ClosingWait" [INFO] [stdout] 2026-07-09T10:52:39.698673Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=41 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.698687Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.698705Z TRACE kestrel_protocol::core::endpoint::core::event_loop: All data drained after FIN, closing user stream (sending EOF). cid=2 [INFO] [stdout] 2026-07-09T10:52:39.698701Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=41 entry_id=41 connection_id=40 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.698738Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=ClosingWait [INFO] [stdout] 2026-07-09T10:52:39.698814Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Fin { header: ShortHeader { command: Fin, connection_id: 1, payload_length: 0, recv_window_size: 256, timestamp: 223, sequence_number: 2, recv_next_sequence: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.698846Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Fin { header: ShortHeader { command: Fin, connection_id: 1, payload_length: 0, recv_window_size: 256, timestamp: 223, sequence_number: 2, recv_next_sequence: 1 } } [INFO] [stdout] 2026-07-09T10:52:39.698866Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=1 seq=2 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.698865Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=42 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.698900Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Handling FIN in Closing state cid=1 seq=2 [INFO] [stdout] 2026-07-09T10:52:39.698916Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=42 entry_id=42 connection_id=41 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.698925Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1 remote_addr=127.0.0.1:5678 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 255, timestamp: 228, sequence_number: 0, recv_next_sequence: 2 }, payload: b"\0\0\0\x02\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.698969Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=1 current_state=Closing target_state=ClosingWait [INFO] [stdout] 2026-07-09T10:52:39.698987Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Closing" to="ClosingWait" [INFO] [stdout] 2026-07-09T10:52:39.699005Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.699000Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=43 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.699019Z TRACE kestrel_protocol::core::endpoint::core::event_loop: All data drained after FIN, closing user stream (sending EOF). cid=1 [INFO] [stdout] 2026-07-09T10:52:39.699025Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=43 entry_id=43 connection_id=42 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.699037Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=ClosingWait [INFO] [stdout] 2026-07-09T10:52:39.697269Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=108 remote_addr=127.0.0.1:9007 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 8, payload_length: 8, recv_window_size: 248, timestamp: 253, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.699095Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=44 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.699121Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=44 entry_id=44 connection_id=43 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.699178Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=45 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.699202Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=45 entry_id=45 connection_id=44 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.699267Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=46 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.699127Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=108 frame=Push { header: ShortHeader { command: Push, connection_id: 108, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07" } [INFO] [stdout] 2026-07-09T10:52:39.699299Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=46 entry_id=46 connection_id=45 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.699363Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=47 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.699396Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=47 entry_id=47 connection_id=46 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.699456Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=48 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.699310Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 108, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07" } [INFO] [stdout] 2026-07-09T10:52:39.699490Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=48 entry_id=48 connection_id=47 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.699490Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=108 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-07-09T10:52:39.699512Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=108 seq=8 payload_len=640 [INFO] [stdout] 2026-07-09T10:52:39.699541Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=108 remote_addr=127.0.0.1:9007 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 8, payload_length: 8, recv_window_size: 247, timestamp: 255, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.699563Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=49 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.699576Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=108 [INFO] [stdout] 2026-07-09T10:52:39.699589Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=49 entry_id=49 connection_id=48 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.699643Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=91 slot_index=152 delay_ms=150000 [INFO] [stdout] 2026-07-09T10:52:39.699682Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=91 entry_id=91 connection_id=90 delay_ms=150000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.699691Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=50 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.699718Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=50 entry_id=50 connection_id=49 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.699775Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=92 slot_index=252 delay_ms=151000 [INFO] [stdout] 2026-07-09T10:52:39.699780Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=51 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.699821Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=92 entry_id=92 connection_id=91 delay_ms=151000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.699835Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=51 entry_id=51 connection_id=50 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.698477Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=119 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.699904Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=119 entry_id=119 connection_id=118 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.699931Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=52 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.699966Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=52 entry_id=52 connection_id=51 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.700001Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=120 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.700032Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=53 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.700036Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=120 entry_id=120 connection_id=119 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.700056Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=53 entry_id=53 connection_id=52 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.700115Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=121 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.700140Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=54 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.700151Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=121 entry_id=121 connection_id=120 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.700166Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=54 entry_id=54 connection_id=53 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.700230Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=122 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.700233Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=55 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.700271Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=122 entry_id=122 connection_id=121 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.700283Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=55 entry_id=55 connection_id=54 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.700346Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=56 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.700353Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=123 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.700369Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=56 entry_id=56 connection_id=55 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.700379Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=123 entry_id=123 connection_id=122 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.700448Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=124 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.700473Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=57 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.700478Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=124 entry_id=124 connection_id=123 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.700540Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=125 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.700547Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=57 entry_id=57 connection_id=56 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.700561Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=125 entry_id=125 connection_id=124 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.700615Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=126 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.700639Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=126 entry_id=126 connection_id=125 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.700647Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1854190210 [INFO] [stdout] 2026-07-09T10:52:39.700670Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1854190210 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.700703Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=127 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.700729Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=58 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.700729Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=127 entry_id=127 connection_id=126 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.700755Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=58 entry_id=58 connection_id=57 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.700800Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=128 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.700817Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=59 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.700826Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=128 entry_id=128 connection_id=127 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.700840Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=59 entry_id=59 connection_id=58 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.698371Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=117 count=9 [INFO] [stdout] 2026-07-09T10:52:39.700927Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=117 state=Established [INFO] [stdout] 2026-07-09T10:52:39.701001Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1 frame=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 225, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.701024Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=121 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 21 } } [INFO] [stdout] 2026-07-09T10:52:39.701038Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 1, payload_length: 8, recv_window_size: 255, timestamp: 225, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.701050Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 21 } } [INFO] [stdout] 2026-07-09T10:52:39.701062Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=1 recv_next_seq=1 recv_window=255 payload_len=8 state=ClosingWait [INFO] [stdout] 2026-07-09T10:52:39.701070Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=121 peer_cid=21 state=Established [INFO] [stdout] 2026-07-09T10:52:39.701085Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=121 state=Established [INFO] [stdout] 2026-07-09T10:52:39.701092Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in ClosingWait state cid=1 [INFO] [stdout] 2026-07-09T10:52:39.701101Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=121 frame=Ack { header: ShortHeader { command: Ack, connection_id: 121, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.701110Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=1 recv_next_seq=1 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.701123Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 121, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.701141Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=121 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.701162Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=121 [INFO] [stdout] 2026-07-09T10:52:39.701158Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Packet acknowledged by SACK seq=1 [INFO] [stdout] 2026-07-09T10:52:39.701177Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=121 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.701177Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=1 sack_ranges_count=1 sack_acked_count=0 simple_acked_count=1 rtt_samples_count=0 [INFO] [stdout] 2026-07-09T10:52:39.701201Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.701210Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.701213Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=1 current_state=ClosingWait target_state=Closed [INFO] [stdout] 2026-07-09T10:52:39.701230Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="ClosingWait" to="Closed" [INFO] [stdout] 2026-07-09T10:52:39.701229Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.701249Z DEBUG kestrel_protocol::core::reliability::retransmission: Cleared all in-flight packets from both SACK and simple retransmission managers. [INFO] [stdout] 2026-07-09T10:52:39.701249Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=249 srtt_ms=249 rttvar_ms=124 rto_ms=748 [INFO] [stdout] 2026-07-09T10:52:39.701260Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=1 [INFO] [stdout] 2026-07-09T10:52:39.701268Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.701283Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.701360Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2 frame=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 255, timestamp: 228, sequence_number: 0, recv_next_sequence: 2 }, payload: b"\0\0\0\x02\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.701388Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 2, payload_length: 8, recv_window_size: 255, timestamp: 228, sequence_number: 0, recv_next_sequence: 2 }, payload: b"\0\0\0\x02\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.701408Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=2 recv_next_seq=2 recv_window=255 payload_len=8 state=ClosingWait [INFO] [stdout] 2026-07-09T10:52:39.701425Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in ClosingWait state cid=2 [INFO] [stdout] 2026-07-09T10:52:39.701438Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=2 recv_next_seq=2 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.701463Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Packet acknowledged by SACK seq=2 [INFO] [stdout] 2026-07-09T10:52:39.701475Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=2 sack_ranges_count=1 sack_acked_count=0 simple_acked_count=1 rtt_samples_count=0 [INFO] [stdout] 2026-07-09T10:52:39.701495Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.701506Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=ClosingWait target_state=Closed [INFO] [stdout] 2026-07-09T10:52:39.701522Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="ClosingWait" to="Closed" [INFO] [stdout] 2026-07-09T10:52:39.701538Z DEBUG kestrel_protocol::core::reliability::retransmission: Cleared all in-flight packets from both SACK and simple retransmission managers. [INFO] [stdout] 2026-07-09T10:52:39.701547Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2 [INFO] [stdout] 2026-07-09T10:52:39.701303Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=121 frame=Push { header: ShortHeader { command: Push, connection_id: 121, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14" } [INFO] [stdout] 2026-07-09T10:52:39.701670Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=60 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.701699Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=60 entry_id=60 connection_id=59 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.701772Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=61 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.701798Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=61 entry_id=61 connection_id=60 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.701861Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=62 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.699597Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=108 count=9 [INFO] [stdout] 2026-07-09T10:52:39.685737Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=40 entry_id=40 connection_id=4300 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.701906Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=62 entry_id=62 connection_id=61 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.701930Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=108 state=Established [INFO] [stdout] 2026-07-09T10:52:39.701987Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=63 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.702012Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=63 entry_id=63 connection_id=62 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.702047Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=41 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.702062Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=93 slot_index=352 delay_ms=152000 [INFO] [stdout] 2026-07-09T10:52:39.702075Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=41 entry_id=41 connection_id=4400 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.702080Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=64 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.702092Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=93 entry_id=93 connection_id=92 delay_ms=152000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.702106Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=64 entry_id=64 connection_id=63 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.702161Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=65 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.702167Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=94 slot_index=452 delay_ms=153000 [INFO] [stdout] 2026-07-09T10:52:39.702176Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=42 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.702182Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=65 entry_id=65 connection_id=64 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.702195Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=94 entry_id=94 connection_id=93 delay_ms=153000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.702201Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=42 entry_id=42 connection_id=4500 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.702242Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=66 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.702265Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=66 entry_id=66 connection_id=65 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.702267Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=95 slot_index=40 delay_ms=154000 [INFO] [stdout] 2026-07-09T10:52:39.702294Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=95 entry_id=95 connection_id=94 delay_ms=154000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.702308Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=43 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.702334Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=43 entry_id=43 connection_id=4600 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.702334Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=67 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.702361Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=67 entry_id=67 connection_id=66 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.702366Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=96 slot_index=140 delay_ms=155000 [INFO] [stdout] 2026-07-09T10:52:39.702394Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=96 entry_id=96 connection_id=95 delay_ms=155000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.702424Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=68 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.702452Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=68 entry_id=68 connection_id=67 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.702454Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=44 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.702475Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=97 slot_index=240 delay_ms=156000 [INFO] [stdout] 2026-07-09T10:52:39.702481Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=44 entry_id=44 connection_id=4700 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.702504Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=97 entry_id=97 connection_id=96 delay_ms=156000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.702523Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=69 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.702552Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=69 entry_id=69 connection_id=68 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.702579Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=98 slot_index=340 delay_ms=157000 [INFO] [stdout] 2026-07-09T10:52:39.702587Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=45 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.702606Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=98 entry_id=98 connection_id=97 delay_ms=157000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.702613Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=45 entry_id=45 connection_id=4800 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.702621Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=70 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.702644Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=70 entry_id=70 connection_id=69 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.702680Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=99 slot_index=440 delay_ms=158000 [INFO] [stdout] 2026-07-09T10:52:39.702707Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=99 entry_id=99 connection_id=98 delay_ms=158000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.702752Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=46 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.702780Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=46 entry_id=46 connection_id=4900 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.702779Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=100 slot_index=28 delay_ms=159000 [INFO] [stdout] 2026-07-09T10:52:39.702808Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=100 entry_id=100 connection_id=99 delay_ms=159000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.702820Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=47 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.702831Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=71 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.702840Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=47 entry_id=47 connection_id=200 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.702891Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=35 slots_to_advance=3 max_advance=3 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.702923Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=48 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.702943Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=48 entry_id=48 connection_id=100 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.702863Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=71 entry_id=71 connection_id=70 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.702969Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=109 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 9 } } [INFO] [stdout] 2026-07-09T10:52:39.702989Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=49 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.702999Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 9 } } [INFO] [stdout] 2026-07-09T10:52:39.703009Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=49 entry_id=49 connection_id=300 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703018Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=72 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.703020Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=109 peer_cid=9 state=Established [INFO] [stdout] 2026-07-09T10:52:39.703036Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=50 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.703038Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=109 state=Established [INFO] [stdout] 2026-07-09T10:52:39.703042Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=72 entry_id=72 connection_id=71 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703055Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=50 entry_id=50 connection_id=0 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703057Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=109 frame=Ack { header: ShortHeader { command: Ack, connection_id: 109, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.703082Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 109, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.703089Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=51 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.703099Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=73 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.703101Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=109 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.703108Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=51 entry_id=51 connection_id=401 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703121Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=109 [INFO] [stdout] 2026-07-09T10:52:39.703120Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=73 entry_id=73 connection_id=72 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703137Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=109 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.703142Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=52 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.703161Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=52 entry_id=52 connection_id=501 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703178Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=74 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.703193Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=53 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.703198Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=74 entry_id=74 connection_id=73 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703211Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=53 entry_id=53 connection_id=601 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703246Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=75 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.703248Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=54 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.703262Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=129 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.703266Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=75 entry_id=75 connection_id=74 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703268Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=54 entry_id=54 connection_id=701 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703292Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=129 entry_id=129 connection_id=128 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703304Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=55 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.703323Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=55 entry_id=55 connection_id=801 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703327Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=76 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.703350Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=76 entry_id=76 connection_id=75 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703358Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=56 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.703374Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=130 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.703377Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=56 entry_id=56 connection_id=901 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703401Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=130 entry_id=130 connection_id=129 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703411Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=77 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.703434Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=77 entry_id=77 connection_id=76 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703446Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=57 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.703477Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=131 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.703485Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=78 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.703505Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=78 entry_id=78 connection_id=77 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703505Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=131 entry_id=131 connection_id=130 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703513Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=57 entry_id=57 connection_id=1201 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703555Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=58 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.703565Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=79 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.703575Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=58 entry_id=58 connection_id=1101 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703582Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=132 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.703589Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=79 entry_id=79 connection_id=78 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703603Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=59 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.703610Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=132 entry_id=132 connection_id=131 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703621Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=59 entry_id=59 connection_id=1301 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703648Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=80 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.703655Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=60 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.703672Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=80 entry_id=80 connection_id=79 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703675Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=60 entry_id=60 connection_id=1401 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703683Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=133 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.703709Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=61 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.703711Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=133 entry_id=133 connection_id=132 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703728Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=61 entry_id=61 connection_id=1501 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703735Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=81 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.703758Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=81 entry_id=81 connection_id=80 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703761Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=62 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.703781Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=62 entry_id=62 connection_id=2201 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703783Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=134 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.703810Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=134 entry_id=134 connection_id=133 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703813Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=63 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.703820Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=82 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.703835Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=63 entry_id=63 connection_id=1601 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703843Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=82 entry_id=82 connection_id=81 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.703168Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.703909Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.703933Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=83 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.697867Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=121 slots_to_advance=12 max_advance=12 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.703936Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=258 srtt_ms=258 rttvar_ms=129 rto_ms=774 [INFO] [stdout] 2026-07-09T10:52:39.703985Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.703998Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.704018Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=127 slots_to_advance=12 max_advance=12 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.703870Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=64 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.704083Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=127 slots_to_advance=12 max_advance=12 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.704086Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=64 entry_id=64 connection_id=1701 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.704144Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=45 [INFO] [stdout] 2026-07-09T10:52:39.704186Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=45 state=Established [INFO] [stdout] 2026-07-09T10:52:39.704147Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=65 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.704240Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=149 [INFO] [stdout] 2026-07-09T10:52:39.704239Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=65 entry_id=65 connection_id=1801 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.704279Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=149 state=Established [INFO] [stdout] 2026-07-09T10:52:39.704026Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=109 frame=Push { header: ShortHeader { command: Push, connection_id: 109, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08" } [INFO] [stdout] 2026-07-09T10:52:39.704347Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=126 slots_to_advance=12 max_advance=12 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.704395Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=126 slots_to_advance=12 max_advance=12 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.704414Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=66 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.704456Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=22 [INFO] [stdout] 2026-07-09T10:52:39.704460Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=66 entry_id=66 connection_id=1901 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.704479Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=22 state=Established [INFO] [stdout] 2026-07-09T10:52:39.704550Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=67 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.704574Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=67 entry_id=67 connection_id=2001 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.704589Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=50 [INFO] [stdout] 2026-07-09T10:52:39.704612Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=50 state=Established [INFO] [stdout] 2026-07-09T10:52:39.704345Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 109, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08" } [INFO] [stdout] 2026-07-09T10:52:39.704634Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=109 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.704654Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=125 slots_to_advance=12 max_advance=12 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.704665Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=109 seq=0 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.704669Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=68 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.704693Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=68 entry_id=68 connection_id=2101 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.704697Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=109 remote_addr=127.0.0.1:9008 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 9, payload_length: 8, recv_window_size: 255, timestamp: 260, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.704702Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=126 slots_to_advance=12 max_advance=12 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.704753Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=126 slots_to_advance=12 max_advance=12 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.704780Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=69 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.704806Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=69 entry_id=69 connection_id=2501 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.704808Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=126 slots_to_advance=12 max_advance=12 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.704855Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=126 slots_to_advance=12 max_advance=12 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.704909Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=83 entry_id=83 connection_id=82 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.704929Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=70 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.704930Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=124 slots_to_advance=12 max_advance=12 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.704963Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=70 entry_id=70 connection_id=2301 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.704991Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=125 slots_to_advance=12 max_advance=12 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.705041Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=124 slots_to_advance=12 max_advance=12 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.705061Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=71 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.705087Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=71 entry_id=71 connection_id=2401 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.705093Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=124 slots_to_advance=12 max_advance=12 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.705128Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=84 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.705139Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=124 slots_to_advance=12 max_advance=12 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.705163Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=84 entry_id=84 connection_id=83 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.705177Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=72 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.705194Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=39 [INFO] [stdout] 2026-07-09T10:52:39.705203Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=72 entry_id=72 connection_id=2701 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.705217Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=39 state=Established [INFO] [stdout] 2026-07-09T10:52:39.705257Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=126 [INFO] [stdout] 2026-07-09T10:52:39.705276Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=85 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.705283Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=126 state=Established [INFO] [stdout] 2026-07-09T10:52:39.705286Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=73 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.705302Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=85 entry_id=85 connection_id=84 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.705311Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=73 entry_id=73 connection_id=2601 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.705324Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=127 [INFO] [stdout] 2026-07-09T10:52:39.705345Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=127 state=Established [INFO] [stdout] 2026-07-09T10:52:39.705383Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=27 [INFO] [stdout] 2026-07-09T10:52:39.705392Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=86 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.705402Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=74 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.705409Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=27 state=Established [INFO] [stdout] 2026-07-09T10:52:39.705416Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=86 entry_id=86 connection_id=85 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.705427Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=74 entry_id=74 connection_id=2801 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.705451Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=124 slots_to_advance=12 max_advance=12 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.705493Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=87 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.705499Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=123 slots_to_advance=12 max_advance=12 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.705518Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=87 entry_id=87 connection_id=86 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.705534Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=75 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.705550Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=26 [INFO] [stdout] 2026-07-09T10:52:39.705559Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=75 entry_id=75 connection_id=1001 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.705573Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=26 state=Established [INFO] [stdout] 2026-07-09T10:52:39.705577Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=88 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.705600Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=88 entry_id=88 connection_id=87 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.705612Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=129 [INFO] [stdout] 2026-07-09T10:52:39.705632Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=129 state=Established [INFO] [stdout] 2026-07-09T10:52:39.705652Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=76 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.705660Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=89 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.705673Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=29 [INFO] [stdout] 2026-07-09T10:52:39.705682Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=89 entry_id=89 connection_id=88 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.705681Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=76 entry_id=76 connection_id=3501 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.705693Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=29 state=Established [INFO] [stdout] 2026-07-09T10:52:39.705731Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=128 [INFO] [stdout] 2026-07-09T10:52:39.705736Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=90 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.705751Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=128 state=Established [INFO] [stdout] 2026-07-09T10:52:39.705756Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=90 entry_id=90 connection_id=89 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.705782Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=77 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.705808Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=91 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.705810Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=77 entry_id=77 connection_id=2901 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.705828Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=91 entry_id=91 connection_id=90 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.701583Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 121, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14" } [INFO] [stdout] 2026-07-09T10:52:39.705940Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=78 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.705938Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=121 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.705965Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=121 seq=0 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.705970Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=78 entry_id=78 connection_id=3001 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.705994Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=121 remote_addr=127.0.0.1:9020 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 21, payload_length: 8, recv_window_size: 255, timestamp: 255, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.704738Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=109 frame=Push { header: ShortHeader { command: Push, connection_id: 109, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08" } [INFO] [stdout] 2026-07-09T10:52:39.706080Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=79 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.706110Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=79 entry_id=79 connection_id=3101 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.706226Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=80 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.706252Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=80 entry_id=80 connection_id=3201 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.706038Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=121 frame=Push { header: ShortHeader { command: Push, connection_id: 121, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14" } [INFO] [stdout] 2026-07-09T10:52:39.706051Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 109, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08" } [INFO] [stdout] 2026-07-09T10:52:39.706355Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=109 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.706359Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=81 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.706373Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=109 seq=1 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.706385Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=81 entry_id=81 connection_id=3301 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.706399Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=109 remote_addr=127.0.0.1:9008 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 9, payload_length: 8, recv_window_size: 254, timestamp: 262, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.706559Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=82 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.706326Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 121, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14" } [INFO] [stdout] 2026-07-09T10:52:39.706588Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=82 entry_id=82 connection_id=3401 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.706609Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=121 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.706630Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=121 seq=1 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.706656Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=121 remote_addr=127.0.0.1:9020 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 21, payload_length: 8, recv_window_size: 254, timestamp: 255, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.706689Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=83 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.706433Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=109 frame=Push { header: ShortHeader { command: Push, connection_id: 109, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08" } [INFO] [stdout] 2026-07-09T10:52:39.706713Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=83 entry_id=83 connection_id=3801 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.706815Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=84 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.706843Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=84 entry_id=84 connection_id=3601 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.706920Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=92 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.706924Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=101 slot_index=128 delay_ms=160000 [INFO] [stdout] 2026-07-09T10:52:39.706946Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=92 entry_id=92 connection_id=91 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.706970Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=101 entry_id=101 connection_id=100 delay_ms=160000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.706970Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=85 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.707000Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=85 entry_id=85 connection_id=3701 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.707053Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=102 slot_index=228 delay_ms=161000 [INFO] [stdout] 2026-07-09T10:52:39.707067Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=93 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.707078Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=102 entry_id=102 connection_id=101 delay_ms=161000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.707107Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=86 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.707095Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=93 entry_id=93 connection_id=92 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.707135Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=86 entry_id=86 connection_id=4001 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.707138Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=103 slot_index=328 delay_ms=162000 [INFO] [stdout] 2026-07-09T10:52:39.707161Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=103 entry_id=103 connection_id=102 delay_ms=162000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.707235Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=104 slot_index=428 delay_ms=163000 [INFO] [stdout] 2026-07-09T10:52:39.707239Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=87 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.707263Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=104 entry_id=104 connection_id=103 delay_ms=163000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.707268Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=87 entry_id=87 connection_id=3901 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.707303Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=94 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.707336Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=105 slot_index=16 delay_ms=164000 [INFO] [stdout] 2026-07-09T10:52:39.707335Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=94 entry_id=94 connection_id=93 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.707360Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=105 entry_id=105 connection_id=104 delay_ms=164000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.707377Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=88 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.707406Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=88 entry_id=88 connection_id=4101 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.707442Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=106 slot_index=116 delay_ms=165000 [INFO] [stdout] 2026-07-09T10:52:39.707472Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=807311785 [INFO] [stdout] 2026-07-09T10:52:39.707477Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=106 entry_id=106 connection_id=105 delay_ms=165000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.707504Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=807311785 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.707526Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=89 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.707556Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=89 entry_id=89 connection_id=4201 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.707557Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=107 slot_index=216 delay_ms=166000 [INFO] [stdout] 2026-07-09T10:52:39.707586Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=107 entry_id=107 connection_id=106 delay_ms=166000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.707588Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=95 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.707619Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=95 entry_id=95 connection_id=94 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.707664Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=90 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.707667Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=108 slot_index=316 delay_ms=167000 [INFO] [stdout] 2026-07-09T10:52:39.707694Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=90 entry_id=90 connection_id=4301 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.707729Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=96 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.707742Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=135 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.707760Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=96 entry_id=96 connection_id=95 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.707768Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=135 entry_id=135 connection_id=134 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.707813Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=91 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.707852Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=91 entry_id=91 connection_id=4401 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.707855Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=136 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.707896Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=97 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.707899Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=136 entry_id=136 connection_id=135 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.666615Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 112, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" } [INFO] [stdout] 2026-07-09T10:52:39.707929Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=97 entry_id=97 connection_id=96 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.707962Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=112 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.707984Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=112 seq=4 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.707993Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=137 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.707981Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=92 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.708022Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=137 entry_id=137 connection_id=136 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.708032Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=98 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.708032Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=112 remote_addr=127.0.0.1:9011 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 12, payload_length: 8, recv_window_size: 251, timestamp: 262, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.708057Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=98 entry_id=98 connection_id=97 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.708041Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=92 entry_id=92 connection_id=4501 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.708100Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=138 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.708122Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=99 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.708132Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=138 entry_id=138 connection_id=137 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.708143Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=99 entry_id=99 connection_id=98 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.708179Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=93 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.708210Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=139 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.708217Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=93 entry_id=93 connection_id=4601 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.708238Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=139 entry_id=139 connection_id=138 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.708312Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=140 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.708351Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=100 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.708352Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=140 entry_id=140 connection_id=139 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.708371Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=100 entry_id=100 connection_id=99 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.708089Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=112 frame=Push { header: ShortHeader { command: Push, connection_id: 112, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" } [INFO] [stdout] 2026-07-09T10:52:39.708427Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=101 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.708433Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=141 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.708456Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=101 entry_id=101 connection_id=100 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.708462Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=141 entry_id=141 connection_id=140 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.706717Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 109, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08" } [INFO] [stdout] 2026-07-09T10:52:39.708315Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=94 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.708509Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=109 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.708528Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=109 seq=2 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.708540Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=142 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.708538Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=94 entry_id=94 connection_id=4701 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.708552Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=109 remote_addr=127.0.0.1:9008 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 9, payload_length: 8, recv_window_size: 253, timestamp: 264, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.708567Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=142 entry_id=142 connection_id=141 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.708643Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=143 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.708659Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=95 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.708671Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=143 entry_id=143 connection_id=142 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.708686Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=95 entry_id=95 connection_id=602 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.708401Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 112, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" } [INFO] [stdout] 2026-07-09T10:52:39.708714Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=112 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.708734Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=112 seq=5 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.708736Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=144 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.708754Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=112 remote_addr=127.0.0.1:9011 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 12, payload_length: 8, recv_window_size: 250, timestamp: 263, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.708773Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=96 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.708796Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=96 entry_id=96 connection_id=4801 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.705855Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=16 frame=Ack { header: ShortHeader { command: Ack, connection_id: 16, payload_length: 8, recv_window_size: 255, timestamp: 172, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.708831Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 16, payload_length: 8, recv_window_size: 255, timestamp: 172, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.708862Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=16 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.708898Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=16 [INFO] [stdout] 2026-07-09T10:52:39.708906Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=102 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.708912Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=97 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.708919Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=16 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.708928Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=102 entry_id=102 connection_id=101 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.708947Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=97 entry_id=97 connection_id=4901 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.708971Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.708994Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.709015Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=259 srtt_ms=259 rttvar_ms=129 rto_ms=779 [INFO] [stdout] 2026-07-09T10:52:39.709034Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.709031Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=103 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.709046Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.709054Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=103 entry_id=103 connection_id=102 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.709057Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=98 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.709059Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:33087 frame_count=1 bytes=27 [INFO] [stdout] 2026-07-09T10:52:39.707696Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=108 entry_id=108 connection_id=107 delay_ms=167000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.709085Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=98 entry_id=98 connection_id=201 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.708794Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=112 frame=Push { header: ShortHeader { command: Push, connection_id: 112, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" } [INFO] [stdout] 2026-07-09T10:52:39.709140Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=104 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.709169Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=104 entry_id=104 connection_id=103 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.709169Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=109 slot_index=416 delay_ms=168000 [INFO] [stdout] 2026-07-09T10:52:39.709193Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=99 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.709197Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=109 entry_id=109 connection_id=108 delay_ms=168000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.709217Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=105 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.709221Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=99 entry_id=99 connection_id=101 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.709236Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=105 entry_id=105 connection_id=104 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.709239Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:49785 frame_count=1 bytes=27 [INFO] [stdout] 2026-07-09T10:52:39.709274Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=110 slot_index=4 delay_ms=169000 [INFO] [stdout] 2026-07-09T10:52:39.709302Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=110 entry_id=110 connection_id=109 delay_ms=169000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.709327Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=100 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.709355Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=100 entry_id=100 connection_id=301 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.709383Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=106 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.709072Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=16 frame=Ack { header: ShortHeader { command: Ack, connection_id: 16, payload_length: 8, recv_window_size: 254, timestamp: 173, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.709120Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 112, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" } [INFO] [stdout] 2026-07-09T10:52:39.709417Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=106 entry_id=106 connection_id=105 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.709419Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 16, payload_length: 8, recv_window_size: 254, timestamp: 173, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.709431Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=112 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.709442Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=16 recv_next_seq=0 recv_window=254 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.709463Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=16 [INFO] [stdout] 2026-07-09T10:52:39.709450Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=112 seq=6 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.708588Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=109 frame=Push { header: ShortHeader { command: Push, connection_id: 109, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08" } [INFO] [stdout] 2026-07-09T10:52:39.709480Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=16 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=254 [INFO] [stdout] 2026-07-09T10:52:39.709484Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=101 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.709490Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=112 remote_addr=127.0.0.1:9011 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 12, payload_length: 8, recv_window_size: 249, timestamp: 263, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.709506Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-07-09T10:52:39.709512Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=101 entry_id=101 connection_id=1 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.709521Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.709542Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=260 srtt_ms=260 rttvar_ms=97 rto_ms=650 [INFO] [stdout] 2026-07-09T10:52:39.709563Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.709576Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.709596Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=16 frame=Ack { header: ShortHeader { command: Ack, connection_id: 16, payload_length: 8, recv_window_size: 253, timestamp: 174, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.709622Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 16, payload_length: 8, recv_window_size: 253, timestamp: 174, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.709629Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=102 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.709641Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=16 recv_next_seq=0 recv_window=253 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.709662Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=16 [INFO] [stdout] 2026-07-09T10:52:39.709656Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=102 entry_id=102 connection_id=402 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.709675Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=16 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=253 [INFO] [stdout] 2026-07-09T10:52:39.709702Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-07-09T10:52:39.709717Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.709739Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=260 srtt_ms=260 rttvar_ms=73 rto_ms=553 [INFO] [stdout] 2026-07-09T10:52:39.709757Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.709767Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.709763Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=103 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.709488Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 109, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08" } [INFO] [stdout] 2026-07-09T10:52:39.709786Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=16 frame=Ack { header: ShortHeader { command: Ack, connection_id: 16, payload_length: 8, recv_window_size: 252, timestamp: 176, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.709792Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=109 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.709791Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=103 entry_id=103 connection_id=502 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.709521Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=112 frame=Push { header: ShortHeader { command: Push, connection_id: 112, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" } [INFO] [stdout] 2026-07-09T10:52:39.709810Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=109 seq=3 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.709813Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 16, payload_length: 8, recv_window_size: 252, timestamp: 176, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.709834Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=16 recv_next_seq=0 recv_window=252 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.709833Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=109 remote_addr=127.0.0.1:9008 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 9, payload_length: 8, recv_window_size: 252, timestamp: 265, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.709857Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=16 [INFO] [stdout] 2026-07-09T10:52:39.709383Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=111 slot_index=104 delay_ms=170000 [INFO] [stdout] 2026-07-09T10:52:39.709900Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=111 entry_id=111 connection_id=110 delay_ms=170000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.709914Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=107 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.709924Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=104 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.709937Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=107 entry_id=107 connection_id=106 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.709953Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=104 entry_id=104 connection_id=1102 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.710001Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=112 slot_index=204 delay_ms=171000 [INFO] [stdout] 2026-07-09T10:52:39.710037Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=112 entry_id=112 connection_id=111 delay_ms=171000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.710046Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=108 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.710067Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=105 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.710071Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=108 entry_id=108 connection_id=107 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.710093Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=105 entry_id=105 connection_id=702 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.710131Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=109 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.710154Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=109 entry_id=109 connection_id=108 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.710165Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=113 slot_index=304 delay_ms=172000 [INFO] [stdout] 2026-07-09T10:52:39.710186Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=106 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.710210Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=110 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.710211Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=106 entry_id=106 connection_id=802 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.710252Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=110 entry_id=110 connection_id=109 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.710284Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=113 entry_id=113 connection_id=112 delay_ms=172000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.710338Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=111 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.710341Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=107 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.710364Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=111 entry_id=111 connection_id=110 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.710368Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=107 entry_id=107 connection_id=902 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.710370Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=114 slot_index=404 delay_ms=173000 [INFO] [stdout] 2026-07-09T10:52:39.710396Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=114 entry_id=114 connection_id=113 delay_ms=173000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.710467Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=115 slot_index=504 delay_ms=174000 [INFO] [stdout] 2026-07-09T10:52:39.710472Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=108 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.710494Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=115 entry_id=115 connection_id=114 delay_ms=174000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.710497Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=108 entry_id=108 connection_id=1202 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.710556Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=116 slot_index=92 delay_ms=175000 [INFO] [stdout] 2026-07-09T10:52:39.710581Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=116 entry_id=116 connection_id=115 delay_ms=175000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.710598Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=109 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.710626Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=109 entry_id=109 connection_id=1402 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.710648Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=117 slot_index=192 delay_ms=176000 [INFO] [stdout] 2026-07-09T10:52:39.709864Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=109 frame=Push { header: ShortHeader { command: Push, connection_id: 109, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08" } [INFO] [stdout] 2026-07-09T10:52:39.710674Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=117 entry_id=117 connection_id=116 delay_ms=176000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.710726Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=110 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.710739Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=118 slot_index=292 delay_ms=177000 [INFO] [stdout] 2026-07-09T10:52:39.710754Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=110 entry_id=110 connection_id=1302 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.710764Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=118 entry_id=118 connection_id=117 delay_ms=177000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.710832Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=119 slot_index=392 delay_ms=178000 [INFO] [stdout] 2026-07-09T10:52:39.710856Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=111 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.708760Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=144 entry_id=144 connection_id=143 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.710903Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=111 entry_id=111 connection_id=1502 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.710931Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=112 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.710967Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=112 entry_id=112 connection_id=111 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.710968Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=145 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.710999Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=145 entry_id=145 connection_id=144 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.711006Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=112 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.711032Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=112 entry_id=112 connection_id=2202 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.711081Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=146 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.711114Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=146 entry_id=146 connection_id=145 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.711131Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=113 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.711186Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=113 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.711218Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=16 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=252 [INFO] [stdout] 2026-07-09T10:52:39.711252Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] 2026-07-09T10:52:39.711248Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=113 entry_id=113 connection_id=112 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.711282Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.711302Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=260 srtt_ms=260 rttvar_ms=55 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.711312Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=113 entry_id=113 connection_id=1602 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.711327Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.711338Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.711425Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=114 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.711336Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=114 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.706692Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=121 frame=Push { header: ShortHeader { command: Push, connection_id: 121, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14" } [INFO] [stdout] 2026-07-09T10:52:39.711482Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=114 entry_id=114 connection_id=113 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.711568Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=115 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.711601Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=115 entry_id=115 connection_id=114 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.710697Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 109, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08" } [INFO] [stdout] 2026-07-09T10:52:39.711685Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=116 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.711688Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=109 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.711715Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=109 seq=4 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.711718Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=116 entry_id=116 connection_id=115 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.711486Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 121, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14" } [INFO] [stdout] 2026-07-09T10:52:39.711773Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=121 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.711794Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=121 seq=2 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.711798Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=117 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.711744Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=109 remote_addr=127.0.0.1:9008 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 9, payload_length: 8, recv_window_size: 251, timestamp: 267, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.711825Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=117 entry_id=117 connection_id=116 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.711822Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=121 remote_addr=127.0.0.1:9020 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 21, payload_length: 8, recv_window_size: 253, timestamp: 260, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.711191Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=147 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.711905Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=147 entry_id=147 connection_id=146 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.711927Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.711940Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=118 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.711961Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.711979Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=118 entry_id=118 connection_id=117 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.712020Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=148 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.712064Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=148 entry_id=148 connection_id=147 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.711861Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=121 frame=Push { header: ShortHeader { command: Push, connection_id: 121, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14" } [INFO] [stdout] 2026-07-09T10:52:39.712135Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=119 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.712146Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=149 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.712172Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=119 entry_id=119 connection_id=118 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.712176Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=149 entry_id=149 connection_id=148 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.712256Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=150 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.712271Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=120 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.712289Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=150 entry_id=150 connection_id=149 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.712297Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=120 entry_id=120 connection_id=119 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.712367Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=151 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.712402Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=151 entry_id=151 connection_id=150 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.712456Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=114 entry_id=114 connection_id=1702 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.712449Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=16 frame=Ack { header: ShortHeader { command: Ack, connection_id: 16, payload_length: 8, recv_window_size: 251, timestamp: 177, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.712569Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=115 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.712592Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 16, payload_length: 8, recv_window_size: 251, timestamp: 177, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.712596Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=115 entry_id=115 connection_id=1802 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.712616Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=16 recv_next_seq=0 recv_window=251 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.712640Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=16 [INFO] [stdout] 2026-07-09T10:52:39.712656Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=16 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=251 [INFO] [stdout] 2026-07-09T10:52:39.712689Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-07-09T10:52:39.712693Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=116 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.711845Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=109 frame=Push { header: ShortHeader { command: Push, connection_id: 109, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08" } [INFO] [stdout] 2026-07-09T10:52:39.712707Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.712718Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=116 entry_id=116 connection_id=1902 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.712729Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=263 srtt_ms=260 rttvar_ms=42 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.712747Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.712761Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.712783Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=16 frame=Ack { header: ShortHeader { command: Ack, connection_id: 16, payload_length: 8, recv_window_size: 250, timestamp: 178, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.712809Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 16, payload_length: 8, recv_window_size: 250, timestamp: 178, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.712817Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=117 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.712828Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=16 recv_next_seq=0 recv_window=250 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.712847Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=16 [INFO] [stdout] 2026-07-09T10:52:39.712841Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=117 entry_id=117 connection_id=2002 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.712404Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=121 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.712928Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=121 entry_id=121 connection_id=120 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.712963Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=118 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.712989Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=118 entry_id=118 connection_id=2102 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.713018Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=122 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.713051Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=122 entry_id=122 connection_id=121 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.712725Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 109, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08" } [INFO] [stdout] 2026-07-09T10:52:39.713089Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=119 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.713105Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=123 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.713104Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=109 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.713120Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=119 entry_id=119 connection_id=2502 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.713129Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=109 seq=5 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.713131Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=123 entry_id=123 connection_id=122 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.713188Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=109 remote_addr=127.0.0.1:9008 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 9, payload_length: 8, recv_window_size: 250, timestamp: 268, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.712158Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 121, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14" } [INFO] [stdout] 2026-07-09T10:52:39.713216Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=120 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.713240Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=121 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.713244Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=120 entry_id=120 connection_id=2302 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.713260Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=121 seq=3 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.713288Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=121 remote_addr=127.0.0.1:9020 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 21, payload_length: 8, recv_window_size: 252, timestamp: 262, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.713341Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=121 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.713374Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=121 entry_id=121 connection_id=2402 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.713485Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=122 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.713520Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=122 entry_id=122 connection_id=2702 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.713330Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=121 frame=Push { header: ShortHeader { command: Push, connection_id: 121, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14" } [INFO] [stdout] 2026-07-09T10:52:39.713614Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=123 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.713638Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=123 entry_id=123 connection_id=2602 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.713243Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=109 frame=Push { header: ShortHeader { command: Push, connection_id: 109, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08" } [INFO] [stdout] 2026-07-09T10:52:39.713737Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=124 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.713770Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=124 entry_id=124 connection_id=2802 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.710857Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=119 entry_id=119 connection_id=118 delay_ms=178000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.713867Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=125 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.713913Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=125 entry_id=125 connection_id=1002 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.713988Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=120 slot_index=492 delay_ms=179000 [INFO] [stdout] 2026-07-09T10:52:39.713707Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 109, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08" } [INFO] [stdout] 2026-07-09T10:52:39.714017Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=126 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.714026Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=120 entry_id=120 connection_id=119 delay_ms=179000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.714037Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=109 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.714044Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=126 entry_id=126 connection_id=3502 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.714059Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=109 seq=6 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.714085Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=109 remote_addr=127.0.0.1:9008 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 9, payload_length: 8, recv_window_size: 249, timestamp: 269, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.714109Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=121 slot_index=80 delay_ms=180000 [INFO] [stdout] 2026-07-09T10:52:39.714136Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=127 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.714136Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=121 entry_id=121 connection_id=120 delay_ms=180000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.714160Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=127 entry_id=127 connection_id=2902 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.714214Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=122 slot_index=180 delay_ms=181000 [INFO] [stdout] 2026-07-09T10:52:39.714241Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=122 entry_id=122 connection_id=121 delay_ms=181000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.714310Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=123 slot_index=280 delay_ms=182000 [INFO] [stdout] 2026-07-09T10:52:39.714308Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=128 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.714336Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=123 entry_id=123 connection_id=122 delay_ms=182000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.714341Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=128 entry_id=128 connection_id=3002 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.714372Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=129 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.714389Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=129 entry_id=129 connection_id=3102 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.714121Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=109 frame=Push { header: ShortHeader { command: Push, connection_id: 109, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08" } [INFO] [stdout] 2026-07-09T10:52:39.714412Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=124 slot_index=380 delay_ms=183000 [INFO] [stdout] 2026-07-09T10:52:39.714444Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=124 entry_id=124 connection_id=123 delay_ms=183000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.714518Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=130 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.714525Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=125 slot_index=480 delay_ms=184000 [INFO] [stdout] 2026-07-09T10:52:39.714555Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=130 entry_id=130 connection_id=3202 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.714559Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=125 entry_id=125 connection_id=124 delay_ms=184000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.714639Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=126 slot_index=68 delay_ms=185000 [INFO] [stdout] 2026-07-09T10:52:39.714649Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=131 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.714674Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=131 entry_id=131 connection_id=3302 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.714673Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=126 entry_id=126 connection_id=125 delay_ms=185000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.714415Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 109, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08" } [INFO] [stdout] 2026-07-09T10:52:39.714752Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=127 slot_index=168 delay_ms=186000 [INFO] [stdout] 2026-07-09T10:52:39.714756Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=109 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.714767Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=132 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.714777Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=109 seq=7 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.714779Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=127 entry_id=127 connection_id=126 delay_ms=186000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.714790Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=132 entry_id=132 connection_id=3402 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.714803Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=109 remote_addr=127.0.0.1:9008 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 9, payload_length: 8, recv_window_size: 248, timestamp: 270, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.714909Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=133 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.714944Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=133 entry_id=133 connection_id=3802 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.714967Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=152 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.714998Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=152 entry_id=152 connection_id=151 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.714839Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=109 frame=Push { header: ShortHeader { command: Push, connection_id: 109, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08" } [INFO] [stdout] 2026-07-09T10:52:39.715037Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=134 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.715060Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=134 entry_id=134 connection_id=3602 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.715078Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=153 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.715105Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=153 entry_id=153 connection_id=152 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.709823Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 112, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" } [INFO] [stdout] 2026-07-09T10:52:39.715158Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=135 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.715163Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=112 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.715185Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=112 seq=7 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.715180Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=154 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.715183Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=135 entry_id=135 connection_id=3702 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.715208Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=154 entry_id=154 connection_id=153 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.715211Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=112 remote_addr=127.0.0.1:9011 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 12, payload_length: 8, recv_window_size: 248, timestamp: 269, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.715273Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=136 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.715042Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 109, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08" } [INFO] [stdout] 2026-07-09T10:52:39.715285Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=155 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.715305Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=136 entry_id=136 connection_id=4002 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.715305Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=109 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-07-09T10:52:39.715314Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=155 entry_id=155 connection_id=154 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.715324Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=109 seq=8 payload_len=640 [INFO] [stdout] 2026-07-09T10:52:39.715348Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=137 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.715394Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=156 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.715398Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=137 entry_id=137 connection_id=3902 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.715247Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=112 frame=Push { header: ShortHeader { command: Push, connection_id: 112, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" } [INFO] [stdout] 2026-07-09T10:52:39.715397Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=109 remote_addr=127.0.0.1:9008 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 9, payload_length: 8, recv_window_size: 247, timestamp: 271, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.715421Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=156 entry_id=156 connection_id=155 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.715463Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=138 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.715486Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=109 [INFO] [stdout] 2026-07-09T10:52:39.715486Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=138 entry_id=138 connection_id=4102 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.715496Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=157 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.715512Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=109 count=9 [INFO] [stdout] 2026-07-09T10:52:39.715523Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=157 entry_id=157 connection_id=156 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.715543Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=109 state=Established [INFO] [stdout] 2026-07-09T10:52:39.715575Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=139 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.715424Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 112, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" } [INFO] [stdout] 2026-07-09T10:52:39.715584Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=158 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.715600Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=139 entry_id=139 connection_id=4202 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.715605Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=112 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-07-09T10:52:39.715610Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=158 entry_id=158 connection_id=157 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.715625Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=112 seq=8 payload_len=640 [INFO] [stdout] 2026-07-09T10:52:39.715655Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=112 remote_addr=127.0.0.1:9011 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 12, payload_length: 8, recv_window_size: 247, timestamp: 269, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.715675Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=159 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.715691Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=112 [INFO] [stdout] 2026-07-09T10:52:39.715693Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=140 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.715699Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=159 entry_id=159 connection_id=158 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.715710Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=112 count=9 [INFO] [stdout] 2026-07-09T10:52:39.715718Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=140 entry_id=140 connection_id=4302 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.715740Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=112 state=Established [INFO] [stdout] 2026-07-09T10:52:39.715760Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=160 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.715783Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=160 entry_id=160 connection_id=159 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.715806Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=141 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.715830Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=141 entry_id=141 connection_id=4402 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.715832Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=113 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 13 } } [INFO] [stdout] 2026-07-09T10:52:39.715844Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=161 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.712860Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=16 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=250 [INFO] [stdout] 2026-07-09T10:52:39.715927Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=5 [INFO] [stdout] 2026-07-09T10:52:39.715926Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=142 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.715952Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=142 entry_id=142 connection_id=4502 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.715955Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.715948Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=114 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 14 } } [INFO] [stdout] 2026-07-09T10:52:39.715975Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=263 srtt_ms=261 rttvar_ms=32 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.715981Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 14 } } [INFO] [stdout] 2026-07-09T10:52:39.715993Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.715991Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=143 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.716000Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=114 peer_cid=14 state=Established [INFO] [stdout] 2026-07-09T10:52:39.716004Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=37 new_cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.716010Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=143 entry_id=143 connection_id=4602 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.716014Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=114 state=Established [INFO] [stdout] 2026-07-09T10:52:39.716028Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=16 frame=Ack { header: ShortHeader { command: Ack, connection_id: 16, payload_length: 8, recv_window_size: 249, timestamp: 182, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.716033Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=114 frame=Ack { header: ShortHeader { command: Ack, connection_id: 114, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.716042Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=144 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.716054Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 16, payload_length: 8, recv_window_size: 249, timestamp: 182, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.716055Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 114, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.716061Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=144 entry_id=144 connection_id=4702 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.716075Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=16 recv_next_seq=0 recv_window=249 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.716076Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=114 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.716094Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=114 [INFO] [stdout] 2026-07-09T10:52:39.716094Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=16 [INFO] [stdout] 2026-07-09T10:52:39.716095Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=145 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.716108Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=114 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.716110Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=16 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=249 [INFO] [stdout] 2026-07-09T10:52:39.716114Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=145 entry_id=145 connection_id=603 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.716137Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=6 [INFO] [stdout] 2026-07-09T10:52:39.716138Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.716142Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=146 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.716155Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.716158Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.716159Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=146 entry_id=146 connection_id=4802 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.716174Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=267 srtt_ms=261 rttvar_ms=25 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.716176Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=268 srtt_ms=268 rttvar_ms=134 rto_ms=806 [INFO] [stdout] 2026-07-09T10:52:39.716188Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=147 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.716191Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=39 [INFO] [stdout] 2026-07-09T10:52:39.716193Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.716204Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=38 new_cwnd=39 [INFO] [stdout] 2026-07-09T10:52:39.716206Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.716205Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=147 entry_id=147 connection_id=4902 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.716223Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=16 frame=Ack { header: ShortHeader { command: Ack, connection_id: 16, payload_length: 8, recv_window_size: 248, timestamp: 186, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.716234Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=148 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.716246Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 16, payload_length: 8, recv_window_size: 248, timestamp: 186, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.716253Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=148 entry_id=148 connection_id=202 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.716267Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=16 recv_next_seq=0 recv_window=248 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.716286Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=16 [INFO] [stdout] 2026-07-09T10:52:39.716285Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=149 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.716299Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=16 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=248 [INFO] [stdout] 2026-07-09T10:52:39.716303Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=149 entry_id=149 connection_id=102 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.716322Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=7 [INFO] [stdout] 2026-07-09T10:52:39.716333Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=150 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.716336Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.716351Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=150 entry_id=150 connection_id=302 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.716354Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=267 srtt_ms=262 rttvar_ms=20 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.716227Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=114 frame=Push { header: ShortHeader { command: Push, connection_id: 114, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r" } [INFO] [stdout] 2026-07-09T10:52:39.716379Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=151 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.713197Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=124 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.716397Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=151 entry_id=151 connection_id=2 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.716407Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=124 entry_id=124 connection_id=123 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.716427Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=152 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.716456Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=152 entry_id=152 connection_id=403 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.712025Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.716488Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=153 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.716501Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.716506Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=153 entry_id=153 connection_id=503 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.716532Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=154 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.716555Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=154 entry_id=154 connection_id=1103 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.716371Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=40 [INFO] [stdout] 2026-07-09T10:52:39.716587Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=155 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.716590Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=39 new_cwnd=40 [INFO] [stdout] 2026-07-09T10:52:39.716402Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 114, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r" } [INFO] [stdout] 2026-07-09T10:52:39.716604Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=155 entry_id=155 connection_id=703 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.716612Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=16 frame=Ack { header: ShortHeader { command: Ack, connection_id: 16, payload_length: 8, recv_window_size: 247, timestamp: 186, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.716617Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=114 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.716633Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=156 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.716636Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 16, payload_length: 8, recv_window_size: 247, timestamp: 186, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.716642Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=114 seq=0 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.716651Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=156 entry_id=156 connection_id=803 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.716658Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=16 recv_next_seq=0 recv_window=247 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.716675Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=16 [INFO] [stdout] 2026-07-09T10:52:39.716681Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=157 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.716672Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=114 remote_addr=127.0.0.1:9013 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 14, payload_length: 8, recv_window_size: 255, timestamp: 270, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.716689Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=16 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=247 [INFO] [stdout] 2026-07-09T10:52:39.716699Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=157 entry_id=157 connection_id=903 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.716717Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=8 [INFO] [stdout] 2026-07-09T10:52:39.716731Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=158 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.716732Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.716749Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=158 entry_id=158 connection_id=1203 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.713617Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 121, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14" } [INFO] [stdout] 2026-07-09T10:52:39.716782Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=159 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.716798Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=121 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.716826Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=121 seq=4 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.716714Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=114 frame=Push { header: ShortHeader { command: Push, connection_id: 114, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r" } [INFO] [stdout] 2026-07-09T10:52:39.716853Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=121 remote_addr=127.0.0.1:9020 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 21, payload_length: 8, recv_window_size: 251, timestamp: 265, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.716799Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=159 entry_id=159 connection_id=1403 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.716957Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=125 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.716988Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=125 entry_id=125 connection_id=124 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.717022Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=160 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.716751Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=267 srtt_ms=263 rttvar_ms=16 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.717048Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=160 entry_id=160 connection_id=1303 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.717061Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=41 [INFO] [stdout] 2026-07-09T10:52:39.717074Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=40 new_cwnd=41 [INFO] [stdout] 2026-07-09T10:52:39.717093Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=16 [INFO] [stdout] 2026-07-09T10:52:39.717113Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=16 state=Established [INFO] [stdout] 2026-07-09T10:52:39.717136Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=161 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.717159Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=161 entry_id=161 connection_id=1503 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.717197Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=119 [INFO] [stdout] 2026-07-09T10:52:39.716932Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=121 frame=Push { header: ShortHeader { command: Push, connection_id: 121, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14" } [INFO] [stdout] 2026-07-09T10:52:39.717220Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=119 state=Established [INFO] [stdout] 2026-07-09T10:52:39.717259Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=162 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.717300Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=162 entry_id=162 connection_id=2203 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.717369Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=126 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.717393Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=163 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.717405Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=126 entry_id=126 connection_id=125 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.717416Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=163 entry_id=163 connection_id=1603 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.717232Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 121, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14" } [INFO] [stdout] 2026-07-09T10:52:39.717521Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=164 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.717523Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=121 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.717533Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=127 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.717545Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=121 seq=5 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.717546Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=164 entry_id=164 connection_id=1703 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.717562Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=127 entry_id=127 connection_id=126 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.717573Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=121 remote_addr=127.0.0.1:9020 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 21, payload_length: 8, recv_window_size: 250, timestamp: 266, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.717626Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=165 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.717657Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=165 entry_id=165 connection_id=1803 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.717678Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=128 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.717707Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=128 entry_id=128 connection_id=127 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.717748Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=166 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.717779Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=166 entry_id=166 connection_id=1903 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.717815Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=101 slots_to_advance=10 max_advance=10 current_slot=20 [INFO] [stdout] 2026-07-09T10:52:39.717834Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=129 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.717864Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=129 entry_id=129 connection_id=128 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.717896Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=167 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.717922Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=167 entry_id=167 connection_id=2003 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.717265Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=48 [INFO] [stdout] 2026-07-09T10:52:39.717990Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=48 state=Established [INFO] [stdout] 2026-07-09T10:52:39.717886Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 114, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r" } [INFO] [stdout] 2026-07-09T10:52:39.718016Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=168 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.718037Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=114 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.718074Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=114 seq=1 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.718101Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=130 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.718134Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=130 entry_id=130 connection_id=129 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.718043Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=168 entry_id=168 connection_id=2103 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.718233Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=131 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.718262Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=131 entry_id=131 connection_id=130 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.718267Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=169 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.718294Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=169 entry_id=169 connection_id=2503 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.714857Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=128 slot_index=268 delay_ms=187000 [INFO] [stdout] 2026-07-09T10:52:39.718330Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=128 entry_id=128 connection_id=127 delay_ms=187000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.718344Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=170 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.718364Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=170 entry_id=170 connection_id=2303 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.718406Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=171 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.718426Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=171 entry_id=171 connection_id=2403 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.718428Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=129 slot_index=368 delay_ms=188000 [INFO] [stdout] 2026-07-09T10:52:39.718460Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=172 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.718458Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=129 entry_id=129 connection_id=128 delay_ms=188000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.718480Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=172 entry_id=172 connection_id=2703 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.718532Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=173 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.718539Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=130 slot_index=468 delay_ms=189000 [INFO] [stdout] 2026-07-09T10:52:39.718563Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=173 entry_id=173 connection_id=2603 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.718567Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=130 entry_id=130 connection_id=129 delay_ms=189000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.718612Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=174 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.718633Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=174 entry_id=174 connection_id=2803 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.718684Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=175 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.715866Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=161 entry_id=161 connection_id=160 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.718709Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=175 entry_id=175 connection_id=1003 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.718764Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=176 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.718771Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=162 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.718785Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=176 entry_id=176 connection_id=3503 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.718800Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=162 entry_id=162 connection_id=161 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.718837Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=177 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.718043Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=132 slots_to_advance=13 max_advance=13 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.717611Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=121 frame=Push { header: ShortHeader { command: Push, connection_id: 121, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14" } [INFO] [stdout] 2026-07-09T10:52:39.718940Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=133 slots_to_advance=13 max_advance=13 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.719010Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=132 slots_to_advance=13 max_advance=13 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.719054Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=132 slots_to_advance=13 max_advance=13 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.719089Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=132 slots_to_advance=13 max_advance=13 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.719126Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=123 slots_to_advance=12 max_advance=12 current_slot=14 [INFO] [stdout] 2026-07-09T10:52:39.719165Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=131 slots_to_advance=13 max_advance=13 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.718964Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 121, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14" } [INFO] [stdout] 2026-07-09T10:52:39.719206Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=131 slots_to_advance=13 max_advance=13 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.719222Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=121 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.719241Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=121 seq=6 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.719260Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=105 [INFO] [stdout] 2026-07-09T10:52:39.719268Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=121 remote_addr=127.0.0.1:9020 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 21, payload_length: 8, recv_window_size: 249, timestamp: 268, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.719283Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=105 state=Established [INFO] [stdout] 2026-07-09T10:52:39.719320Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=130 slots_to_advance=13 max_advance=13 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.719364Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=119 slots_to_advance=11 max_advance=11 current_slot=14 [INFO] [stdout] 2026-07-09T10:52:39.719404Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=119 slots_to_advance=11 max_advance=11 current_slot=14 [INFO] [stdout] 2026-07-09T10:52:39.719448Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=119 slots_to_advance=11 max_advance=11 current_slot=14 [INFO] [stdout] 2026-07-09T10:52:39.719487Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=75 slots_to_advance=7 max_advance=7 current_slot=18 [INFO] [stdout] 2026-07-09T10:52:39.719533Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=110 [INFO] [stdout] 2026-07-09T10:52:39.719305Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=121 frame=Push { header: ShortHeader { command: Push, connection_id: 121, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14" } [INFO] [stdout] 2026-07-09T10:52:39.719553Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=110 state=Established [INFO] [stdout] 2026-07-09T10:52:39.719592Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=45 slots_to_advance=4 max_advance=4 current_slot=21 [INFO] [stdout] 2026-07-09T10:52:39.719632Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=44 slots_to_advance=4 max_advance=4 current_slot=21 [INFO] [stdout] 2026-07-09T10:52:39.719670Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=44 slots_to_advance=4 max_advance=4 current_slot=21 [INFO] [stdout] 2026-07-09T10:52:39.719710Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=111 [INFO] [stdout] 2026-07-09T10:52:39.719729Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=111 state=Established [INFO] [stdout] 2026-07-09T10:52:39.719764Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=115 [INFO] [stdout] 2026-07-09T10:52:39.719782Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=115 state=Established [INFO] [stdout] 2026-07-09T10:52:39.719565Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 121, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14" } [INFO] [stdout] 2026-07-09T10:52:39.719816Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=15 [INFO] [stdout] 2026-07-09T10:52:39.719815Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=121 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.719833Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=121 seq=7 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.719836Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=15 state=Established [INFO] [stdout] 2026-07-09T10:52:39.718860Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=177 entry_id=177 connection_id=3003 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.719917Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=132 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.719975Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=178 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.719975Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=132 entry_id=132 connection_id=131 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.720002Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=178 entry_id=178 connection_id=2903 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.718100Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=114 remote_addr=127.0.0.1:9013 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 14, payload_length: 8, recv_window_size: 254, timestamp: 271, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.720057Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=179 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.720079Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=179 entry_id=179 connection_id=3103 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.720129Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=180 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.720158Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=180 entry_id=180 connection_id=3203 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.720205Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=181 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.720262Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=131 slot_index=56 delay_ms=190000 [INFO] [stdout] 2026-07-09T10:52:39.720296Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=131 entry_id=131 connection_id=130 delay_ms=190000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.720346Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=181 entry_id=181 connection_id=3303 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.720380Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=132 slot_index=156 delay_ms=191000 [INFO] [stdout] 2026-07-09T10:52:39.720411Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=182 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.720408Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=132 entry_id=132 connection_id=131 delay_ms=191000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.720434Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=182 entry_id=182 connection_id=3803 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.720490Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=183 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.718861Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=163 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.720529Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=183 entry_id=183 connection_id=3403 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.720541Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=163 entry_id=163 connection_id=162 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.720580Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=184 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.720602Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=184 entry_id=184 connection_id=3603 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.720624Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=164 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.720649Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=185 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.720652Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=164 entry_id=164 connection_id=163 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.720671Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=185 entry_id=185 connection_id=3703 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.720716Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=186 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.720736Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=186 entry_id=186 connection_id=4003 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.720774Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=187 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.720803Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=187 entry_id=187 connection_id=3903 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.720726Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=165 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.720832Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=165 entry_id=165 connection_id=164 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.720848Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=188 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.720067Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=114 frame=Push { header: ShortHeader { command: Push, connection_id: 114, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r" } [INFO] [stdout] 2026-07-09T10:52:39.720977Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=166 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.721012Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=166 entry_id=166 connection_id=165 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.720904Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 114, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r" } [INFO] [stdout] 2026-07-09T10:52:39.721052Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=114 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.721071Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=114 seq=2 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.721092Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=167 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.721105Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=114 remote_addr=127.0.0.1:9013 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 14, payload_length: 8, recv_window_size: 253, timestamp: 274, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.721120Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=167 entry_id=167 connection_id=166 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.721191Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=168 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.721216Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=168 entry_id=168 connection_id=167 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.721146Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=114 frame=Push { header: ShortHeader { command: Push, connection_id: 114, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r" } [INFO] [stdout] 2026-07-09T10:52:39.721345Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=133 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.721381Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=133 entry_id=133 connection_id=132 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.721316Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 114, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r" } [INFO] [stdout] 2026-07-09T10:52:39.721482Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=114 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.721502Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=114 seq=3 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.721499Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=134 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.721525Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=114 remote_addr=127.0.0.1:9013 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 14, payload_length: 8, recv_window_size: 252, timestamp: 274, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.721531Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=134 entry_id=134 connection_id=133 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.720492Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=133 slot_index=256 delay_ms=192000 [INFO] [stdout] 2026-07-09T10:52:39.721630Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=133 entry_id=133 connection_id=132 delay_ms=192000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.721554Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=114 frame=Push { header: ShortHeader { command: Push, connection_id: 114, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r" } [INFO] [stdout] 2026-07-09T10:52:39.721716Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=134 slot_index=356 delay_ms=193000 [INFO] [stdout] 2026-07-09T10:52:39.721744Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=134 entry_id=134 connection_id=133 delay_ms=193000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.721823Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=135 slot_index=456 delay_ms=194000 [INFO] [stdout] 2026-07-09T10:52:39.719857Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=121 remote_addr=127.0.0.1:9020 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 21, payload_length: 8, recv_window_size: 248, timestamp: 268, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.721924Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=135 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.721960Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=135 entry_id=135 connection_id=134 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.721857Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=135 entry_id=135 connection_id=134 delay_ms=194000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.721919Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=121 frame=Push { header: ShortHeader { command: Push, connection_id: 121, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14" } [INFO] [stdout] 2026-07-09T10:52:39.722108Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=136 slot_index=44 delay_ms=195000 [INFO] [stdout] 2026-07-09T10:52:39.722137Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=136 entry_id=136 connection_id=135 delay_ms=195000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.722214Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=137 slot_index=144 delay_ms=196000 [INFO] [stdout] 2026-07-09T10:52:39.722246Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=188 entry_id=188 connection_id=4103 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.722253Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=137 entry_id=137 connection_id=136 delay_ms=196000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.722319Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=189 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.722334Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=138 slot_index=244 delay_ms=197000 [INFO] [stdout] 2026-07-09T10:52:39.722361Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=138 entry_id=138 connection_id=137 delay_ms=197000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.722438Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=139 slot_index=344 delay_ms=198000 [INFO] [stdout] 2026-07-09T10:52:39.722468Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=139 entry_id=139 connection_id=138 delay_ms=198000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.722356Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=189 entry_id=189 connection_id=4203 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.722535Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=140 slot_index=444 delay_ms=199000 [INFO] [stdout] 2026-07-09T10:52:39.722536Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=190 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.722560Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=140 entry_id=140 connection_id=139 delay_ms=199000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.722566Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=190 entry_id=190 connection_id=4303 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.722623Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=141 slot_index=32 delay_ms=200000 [INFO] [stdout] 2026-07-09T10:52:39.722625Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=191 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.722647Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=141 entry_id=141 connection_id=140 delay_ms=200000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.722651Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=191 entry_id=191 connection_id=103 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.722708Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=192 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.722722Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=142 slot_index=132 delay_ms=201000 [INFO] [stdout] 2026-07-09T10:52:39.722736Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=192 entry_id=192 connection_id=4403 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.722751Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=142 entry_id=142 connection_id=141 delay_ms=201000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.722794Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=193 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.722816Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=143 slot_index=232 delay_ms=202000 [INFO] [stdout] 2026-07-09T10:52:39.722821Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=193 entry_id=193 connection_id=4503 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.721283Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=169 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.722080Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 121, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14" } [INFO] [stdout] 2026-07-09T10:52:39.722913Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=121 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-07-09T10:52:39.722938Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=121 seq=8 payload_len=640 [INFO] [stdout] 2026-07-09T10:52:39.722958Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=169 entry_id=169 connection_id=168 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.722976Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=121 remote_addr=127.0.0.1:9020 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 21, payload_length: 8, recv_window_size: 247, timestamp: 272, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.723015Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=121 [INFO] [stdout] 2026-07-09T10:52:39.723039Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=121 count=9 [INFO] [stdout] 2026-07-09T10:52:39.723038Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=170 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.723063Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=170 entry_id=170 connection_id=169 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.723075Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=121 state=Established [INFO] [stdout] 2026-07-09T10:52:39.723132Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=171 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.723156Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=171 entry_id=171 connection_id=170 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.723222Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=172 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.723247Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=172 entry_id=172 connection_id=171 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.723316Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=173 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.723319Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=33 [INFO] [stdout] 2026-07-09T10:52:39.723344Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=173 entry_id=173 connection_id=172 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.723349Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=33 state=Established [INFO] [stdout] 2026-07-09T10:52:39.723405Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=224 slots_to_advance=22 max_advance=22 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.723421Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=174 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.723450Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=174 entry_id=174 connection_id=173 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.723485Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=222 slots_to_advance=22 max_advance=22 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.723526Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=175 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.723548Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=222 slots_to_advance=22 max_advance=22 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.723554Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=175 entry_id=175 connection_id=174 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.723620Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=130 [INFO] [stdout] 2026-07-09T10:52:39.723643Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=130 state=Established [INFO] [stdout] 2026-07-09T10:52:39.723667Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=42 slots_to_advance=4 max_advance=4 current_slot=21 [INFO] [stdout] 2026-07-09T10:52:39.723701Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=30 [INFO] [stdout] 2026-07-09T10:52:39.723729Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=30 state=Established [INFO] [stdout] 2026-07-09T10:52:39.723726Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=46 slots_to_advance=4 max_advance=4 current_slot=21 [INFO] [stdout] 2026-07-09T10:52:39.723773Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=132 [INFO] [stdout] 2026-07-09T10:52:39.723775Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=46 slots_to_advance=4 max_advance=4 current_slot=21 [INFO] [stdout] 2026-07-09T10:52:39.723793Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=132 state=Established [INFO] [stdout] 2026-07-09T10:52:39.723814Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=44 slots_to_advance=4 max_advance=4 current_slot=21 [INFO] [stdout] 2026-07-09T10:52:39.723830Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=131 [INFO] [stdout] 2026-07-09T10:52:39.723849Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=131 state=Established [INFO] [stdout] 2026-07-09T10:52:39.723854Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=45 slots_to_advance=4 max_advance=4 current_slot=21 [INFO] [stdout] 2026-07-09T10:52:39.721718Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 114, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r" } [INFO] [stdout] 2026-07-09T10:52:39.723906Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=114 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.723920Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=46 slots_to_advance=4 max_advance=4 current_slot=21 [INFO] [stdout] 2026-07-09T10:52:39.723926Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=114 seq=4 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.723961Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=114 remote_addr=127.0.0.1:9013 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 14, payload_length: 8, recv_window_size: 251, timestamp: 277, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.723972Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=152 slots_to_advance=15 max_advance=15 current_slot=10 [INFO] [stdout] 2026-07-09T10:52:39.724018Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=124 [INFO] [stdout] 2026-07-09T10:52:39.724039Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=124 state=Established [INFO] [stdout] 2026-07-09T10:52:39.723996Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=114 frame=Push { header: ShortHeader { command: Push, connection_id: 114, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r" } [INFO] [stdout] 2026-07-09T10:52:39.724136Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=122 [INFO] [stdout] 2026-07-09T10:52:39.724161Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=122 state=Established [INFO] [stdout] 2026-07-09T10:52:39.724245Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=148 slots_to_advance=14 max_advance=14 current_slot=10 [INFO] [stdout] 2026-07-09T10:52:39.724142Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 114, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r" } [INFO] [stdout] 2026-07-09T10:52:39.724278Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=114 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.724292Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=114 seq=5 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.724331Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=106 [INFO] [stdout] 2026-07-09T10:52:39.724342Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=114 remote_addr=127.0.0.1:9013 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 14, payload_length: 8, recv_window_size: 250, timestamp: 277, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.724354Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=106 state=Established [INFO] [stdout] 2026-07-09T10:52:39.724466Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=7 frame=Ack { header: ShortHeader { command: Ack, connection_id: 7, payload_length: 8, recv_window_size: 255, timestamp: 195, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.724378Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=114 frame=Push { header: ShortHeader { command: Push, connection_id: 114, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r" } [INFO] [stdout] 2026-07-09T10:52:39.724506Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 7, payload_length: 8, recv_window_size: 255, timestamp: 195, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.724530Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=7 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.724553Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=7 [INFO] [stdout] 2026-07-09T10:52:39.724572Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=7 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.724615Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.724636Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.724516Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 114, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r" } [INFO] [stdout] 2026-07-09T10:52:39.724659Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=280 srtt_ms=280 rttvar_ms=140 rto_ms=840 [INFO] [stdout] 2026-07-09T10:52:39.724667Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=114 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.724679Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.724682Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=114 seq=6 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.724691Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.724702Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=114 remote_addr=127.0.0.1:9013 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 14, payload_length: 8, recv_window_size: 249, timestamp: 278, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.724714Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=7 frame=Ack { header: ShortHeader { command: Ack, connection_id: 7, payload_length: 8, recv_window_size: 254, timestamp: 195, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.724740Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 7, payload_length: 8, recv_window_size: 254, timestamp: 195, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.724761Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=7 recv_next_seq=0 recv_window=254 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.724781Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=7 [INFO] [stdout] 2026-07-09T10:52:39.724794Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=7 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=254 [INFO] [stdout] 2026-07-09T10:52:39.724820Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-07-09T10:52:39.724836Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.724727Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=114 frame=Push { header: ShortHeader { command: Push, connection_id: 114, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r" } [INFO] [stdout] 2026-07-09T10:52:39.724856Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=280 srtt_ms=280 rttvar_ms=105 rto_ms=700 [INFO] [stdout] 2026-07-09T10:52:39.724906Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=194 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.724915Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=136 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.725035Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=136 entry_id=136 connection_id=135 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.724863Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 114, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r" } [INFO] [stdout] 2026-07-09T10:52:39.725175Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=114 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.725179Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=137 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.725194Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=114 seq=7 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.725210Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=137 entry_id=137 connection_id=136 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.725217Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=114 remote_addr=127.0.0.1:9013 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 14, payload_length: 8, recv_window_size: 248, timestamp: 278, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.725247Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=114 frame=Push { header: ShortHeader { command: Push, connection_id: 114, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r" } [INFO] [stdout] 2026-07-09T10:52:39.725333Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=138 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.725363Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=138 entry_id=138 connection_id=137 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.725331Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 114, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r" } [INFO] [stdout] 2026-07-09T10:52:39.725411Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=114 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-07-09T10:52:39.725425Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=114 seq=8 payload_len=640 [INFO] [stdout] 2026-07-09T10:52:39.725444Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=114 remote_addr=127.0.0.1:9013 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 14, payload_length: 8, recv_window_size: 247, timestamp: 278, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.725471Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=114 [INFO] [stdout] 2026-07-09T10:52:39.725472Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=139 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.725489Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=114 count=9 [INFO] [stdout] 2026-07-09T10:52:39.725501Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=139 entry_id=139 connection_id=138 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.725516Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=114 state=Established [INFO] [stdout] 2026-07-09T10:52:39.724939Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=143 entry_id=143 connection_id=142 delay_ms=202000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.725638Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=28 [INFO] [stdout] 2026-07-09T10:52:39.725657Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=144 slot_index=332 delay_ms=203000 [INFO] [stdout] 2026-07-09T10:52:39.725666Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=28 state=Established [INFO] [stdout] 2026-07-09T10:52:39.725689Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=144 entry_id=144 connection_id=143 delay_ms=203000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.725759Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=4 frame=Ack { header: ShortHeader { command: Ack, connection_id: 4, payload_length: 8, recv_window_size: 255, timestamp: 130, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.725817Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=32 [INFO] [stdout] 2026-07-09T10:52:39.725835Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=32 state=Established [INFO] [stdout] 2026-07-09T10:52:39.723638Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=176 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.725866Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=133 [INFO] [stdout] 2026-07-09T10:52:39.725864Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=176 entry_id=176 connection_id=175 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.725905Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=133 state=Established [INFO] [stdout] 2026-07-09T10:52:39.725944Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=176 slots_to_advance=17 max_advance=17 current_slot=5 [INFO] [stdout] 2026-07-09T10:52:39.725977Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=177 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.726007Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=177 entry_id=177 connection_id=176 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.726085Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=178 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.726118Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=178 entry_id=178 connection_id=177 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.726195Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=179 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.726230Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=179 entry_id=179 connection_id=178 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.726309Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=180 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.726347Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=180 entry_id=180 connection_id=179 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.726425Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=181 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.726457Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=181 entry_id=181 connection_id=180 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.726535Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=182 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.726561Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=182 entry_id=182 connection_id=181 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.726633Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=183 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.726410Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=125 frame=Push { header: ShortHeader { command: Push, connection_id: 125, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18" } [INFO] [stdout] 2026-07-09T10:52:39.726658Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=183 entry_id=183 connection_id=182 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.726734Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=184 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.726762Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=184 entry_id=184 connection_id=183 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.726826Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=185 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.726850Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=185 entry_id=185 connection_id=184 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.725766Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=145 slot_index=432 delay_ms=204000 [INFO] [stdout] 2026-07-09T10:52:39.726912Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=145 entry_id=145 connection_id=144 delay_ms=204000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.726929Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=140 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.726967Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=140 entry_id=140 connection_id=139 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.727009Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=146 slot_index=20 delay_ms=205000 [INFO] [stdout] 2026-07-09T10:52:39.727037Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=146 entry_id=146 connection_id=145 delay_ms=205000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.727075Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=141 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.727104Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=141 entry_id=141 connection_id=140 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.727134Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=147 slot_index=120 delay_ms=206000 [INFO] [stdout] 2026-07-09T10:52:39.727161Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=147 entry_id=147 connection_id=146 delay_ms=206000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.727190Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=194 entry_id=194 connection_id=4603 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.727233Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=148 slot_index=220 delay_ms=207000 [INFO] [stdout] 2026-07-09T10:52:39.727260Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=195 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.727260Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=148 entry_id=148 connection_id=147 delay_ms=207000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.727284Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=195 entry_id=195 connection_id=4703 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.727323Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=196 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.727331Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=149 slot_index=320 delay_ms=208000 [INFO] [stdout] 2026-07-09T10:52:39.727346Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=196 entry_id=196 connection_id=604 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.727357Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=149 entry_id=149 connection_id=148 delay_ms=208000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.727392Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=197 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.727413Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=197 entry_id=197 connection_id=4803 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.727430Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=150 slot_index=420 delay_ms=209000 [INFO] [stdout] 2026-07-09T10:52:39.727455Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=198 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.727455Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=150 entry_id=150 connection_id=149 delay_ms=209000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.727478Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=198 entry_id=198 connection_id=4903 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.727528Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=199 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.727529Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=151 slot_index=8 delay_ms=210000 [INFO] [stdout] 2026-07-09T10:52:39.727553Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=199 entry_id=199 connection_id=203 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.727557Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=151 entry_id=151 connection_id=150 delay_ms=210000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.727594Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=200 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.727615Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=200 entry_id=200 connection_id=504 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.727628Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=152 slot_index=108 delay_ms=211000 [INFO] [stdout] 2026-07-09T10:52:39.727654Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=152 entry_id=152 connection_id=151 delay_ms=211000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.727669Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=201 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.727694Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=201 entry_id=201 connection_id=303 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.727722Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=153 slot_index=208 delay_ms=212000 [INFO] [stdout] 2026-07-09T10:52:39.727737Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=202 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.727748Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=153 entry_id=153 connection_id=152 delay_ms=212000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.727756Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=202 entry_id=202 connection_id=3 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.727805Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=203 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.727821Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=154 slot_index=308 delay_ms=213000 [INFO] [stdout] 2026-07-09T10:52:39.727831Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=203 entry_id=203 connection_id=404 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.727848Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=154 entry_id=154 connection_id=153 delay_ms=213000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.727914Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 4, payload_length: 8, recv_window_size: 255, timestamp: 130, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.727928Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=142 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.728158Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=4 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.728185Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=4 [INFO] [stdout] 2026-07-09T10:52:39.728176Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=142 entry_id=142 connection_id=141 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.728204Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=4 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.728245Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.728271Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.728292Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=285 srtt_ms=285 rttvar_ms=142 rto_ms=855 [INFO] [stdout] 2026-07-09T10:52:39.728297Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=143 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.728314Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.728326Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.728328Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=143 entry_id=143 connection_id=142 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.728349Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=4 frame=Ack { header: ShortHeader { command: Ack, connection_id: 4, payload_length: 8, recv_window_size: 254, timestamp: 131, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.728379Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 4, payload_length: 8, recv_window_size: 254, timestamp: 131, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.728400Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=4 recv_next_seq=0 recv_window=254 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.728408Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=144 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.728417Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=4 [INFO] [stdout] 2026-07-09T10:52:39.728432Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=4 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=254 [INFO] [stdout] 2026-07-09T10:52:39.728435Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=144 entry_id=144 connection_id=143 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.726680Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 125, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18" } [INFO] [stdout] 2026-07-09T10:52:39.728472Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=125 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.728491Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=125 seq=0 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.728512Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=145 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.728526Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=125 remote_addr=127.0.0.1:9024 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 25, payload_length: 8, recv_window_size: 255, timestamp: 271, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.728540Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=145 entry_id=145 connection_id=144 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.728598Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=146 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.728631Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=146 entry_id=146 connection_id=145 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.728041Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.728688Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.728721Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=7 frame=Ack { header: ShortHeader { command: Ack, connection_id: 7, payload_length: 8, recv_window_size: 253, timestamp: 207, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.728748Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 7, payload_length: 8, recv_window_size: 253, timestamp: 207, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.728771Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=7 recv_next_seq=0 recv_window=253 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.728794Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=7 [INFO] [stdout] 2026-07-09T10:52:39.728810Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=7 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=253 [INFO] [stdout] 2026-07-09T10:52:39.728572Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=125 frame=Push { header: ShortHeader { command: Push, connection_id: 125, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18" } [INFO] [stdout] 2026-07-09T10:52:39.728844Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-07-09T10:52:39.728908Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=204 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.728941Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=204 entry_id=204 connection_id=704 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.728970Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=155 slot_index=408 delay_ms=214000 [INFO] [stdout] 2026-07-09T10:52:39.729008Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=205 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.729012Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=155 entry_id=155 connection_id=154 delay_ms=214000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.729038Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=205 entry_id=205 connection_id=1104 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.729224Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=206 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.729256Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=206 entry_id=206 connection_id=804 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.729316Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=207 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.729349Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=207 entry_id=207 connection_id=904 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.728843Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 125, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18" } [INFO] [stdout] 2026-07-09T10:52:39.729384Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=125 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.729404Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=125 seq=1 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.729091Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=156 slot_index=508 delay_ms=215000 [INFO] [stdout] 2026-07-09T10:52:39.729130Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-07-09T10:52:39.729441Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=156 entry_id=156 connection_id=155 delay_ms=215000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.729450Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.729471Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=285 srtt_ms=285 rttvar_ms=107 rto_ms=713 [INFO] [stdout] 2026-07-09T10:52:39.729488Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.729499Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.729520Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=4 frame=Ack { header: ShortHeader { command: Ack, connection_id: 4, payload_length: 8, recv_window_size: 253, timestamp: 132, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.729521Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=157 slot_index=96 delay_ms=216000 [INFO] [stdout] 2026-07-09T10:52:39.729544Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 4, payload_length: 8, recv_window_size: 253, timestamp: 132, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.729549Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=157 entry_id=157 connection_id=156 delay_ms=216000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.729563Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=4 recv_next_seq=0 recv_window=253 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.729582Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=4 [INFO] [stdout] 2026-07-09T10:52:39.729596Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=4 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=253 [INFO] [stdout] 2026-07-09T10:52:39.729617Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=158 slot_index=196 delay_ms=217000 [INFO] [stdout] 2026-07-09T10:52:39.729630Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-07-09T10:52:39.729644Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=158 entry_id=158 connection_id=157 delay_ms=217000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.729137Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=147 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.729691Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=147 entry_id=147 connection_id=146 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.729400Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=208 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.729756Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=148 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.729781Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=148 entry_id=148 connection_id=147 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.729645Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.728861Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.728120Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=186 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.729912Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=284 srtt_ms=280 rttvar_ms=79 rto_ms=600 [INFO] [stdout] 2026-07-09T10:52:39.729936Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.729967Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.729979Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=125 remote_addr=127.0.0.1:9024 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 25, payload_length: 8, recv_window_size: 254, timestamp: 273, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.729992Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=7 frame=Ack { header: ShortHeader { command: Ack, connection_id: 7, payload_length: 8, recv_window_size: 252, timestamp: 221, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.730020Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 7, payload_length: 8, recv_window_size: 252, timestamp: 221, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.730042Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=7 recv_next_seq=0 recv_window=252 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.730064Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=7 [INFO] [stdout] 2026-07-09T10:52:39.730079Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=7 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=252 [INFO] [stdout] 2026-07-09T10:52:39.730110Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] 2026-07-09T10:52:39.730129Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.729858Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=149 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.730220Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=159 slot_index=296 delay_ms=218000 [INFO] [stdout] 2026-07-09T10:52:39.730222Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=149 entry_id=149 connection_id=148 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.730252Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=159 entry_id=159 connection_id=158 delay_ms=218000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.729928Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=186 entry_id=186 connection_id=185 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.730334Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=160 slot_index=396 delay_ms=219000 [INFO] [stdout] 2026-07-09T10:52:39.730346Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=187 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.730366Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=160 entry_id=160 connection_id=159 delay_ms=219000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.730375Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=187 entry_id=187 connection_id=186 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.730446Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=188 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.729816Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=286 srtt_ms=285 rttvar_ms=80 rto_ms=608 [INFO] [stdout] 2026-07-09T10:52:39.730482Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:33087 frame_count=1 bytes=27 [INFO] [stdout] 2026-07-09T10:52:39.729781Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=208 entry_id=208 connection_id=1204 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.730149Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=285 srtt_ms=281 rttvar_ms=61 rto_ms=525 [INFO] [stdout] 2026-07-09T10:52:39.730526Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.730537Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.730557Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=209 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.730560Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=7 frame=Ack { header: ShortHeader { command: Ack, connection_id: 7, payload_length: 8, recv_window_size: 251, timestamp: 222, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.730581Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=209 entry_id=209 connection_id=1404 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.730587Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 7, payload_length: 8, recv_window_size: 251, timestamp: 222, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.730607Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=7 recv_next_seq=0 recv_window=251 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.730617Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=210 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.730627Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=7 [INFO] [stdout] 2026-07-09T10:52:39.730636Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=210 entry_id=210 connection_id=1304 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.730642Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=7 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=251 [INFO] [stdout] 2026-07-09T10:52:39.730670Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-07-09T10:52:39.730673Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=211 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.730685Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.730693Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=211 entry_id=211 connection_id=1504 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.730018Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=125 frame=Push { header: ShortHeader { command: Push, connection_id: 125, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18" } [INFO] [stdout] 2026-07-09T10:52:39.730704Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=286 srtt_ms=281 rttvar_ms=47 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.730724Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.730728Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=212 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.730736Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.730749Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=212 entry_id=212 connection_id=2204 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.730755Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=7 frame=Ack { header: ShortHeader { command: Ack, connection_id: 7, payload_length: 8, recv_window_size: 250, timestamp: 229, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.730780Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 7, payload_length: 8, recv_window_size: 250, timestamp: 229, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.730785Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=213 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.730800Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=7 recv_next_seq=0 recv_window=250 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.730804Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=213 entry_id=213 connection_id=1604 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.730819Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=7 [INFO] [stdout] 2026-07-09T10:52:39.730833Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=214 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.730832Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=7 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=250 [INFO] [stdout] 2026-07-09T10:52:39.730851Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=214 entry_id=214 connection_id=1704 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.730858Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=5 [INFO] [stdout] 2026-07-09T10:52:39.730907Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.730911Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=150 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.730927Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=286 srtt_ms=282 rttvar_ms=36 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.730936Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=150 entry_id=150 connection_id=149 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.730445Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=161 slot_index=496 delay_ms=220000 [INFO] [stdout] 2026-07-09T10:52:39.730494Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.731030Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=151 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.731038Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:49785 frame_count=1 bytes=27 [INFO] [stdout] 2026-07-09T10:52:39.731048Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.731057Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=151 entry_id=151 connection_id=150 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.731075Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=4 frame=Ack { header: ShortHeader { command: Ack, connection_id: 4, payload_length: 8, recv_window_size: 252, timestamp: 133, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.731100Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 4, payload_length: 8, recv_window_size: 252, timestamp: 133, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.731121Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=4 recv_next_seq=0 recv_window=252 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.731126Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=152 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.731140Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=4 [INFO] [stdout] 2026-07-09T10:52:39.731152Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=152 entry_id=152 connection_id=151 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.731154Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=4 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=252 [INFO] [stdout] 2026-07-09T10:52:39.731182Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] 2026-07-09T10:52:39.731176Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=215 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.731197Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.731206Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=215 entry_id=215 connection_id=1804 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.731216Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=288 srtt_ms=285 rttvar_ms=61 rto_ms=530 [INFO] [stdout] 2026-07-09T10:52:39.731216Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=153 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.731233Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.731242Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=153 entry_id=153 connection_id=152 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.731255Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=216 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.731245Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.730487Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=188 entry_id=188 connection_id=187 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.731279Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=216 entry_id=216 connection_id=1904 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.731282Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=4 frame=Ack { header: ShortHeader { command: Ack, connection_id: 4, payload_length: 8, recv_window_size: 251, timestamp: 134, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.731306Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 4, payload_length: 8, recv_window_size: 251, timestamp: 134, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.731327Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=217 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.731326Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=4 recv_next_seq=0 recv_window=251 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.731345Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=4 [INFO] [stdout] 2026-07-09T10:52:39.731347Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=217 entry_id=217 connection_id=2004 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.731349Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=189 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.731364Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=4 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=251 [INFO] [stdout] 2026-07-09T10:52:39.731376Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=189 entry_id=189 connection_id=188 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.731389Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-07-09T10:52:39.731388Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=218 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.731404Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.731411Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=218 entry_id=218 connection_id=2104 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.731423Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=288 srtt_ms=286 rttvar_ms=46 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.731445Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.731445Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=190 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.731456Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.731470Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=219 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.731475Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=4 frame=Ack { header: ShortHeader { command: Ack, connection_id: 4, payload_length: 8, recv_window_size: 250, timestamp: 136, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.731498Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 4, payload_length: 8, recv_window_size: 250, timestamp: 136, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.731505Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=219 entry_id=219 connection_id=2504 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.731518Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=154 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.731548Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=154 entry_id=154 connection_id=153 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.730943Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.731551Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=220 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.731517Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=4 recv_next_seq=0 recv_window=250 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.731587Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=37 new_cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.731620Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=220 entry_id=220 connection_id=2304 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.731631Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=7 frame=Ack { header: ShortHeader { command: Ack, connection_id: 7, payload_length: 8, recv_window_size: 249, timestamp: 230, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.731657Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 7, payload_length: 8, recv_window_size: 249, timestamp: 230, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.731673Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=221 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.731681Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=7 recv_next_seq=0 recv_window=249 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.731699Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=7 [INFO] [stdout] 2026-07-09T10:52:39.731698Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=221 entry_id=221 connection_id=2404 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.730725Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 125, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18" } [INFO] [stdout] 2026-07-09T10:52:39.731718Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=7 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=249 [INFO] [stdout] 2026-07-09T10:52:39.731749Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=125 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.731756Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=222 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.731765Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=6 [INFO] [stdout] 2026-07-09T10:52:39.731774Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=125 seq=2 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.731783Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.731791Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=222 entry_id=222 connection_id=2704 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.731802Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=287 srtt_ms=283 rttvar_ms=28 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.731802Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=125 remote_addr=127.0.0.1:9024 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 25, payload_length: 8, recv_window_size: 253, timestamp: 275, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.731819Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=39 [INFO] [stdout] 2026-07-09T10:52:39.731830Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=38 new_cwnd=39 [INFO] [stdout] 2026-07-09T10:52:39.731850Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=7 frame=Ack { header: ShortHeader { command: Ack, connection_id: 7, payload_length: 8, recv_window_size: 248, timestamp: 232, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.731470Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=190 entry_id=190 connection_id=189 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.731954Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 7, payload_length: 8, recv_window_size: 248, timestamp: 232, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.731976Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=7 recv_next_seq=0 recv_window=248 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.731998Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=7 [INFO] [stdout] 2026-07-09T10:52:39.732011Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=7 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=248 [INFO] [stdout] 2026-07-09T10:52:39.732026Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=191 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.732037Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=7 [INFO] [stdout] 2026-07-09T10:52:39.732052Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.732055Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=191 entry_id=191 connection_id=190 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.732074Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=287 srtt_ms=283 rttvar_ms=22 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.732091Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=40 [INFO] [stdout] 2026-07-09T10:52:39.732104Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=39 new_cwnd=40 [INFO] [stdout] 2026-07-09T10:52:39.732124Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=192 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.731852Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=223 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.732159Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=192 entry_id=192 connection_id=191 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.732164Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=223 entry_id=223 connection_id=2604 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.732226Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=224 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.732255Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=224 entry_id=224 connection_id=2804 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.731740Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=4 [INFO] [stdout] 2026-07-09T10:52:39.732366Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=4 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=250 [INFO] [stdout] 2026-07-09T10:52:39.732387Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=225 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.732399Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=5 [INFO] [stdout] 2026-07-09T10:52:39.732415Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.732433Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=288 srtt_ms=286 rttvar_ms=35 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.732450Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.732461Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=37 new_cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.732481Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=4 frame=Ack { header: ShortHeader { command: Ack, connection_id: 4, payload_length: 8, recv_window_size: 249, timestamp: 138, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.732504Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 4, payload_length: 8, recv_window_size: 249, timestamp: 138, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.732523Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=4 recv_next_seq=0 recv_window=249 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.732541Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=4 [INFO] [stdout] 2026-07-09T10:52:39.732554Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=4 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=249 [INFO] [stdout] 2026-07-09T10:52:39.732577Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=6 [INFO] [stdout] 2026-07-09T10:52:39.732590Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.732597Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=225 entry_id=225 connection_id=1004 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.732608Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=289 srtt_ms=286 rttvar_ms=27 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.732624Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=39 [INFO] [stdout] 2026-07-09T10:52:39.732634Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=38 new_cwnd=39 [INFO] [stdout] 2026-07-09T10:52:39.732650Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=4 frame=Ack { header: ShortHeader { command: Ack, connection_id: 4, payload_length: 8, recv_window_size: 248, timestamp: 138, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.732123Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=7 frame=Ack { header: ShortHeader { command: Ack, connection_id: 7, payload_length: 8, recv_window_size: 247, timestamp: 233, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.732670Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 4, payload_length: 8, recv_window_size: 248, timestamp: 138, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.732689Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=4 recv_next_seq=0 recv_window=248 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.732686Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 7, payload_length: 8, recv_window_size: 247, timestamp: 233, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.732707Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=4 [INFO] [stdout] 2026-07-09T10:52:39.732713Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=7 recv_next_seq=0 recv_window=247 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.732719Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=4 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=248 [INFO] [stdout] 2026-07-09T10:52:39.732733Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=7 [INFO] [stdout] 2026-07-09T10:52:39.732742Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=7 [INFO] [stdout] 2026-07-09T10:52:39.732747Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=7 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=247 [INFO] [stdout] 2026-07-09T10:52:39.732756Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.732776Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=8 [INFO] [stdout] 2026-07-09T10:52:39.732774Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=290 srtt_ms=287 rttvar_ms=21 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.732790Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=40 [INFO] [stdout] 2026-07-09T10:52:39.732792Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.732801Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=39 new_cwnd=40 [INFO] [stdout] 2026-07-09T10:52:39.732811Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=288 srtt_ms=284 rttvar_ms=18 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.732818Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=4 frame=Ack { header: ShortHeader { command: Ack, connection_id: 4, payload_length: 8, recv_window_size: 247, timestamp: 139, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.732828Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=41 [INFO] [stdout] 2026-07-09T10:52:39.732840Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=40 new_cwnd=41 [INFO] [stdout] 2026-07-09T10:52:39.732839Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 4, payload_length: 8, recv_window_size: 247, timestamp: 139, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.731914Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=161 entry_id=161 connection_id=160 delay_ms=220000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.732973Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=162 slot_index=84 delay_ms=221000 [INFO] [stdout] 2026-07-09T10:52:39.733009Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=162 entry_id=162 connection_id=161 delay_ms=221000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.733090Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=163 slot_index=184 delay_ms=222000 [INFO] [stdout] 2026-07-09T10:52:39.731837Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=125 frame=Push { header: ShortHeader { command: Push, connection_id: 125, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18" } [INFO] [stdout] 2026-07-09T10:52:39.733123Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=163 entry_id=163 connection_id=162 delay_ms=222000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.733202Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=164 slot_index=284 delay_ms=223000 [INFO] [stdout] 2026-07-09T10:52:39.733236Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=164 entry_id=164 connection_id=163 delay_ms=223000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.733313Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=165 slot_index=384 delay_ms=224000 [INFO] [stdout] 2026-07-09T10:52:39.733341Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=165 entry_id=165 connection_id=164 delay_ms=224000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.733135Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 125, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18" } [INFO] [stdout] 2026-07-09T10:52:39.733401Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=125 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.733421Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=125 seq=3 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.733451Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=125 remote_addr=127.0.0.1:9024 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 25, payload_length: 8, recv_window_size: 252, timestamp: 276, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.732863Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=7 [INFO] [stdout] 2026-07-09T10:52:39.733520Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=7 state=Established [INFO] [stdout] 2026-07-09T10:52:39.733690Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=17 frame=Ack { header: ShortHeader { command: Ack, connection_id: 17, payload_length: 8, recv_window_size: 255, timestamp: 238, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.733489Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=125 frame=Push { header: ShortHeader { command: Push, connection_id: 125, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18" } [INFO] [stdout] 2026-07-09T10:52:39.733939Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 125, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18" } [INFO] [stdout] 2026-07-09T10:52:39.734230Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=125 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.734254Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=125 seq=4 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.734284Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=125 remote_addr=127.0.0.1:9024 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 25, payload_length: 8, recv_window_size: 251, timestamp: 277, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.734327Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=125 frame=Push { header: ShortHeader { command: Push, connection_id: 125, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18" } [INFO] [stdout] 2026-07-09T10:52:39.734900Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 17, payload_length: 8, recv_window_size: 255, timestamp: 238, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.734937Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=17 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.734970Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=17 [INFO] [stdout] 2026-07-09T10:52:39.734995Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=17 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.735036Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.735053Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.735074Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=285 srtt_ms=285 rttvar_ms=142 rto_ms=855 [INFO] [stdout] 2026-07-09T10:52:39.735091Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.735102Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.735124Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=17 frame=Ack { header: ShortHeader { command: Ack, connection_id: 17, payload_length: 8, recv_window_size: 254, timestamp: 238, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.735149Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 17, payload_length: 8, recv_window_size: 254, timestamp: 238, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.735169Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=17 recv_next_seq=0 recv_window=254 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.735196Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=17 [INFO] [stdout] 2026-07-09T10:52:39.735211Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=17 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=254 [INFO] [stdout] 2026-07-09T10:52:39.735240Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-07-09T10:52:39.735262Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.735281Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=285 srtt_ms=285 rttvar_ms=107 rto_ms=713 [INFO] [stdout] 2026-07-09T10:52:39.735306Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.735317Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.735341Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=17 frame=Ack { header: ShortHeader { command: Ack, connection_id: 17, payload_length: 8, recv_window_size: 253, timestamp: 240, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.735371Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 17, payload_length: 8, recv_window_size: 253, timestamp: 240, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.735391Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=17 recv_next_seq=0 recv_window=253 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.735415Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=17 [INFO] [stdout] 2026-07-09T10:52:39.735429Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=17 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=253 [INFO] [stdout] 2026-07-09T10:52:39.735458Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-07-09T10:52:39.735474Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.735495Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=285 srtt_ms=285 rttvar_ms=80 rto_ms=607 [INFO] [stdout] 2026-07-09T10:52:39.735511Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.735522Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.735545Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=17 frame=Ack { header: ShortHeader { command: Ack, connection_id: 17, payload_length: 8, recv_window_size: 252, timestamp: 241, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.735574Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 17, payload_length: 8, recv_window_size: 252, timestamp: 241, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.735600Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=17 recv_next_seq=0 recv_window=252 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.735619Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=17 [INFO] [stdout] 2026-07-09T10:52:39.735635Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=17 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=252 [INFO] [stdout] 2026-07-09T10:52:39.735659Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] 2026-07-09T10:52:39.735679Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.735703Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=285 srtt_ms=285 rttvar_ms=60 rto_ms=527 [INFO] [stdout] 2026-07-09T10:52:39.735725Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.735737Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.735755Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=17 frame=Ack { header: ShortHeader { command: Ack, connection_id: 17, payload_length: 8, recv_window_size: 251, timestamp: 241, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.735783Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 17, payload_length: 8, recv_window_size: 251, timestamp: 241, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.735803Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=17 recv_next_seq=0 recv_window=251 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.735827Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=17 [INFO] [stdout] 2026-07-09T10:52:39.735840Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=17 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=251 [INFO] [stdout] 2026-07-09T10:52:39.733764Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=226 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.733781Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=193 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.731916Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=155 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.735924Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=226 entry_id=226 connection_id=3504 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.735965Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=155 entry_id=155 connection_id=154 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.736015Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=227 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.736052Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=227 entry_id=227 connection_id=3004 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.736098Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=228 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.736129Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=228 entry_id=228 connection_id=2904 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.732861Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=4 recv_next_seq=0 recv_window=247 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.736186Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=4 [INFO] [stdout] 2026-07-09T10:52:39.736188Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=229 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.736214Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=4 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=247 [INFO] [stdout] 2026-07-09T10:52:39.736218Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=229 entry_id=229 connection_id=3104 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.736247Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=8 [INFO] [stdout] 2026-07-09T10:52:39.736250Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=230 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.736270Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.736305Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=290 srtt_ms=287 rttvar_ms=16 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.736329Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=41 [INFO] [stdout] 2026-07-09T10:52:39.736341Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=40 new_cwnd=41 [INFO] [stdout] 2026-07-09T10:52:39.736365Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=4 [INFO] [stdout] 2026-07-09T10:52:39.736391Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4 state=Established [INFO] [stdout] 2026-07-09T10:52:39.733419Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=166 slot_index=484 delay_ms=225000 [INFO] [stdout] 2026-07-09T10:52:39.736458Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=166 entry_id=166 connection_id=165 delay_ms=225000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.736501Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=3 frame=Ack { header: ShortHeader { command: Ack, connection_id: 3, payload_length: 8, recv_window_size: 255, timestamp: 101, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.736533Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 3, payload_length: 8, recv_window_size: 255, timestamp: 101, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.736553Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=167 slot_index=72 delay_ms=226000 [INFO] [stdout] 2026-07-09T10:52:39.736586Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=3 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.736605Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=3 [INFO] [stdout] 2026-07-09T10:52:39.736613Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=167 entry_id=167 connection_id=166 delay_ms=226000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.736627Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=3 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.736656Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.736677Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.736695Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=168 slot_index=172 delay_ms=227000 [INFO] [stdout] 2026-07-09T10:52:39.736701Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=293 srtt_ms=293 rttvar_ms=146 rto_ms=880 [INFO] [stdout] 2026-07-09T10:52:39.736720Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.736725Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=168 entry_id=168 connection_id=167 delay_ms=227000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.736129Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=156 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.736768Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=156 entry_id=156 connection_id=155 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.736820Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=169 slot_index=272 delay_ms=228000 [INFO] [stdout] 2026-07-09T10:52:39.736859Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=169 entry_id=169 connection_id=168 delay_ms=228000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.736273Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=230 entry_id=230 connection_id=3204 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.736938Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=231 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.736982Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=231 entry_id=231 connection_id=3304 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.734603Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 125, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18" } [INFO] [stdout] 2026-07-09T10:52:39.737034Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=232 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.737084Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=157 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.737107Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=157 entry_id=157 connection_id=156 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.737105Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=232 entry_id=232 connection_id=3804 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.737158Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=233 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.737181Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=158 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.737188Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=233 entry_id=233 connection_id=3404 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.737204Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=158 entry_id=158 connection_id=157 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.737234Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=234 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.736732Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.737305Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=3 frame=Ack { header: ShortHeader { command: Ack, connection_id: 3, payload_length: 8, recv_window_size: 254, timestamp: 102, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.737335Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 3, payload_length: 8, recv_window_size: 254, timestamp: 102, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.737333Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=170 slot_index=372 delay_ms=229000 [INFO] [stdout] 2026-07-09T10:52:39.737354Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=3 recv_next_seq=0 recv_window=254 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.737362Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=170 entry_id=170 connection_id=169 delay_ms=229000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.737377Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=3 [INFO] [stdout] 2026-07-09T10:52:39.737391Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=3 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=254 [INFO] [stdout] 2026-07-09T10:52:39.737421Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-07-09T10:52:39.737436Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.737441Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=171 slot_index=472 delay_ms=230000 [INFO] [stdout] 2026-07-09T10:52:39.737453Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=294 srtt_ms=293 rttvar_ms=110 rto_ms=734 [INFO] [stdout] 2026-07-09T10:52:39.737469Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.737470Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=171 entry_id=171 connection_id=170 delay_ms=230000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.737486Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.737503Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=3 frame=Ack { header: ShortHeader { command: Ack, connection_id: 3, payload_length: 8, recv_window_size: 253, timestamp: 105, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.737535Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 3, payload_length: 8, recv_window_size: 253, timestamp: 105, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.737545Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=172 slot_index=60 delay_ms=231000 [INFO] [stdout] 2026-07-09T10:52:39.737589Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=172 entry_id=172 connection_id=171 delay_ms=231000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.737668Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=173 slot_index=160 delay_ms=232000 [INFO] [stdout] 2026-07-09T10:52:39.737688Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=159 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.737704Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=173 entry_id=173 connection_id=172 delay_ms=232000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.737717Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=159 entry_id=159 connection_id=158 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.737783Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=174 slot_index=260 delay_ms=233000 [INFO] [stdout] 2026-07-09T10:52:39.737799Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=160 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.737817Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=174 entry_id=174 connection_id=173 delay_ms=233000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.737825Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=160 entry_id=160 connection_id=159 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.737893Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-07-09T10:52:39.737914Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.737934Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=286 srtt_ms=285 rttvar_ms=45 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.737972Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.737977Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=161 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.738009Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=125 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.738012Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=161 entry_id=161 connection_id=160 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.737265Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=234 entry_id=234 connection_id=3604 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.738041Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=125 seq=5 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.738102Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=235 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.738097Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=125 remote_addr=127.0.0.1:9024 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 25, payload_length: 8, recv_window_size: 250, timestamp: 281, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.738135Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=235 entry_id=235 connection_id=3704 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.738179Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=236 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.738207Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=236 entry_id=236 connection_id=4004 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.738256Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=237 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.738280Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=237 entry_id=237 connection_id=3904 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.738328Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=238 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.738357Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=238 entry_id=238 connection_id=4104 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.738144Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=125 frame=Push { header: ShortHeader { command: Push, connection_id: 125, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18" } [INFO] [stdout] 2026-07-09T10:52:39.737985Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.738601Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=17 frame=Ack { header: ShortHeader { command: Ack, connection_id: 17, payload_length: 8, recv_window_size: 250, timestamp: 242, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.738640Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 17, payload_length: 8, recv_window_size: 250, timestamp: 242, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.738410Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 125, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18" } [INFO] [stdout] 2026-07-09T10:52:39.738668Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=17 recv_next_seq=0 recv_window=250 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.738674Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=125 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.738689Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=17 [INFO] [stdout] 2026-07-09T10:52:39.738692Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=125 seq=6 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.738705Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=17 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=250 [INFO] [stdout] 2026-07-09T10:52:39.738717Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=125 remote_addr=127.0.0.1:9024 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 25, payload_length: 8, recv_window_size: 249, timestamp: 282, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.738739Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=5 [INFO] [stdout] 2026-07-09T10:52:39.738763Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.738783Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=289 srtt_ms=286 rttvar_ms=35 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.738808Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.738819Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=37 new_cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.738838Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=17 frame=Ack { header: ShortHeader { command: Ack, connection_id: 17, payload_length: 8, recv_window_size: 249, timestamp: 246, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.738862Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 17, payload_length: 8, recv_window_size: 249, timestamp: 246, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.737554Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=3 recv_next_seq=0 recv_window=253 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.738900Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=17 recv_next_seq=0 recv_window=249 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.738906Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=3 [INFO] [stdout] 2026-07-09T10:52:39.738918Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=17 [INFO] [stdout] 2026-07-09T10:52:39.738925Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=3 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=253 [INFO] [stdout] 2026-07-09T10:52:39.738932Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=17 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=249 [INFO] [stdout] 2026-07-09T10:52:39.738960Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-07-09T10:52:39.738964Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=6 [INFO] [stdout] 2026-07-09T10:52:39.738977Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.738979Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.738994Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=294 srtt_ms=293 rttvar_ms=82 rto_ms=625 [INFO] [stdout] 2026-07-09T10:52:39.738998Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=289 srtt_ms=286 rttvar_ms=27 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.739010Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.739015Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=39 [INFO] [stdout] 2026-07-09T10:52:39.739021Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.739026Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=38 new_cwnd=39 [INFO] [stdout] 2026-07-09T10:52:39.739040Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=3 frame=Ack { header: ShortHeader { command: Ack, connection_id: 3, payload_length: 8, recv_window_size: 252, timestamp: 112, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.739045Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=17 frame=Ack { header: ShortHeader { command: Ack, connection_id: 17, payload_length: 8, recv_window_size: 248, timestamp: 249, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.739063Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 3, payload_length: 8, recv_window_size: 252, timestamp: 112, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.739067Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 17, payload_length: 8, recv_window_size: 248, timestamp: 249, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.739082Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=3 recv_next_seq=0 recv_window=252 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.739084Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=17 recv_next_seq=0 recv_window=248 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.739099Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=3 [INFO] [stdout] 2026-07-09T10:52:39.739103Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=17 [INFO] [stdout] 2026-07-09T10:52:39.739112Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=3 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=252 [INFO] [stdout] 2026-07-09T10:52:39.739117Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=17 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=248 [INFO] [stdout] 2026-07-09T10:52:39.739135Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] 2026-07-09T10:52:39.739143Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=7 [INFO] [stdout] 2026-07-09T10:52:39.739148Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.739156Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.739166Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=295 srtt_ms=293 rttvar_ms=62 rto_ms=544 [INFO] [stdout] 2026-07-09T10:52:39.739173Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=289 srtt_ms=286 rttvar_ms=21 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.739181Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.739188Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=40 [INFO] [stdout] 2026-07-09T10:52:39.739191Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.739199Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=39 new_cwnd=40 [INFO] [stdout] 2026-07-09T10:52:39.739208Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=3 frame=Ack { header: ShortHeader { command: Ack, connection_id: 3, payload_length: 8, recv_window_size: 251, timestamp: 114, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.739216Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=17 frame=Ack { header: ShortHeader { command: Ack, connection_id: 17, payload_length: 8, recv_window_size: 247, timestamp: 250, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.739228Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 3, payload_length: 8, recv_window_size: 251, timestamp: 114, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.739238Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 17, payload_length: 8, recv_window_size: 247, timestamp: 250, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.739245Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=3 recv_next_seq=0 recv_window=251 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.739263Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=3 [INFO] [stdout] 2026-07-09T10:52:39.739259Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=17 recv_next_seq=0 recv_window=247 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.739277Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=17 [INFO] [stdout] 2026-07-09T10:52:39.739275Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=3 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=251 [INFO] [stdout] 2026-07-09T10:52:39.739289Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=17 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=247 [INFO] [stdout] 2026-07-09T10:52:39.739299Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-07-09T10:52:39.739314Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=8 [INFO] [stdout] 2026-07-09T10:52:39.739313Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.739330Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=296 srtt_ms=294 rttvar_ms=47 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.739329Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.739346Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.739348Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=289 srtt_ms=287 rttvar_ms=16 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.739356Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.739364Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=41 [INFO] [stdout] 2026-07-09T10:52:39.739377Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=40 new_cwnd=41 [INFO] [stdout] 2026-07-09T10:52:39.739374Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=3 frame=Ack { header: ShortHeader { command: Ack, connection_id: 3, payload_length: 8, recv_window_size: 250, timestamp: 115, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.739394Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=17 [INFO] [stdout] 2026-07-09T10:52:39.739394Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 3, payload_length: 8, recv_window_size: 250, timestamp: 115, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.739411Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=3 recv_next_seq=0 recv_window=250 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.739417Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=17 state=Established [INFO] [stdout] 2026-07-09T10:52:39.739428Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=3 [INFO] [stdout] 2026-07-09T10:52:39.739440Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=3 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=250 [INFO] [stdout] 2026-07-09T10:52:39.739464Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=5 [INFO] [stdout] 2026-07-09T10:52:39.739478Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.739496Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=296 srtt_ms=294 rttvar_ms=36 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.739499Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=24 frame=Ack { header: ShortHeader { command: Ack, connection_id: 24, payload_length: 8, recv_window_size: 255, timestamp: 149, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.739512Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.739523Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=37 new_cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.739524Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 24, payload_length: 8, recv_window_size: 255, timestamp: 149, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.739540Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=3 frame=Ack { header: ShortHeader { command: Ack, connection_id: 3, payload_length: 8, recv_window_size: 249, timestamp: 116, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.739545Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=24 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.739563Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=24 [INFO] [stdout] 2026-07-09T10:52:39.739561Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 3, payload_length: 8, recv_window_size: 249, timestamp: 116, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.739577Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=24 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.739579Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=3 recv_next_seq=0 recv_window=249 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.739597Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=3 [INFO] [stdout] 2026-07-09T10:52:39.739602Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.739610Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=3 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=249 [INFO] [stdout] 2026-07-09T10:52:39.739617Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.739634Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=6 [INFO] [stdout] 2026-07-09T10:52:39.739636Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=282 srtt_ms=282 rttvar_ms=141 rto_ms=846 [INFO] [stdout] 2026-07-09T10:52:39.739652Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.739647Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.739663Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.739668Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=296 srtt_ms=294 rttvar_ms=27 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.739684Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=39 [INFO] [stdout] 2026-07-09T10:52:39.739681Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=24 frame=Ack { header: ShortHeader { command: Ack, connection_id: 24, payload_length: 8, recv_window_size: 254, timestamp: 153, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.739703Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 24, payload_length: 8, recv_window_size: 254, timestamp: 153, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.739722Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=24 recv_next_seq=0 recv_window=254 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.739740Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=24 [INFO] [stdout] 2026-07-09T10:52:39.739753Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=24 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=254 [INFO] [stdout] 2026-07-09T10:52:39.739777Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-07-09T10:52:39.739800Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.739819Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=282 srtt_ms=282 rttvar_ms=105 rto_ms=705 [INFO] [stdout] 2026-07-09T10:52:39.739837Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.739848Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.739838Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=193 entry_id=193 connection_id=192 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.739932Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=175 slot_index=360 delay_ms=234000 [INFO] [stdout] 2026-07-09T10:52:39.739962Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=102 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.739977Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=175 entry_id=175 connection_id=174 delay_ms=234000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.739997Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=194 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.740017Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=194 entry_id=194 connection_id=193 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.740063Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=176 slot_index=460 delay_ms=235000 [INFO] [stdout] 2026-07-09T10:52:39.740080Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=195 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.740092Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=176 entry_id=176 connection_id=175 delay_ms=235000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.740104Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=195 entry_id=195 connection_id=194 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.740169Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=196 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.738401Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=239 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.740207Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=196 entry_id=196 connection_id=195 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.740219Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=239 entry_id=239 connection_id=4204 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.740272Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=197 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.740285Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=240 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.740303Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=197 entry_id=197 connection_id=196 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.740312Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=240 entry_id=240 connection_id=4304 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.740357Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=241 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.740372Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=198 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.740380Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=241 entry_id=241 connection_id=104 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.740396Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=198 entry_id=198 connection_id=197 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.740422Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=242 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.740447Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=242 entry_id=242 connection_id=4404 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.740458Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=199 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.740482Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=199 entry_id=199 connection_id=198 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.740487Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=243 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.740510Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=243 entry_id=243 connection_id=4504 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.740547Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=200 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.740570Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=244 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.740572Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=200 entry_id=200 connection_id=199 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.740593Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=244 entry_id=244 connection_id=4604 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.740632Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=245 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.740638Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=201 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.740653Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=245 entry_id=245 connection_id=4704 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.740662Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=201 entry_id=201 connection_id=200 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.740685Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=246 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.740706Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=246 entry_id=246 connection_id=605 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.740730Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=202 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.740746Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=247 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.740754Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=202 entry_id=202 connection_id=201 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.740771Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=247 entry_id=247 connection_id=4804 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.740809Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=248 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.740820Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=203 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.740833Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=248 entry_id=248 connection_id=4904 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.740844Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=203 entry_id=203 connection_id=202 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.740932Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=162 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.740973Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=162 entry_id=162 connection_id=161 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.741087Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=249 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.741123Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=249 entry_id=249 connection_id=204 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.741164Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=163 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.740169Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=177 slot_index=48 delay_ms=236000 [INFO] [stdout] 2026-07-09T10:52:39.741197Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=163 entry_id=163 connection_id=162 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.741223Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=177 entry_id=177 connection_id=176 delay_ms=236000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.741309Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=178 slot_index=148 delay_ms=237000 [INFO] [stdout] 2026-07-09T10:52:39.741352Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=178 entry_id=178 connection_id=177 delay_ms=237000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.741430Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=179 slot_index=248 delay_ms=238000 [INFO] [stdout] 2026-07-09T10:52:39.741466Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=179 entry_id=179 connection_id=178 delay_ms=238000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.738752Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=125 frame=Push { header: ShortHeader { command: Push, connection_id: 125, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18" } [INFO] [stdout] 2026-07-09T10:52:39.741542Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=180 slot_index=348 delay_ms=239000 [INFO] [stdout] 2026-07-09T10:52:39.741570Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=180 entry_id=180 connection_id=179 delay_ms=239000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.741645Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=181 slot_index=448 delay_ms=240000 [INFO] [stdout] 2026-07-09T10:52:39.741673Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=181 entry_id=181 connection_id=180 delay_ms=240000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.741759Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=182 slot_index=36 delay_ms=241000 [INFO] [stdout] 2026-07-09T10:52:39.741527Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 125, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18" } [INFO] [stdout] 2026-07-09T10:52:39.741792Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=182 entry_id=182 connection_id=181 delay_ms=241000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.741816Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=125 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.741839Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=125 seq=7 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.739695Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=38 new_cwnd=39 [INFO] [stdout] 2026-07-09T10:52:39.741908Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=250 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.741922Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=3 frame=Ack { header: ShortHeader { command: Ack, connection_id: 3, payload_length: 8, recv_window_size: 248, timestamp: 116, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.741937Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=250 entry_id=250 connection_id=505 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.741945Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 3, payload_length: 8, recv_window_size: 248, timestamp: 116, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.741973Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=3 recv_next_seq=0 recv_window=248 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.741990Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=3 [INFO] [stdout] 2026-07-09T10:52:39.742005Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=3 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=248 [INFO] [stdout] 2026-07-09T10:52:39.742035Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=7 [INFO] [stdout] 2026-07-09T10:52:39.742049Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.742057Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=251 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.742068Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=298 srtt_ms=295 rttvar_ms=21 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.742083Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=40 [INFO] [stdout] 2026-07-09T10:52:39.742085Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=251 entry_id=251 connection_id=304 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.742093Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=39 new_cwnd=40 [INFO] [stdout] 2026-07-09T10:52:39.742109Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=3 frame=Ack { header: ShortHeader { command: Ack, connection_id: 3, payload_length: 8, recv_window_size: 247, timestamp: 117, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.742127Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 3, payload_length: 8, recv_window_size: 247, timestamp: 117, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.741309Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=164 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.742143Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=3 recv_next_seq=0 recv_window=247 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.742187Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=3 [INFO] [stdout] 2026-07-09T10:52:39.742177Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=164 entry_id=164 connection_id=163 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.742200Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=3 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=247 [INFO] [stdout] 2026-07-09T10:52:39.742223Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=8 [INFO] [stdout] 2026-07-09T10:52:39.742235Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.742224Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.742251Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=298 srtt_ms=295 rttvar_ms=17 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.742265Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=41 [INFO] [stdout] 2026-07-09T10:52:39.742275Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=40 new_cwnd=41 [INFO] [stdout] 2026-07-09T10:52:39.742312Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=165 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.742349Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=165 entry_id=165 connection_id=164 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.742355Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=204 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.742381Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=204 entry_id=204 connection_id=203 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.742438Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=205 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.742448Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=252 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.742475Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=205 entry_id=205 connection_id=204 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.742479Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=252 entry_id=252 connection_id=4 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.742533Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=206 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.742553Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=206 entry_id=206 connection_id=205 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.742589Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=253 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.742608Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=207 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.742618Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=253 entry_id=253 connection_id=405 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.742628Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=207 entry_id=207 connection_id=206 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.742681Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=208 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.739868Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=24 frame=Ack { header: ShortHeader { command: Ack, connection_id: 24, payload_length: 8, recv_window_size: 253, timestamp: 157, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.742712Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=208 entry_id=208 connection_id=207 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.742739Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 24, payload_length: 8, recv_window_size: 253, timestamp: 157, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.742765Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=24 recv_next_seq=0 recv_window=253 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.742784Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=24 [INFO] [stdout] 2026-07-09T10:52:39.742780Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=209 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.742800Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=24 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=253 [INFO] [stdout] 2026-07-09T10:52:39.742804Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=209 entry_id=209 connection_id=208 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.742831Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-07-09T10:52:39.742847Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.742898Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3 [INFO] [stdout] 2026-07-09T10:52:39.742906Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=254 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.742932Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=254 entry_id=254 connection_id=705 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.742936Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3 state=Established [INFO] [stdout] test timer::task::tests::tests::test_global_timer_task_lifecycle ... ok [INFO] [stdout] 2026-07-09T10:52:39.743037Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=183 slot_index=136 delay_ms=242000 [INFO] [stdout] 2026-07-09T10:52:39.743061Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=6 frame=Ack { header: ShortHeader { command: Ack, connection_id: 6, payload_length: 8, recv_window_size: 255, timestamp: 176, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.743073Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=183 entry_id=183 connection_id=182 delay_ms=242000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.743088Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 6, payload_length: 8, recv_window_size: 255, timestamp: 176, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.743105Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=6 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.743106Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.743122Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=6 [INFO] [stdout] 2026-07-09T10:52:39.743135Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=6 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.743160Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.743201Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=255 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.743228Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.743228Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=255 entry_id=255 connection_id=1105 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.743235Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=166 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.743257Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.743265Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=166 entry_id=166 connection_id=165 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.743299Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=10 delay_ms=100 [INFO] [stdout] 2026-07-09T10:52:39.743324Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=1 delay_ms=100 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.743334Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=167 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.742867Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=285 srtt_ms=282 rttvar_ms=80 rto_ms=603 [INFO] [stdout] 2026-07-09T10:52:39.743358Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=167 entry_id=167 connection_id=166 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.743365Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.743406Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=1 [INFO] [stdout] 2026-07-09T10:52:39.743433Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=1 [INFO] [stdout] 2026-07-09T10:52:39.743425Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=125 remote_addr=127.0.0.1:9024 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 25, payload_length: 8, recv_window_size: 248, timestamp: 285, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.743467Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=184 slot_index=236 delay_ms=243000 [INFO] [stdout] 2026-07-09T10:52:39.743495Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=184 entry_id=184 connection_id=183 delay_ms=243000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.743568Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=185 slot_index=336 delay_ms=244000 [INFO] [stdout] 2026-07-09T10:52:39.743594Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=185 entry_id=185 connection_id=184 delay_ms=244000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.743471Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=125 frame=Push { header: ShortHeader { command: Push, connection_id: 125, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18" } [INFO] [stdout] 2026-07-09T10:52:39.743661Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=186 slot_index=436 delay_ms=245000 [INFO] [stdout] 2026-07-09T10:52:39.743686Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=186 entry_id=186 connection_id=185 delay_ms=245000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.743754Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=187 slot_index=24 delay_ms=246000 [INFO] [stdout] 2026-07-09T10:52:39.743636Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 125, payload_length: 640, recv_window_size: 256, timestamp: 0, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18" } [INFO] [stdout] 2026-07-09T10:52:39.743779Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=187 entry_id=187 connection_id=186 delay_ms=246000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.743789Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=125 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-07-09T10:52:39.743808Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=125 seq=8 payload_len=640 [INFO] [stdout] 2026-07-09T10:52:39.743835Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=125 remote_addr=127.0.0.1:9024 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 25, payload_length: 8, recv_window_size: 247, timestamp: 287, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.743847Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=188 slot_index=124 delay_ms=247000 [INFO] [stdout] 2026-07-09T10:52:39.743864Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=125 [INFO] [stdout] 2026-07-09T10:52:39.744141Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=125 count=9 [INFO] [stdout] 2026-07-09T10:52:39.744152Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.744179Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=125 state=Established [INFO] [stdout] 2026-07-09T10:52:39.715859Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 13 } } [INFO] [stdout] 2026-07-09T10:52:39.743936Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=256 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.743378Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.744221Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=113 peer_cid=13 state=Established [INFO] [stdout] 2026-07-09T10:52:39.744027Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=168 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.744240Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=113 state=Established [INFO] [stdout] 2026-07-09T10:52:39.744257Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=168 entry_id=168 connection_id=167 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.744262Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=113 frame=Ack { header: ShortHeader { command: Ack, connection_id: 113, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.744286Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 113, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.744330Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=113 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.744351Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=113 [INFO] [stdout] 2026-07-09T10:52:39.744368Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=113 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.744402Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.744396Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=169 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.744416Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.744421Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=169 entry_id=169 connection_id=168 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.744435Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=297 srtt_ms=297 rttvar_ms=148 rto_ms=892 [INFO] [stdout] 2026-07-09T10:52:39.744466Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.744480Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.744521Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=170 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.744547Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=170 entry_id=170 connection_id=169 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.744679Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=101 slots_to_advance=10 max_advance=10 current_slot=10 [INFO] [stdout] 2026-07-09T10:52:39.744727Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=103 slots_to_advance=10 max_advance=10 current_slot=13 [INFO] [stdout] 2026-07-09T10:52:39.744789Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=171 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.744511Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=113 frame=Push { header: ShortHeader { command: Push, connection_id: 113, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c" } [INFO] [stdout] 2026-07-09T10:52:39.744812Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=171 entry_id=171 connection_id=170 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.744905Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=172 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.744930Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=172 entry_id=172 connection_id=171 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.744987Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=173 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.745013Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=173 entry_id=173 connection_id=172 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.744039Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=188 entry_id=188 connection_id=187 delay_ms=247000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.745103Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=189 slot_index=224 delay_ms=248000 [INFO] [stdout] 2026-07-09T10:52:39.744823Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 113, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c" } [INFO] [stdout] 2026-07-09T10:52:39.745133Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=189 entry_id=189 connection_id=188 delay_ms=248000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.745151Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=113 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.745173Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=113 seq=0 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.745195Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=190 slot_index=324 delay_ms=249000 [INFO] [stdout] 2026-07-09T10:52:39.745203Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=113 remote_addr=127.0.0.1:9012 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 13, payload_length: 8, recv_window_size: 255, timestamp: 299, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.745218Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=190 entry_id=190 connection_id=189 delay_ms=249000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.745281Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=191 slot_index=424 delay_ms=250000 [INFO] [stdout] 2026-07-09T10:52:39.745309Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=191 entry_id=191 connection_id=190 delay_ms=250000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.745363Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=192 slot_index=12 delay_ms=251000 [INFO] [stdout] 2026-07-09T10:52:39.745383Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=192 entry_id=192 connection_id=191 delay_ms=251000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.745434Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=193 slot_index=112 delay_ms=252000 [INFO] [stdout] 2026-07-09T10:52:39.745462Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=193 entry_id=193 connection_id=192 delay_ms=252000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.745520Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=194 slot_index=212 delay_ms=253000 [INFO] [stdout] 2026-07-09T10:52:39.745240Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=113 frame=Push { header: ShortHeader { command: Push, connection_id: 113, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c" } [INFO] [stdout] 2026-07-09T10:52:39.745549Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=194 entry_id=194 connection_id=193 delay_ms=253000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.745608Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=195 slot_index=312 delay_ms=254000 [INFO] [stdout] 2026-07-09T10:52:39.745629Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=195 entry_id=195 connection_id=194 delay_ms=254000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.745678Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=196 slot_index=412 delay_ms=255000 [INFO] [stdout] 2026-07-09T10:52:39.745697Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=196 entry_id=196 connection_id=195 delay_ms=255000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.745746Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=197 slot_index=0 delay_ms=256000 [INFO] [stdout] 2026-07-09T10:52:39.745766Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=197 entry_id=197 connection_id=196 delay_ms=256000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.745817Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=198 slot_index=100 delay_ms=257000 [INFO] [stdout] 2026-07-09T10:52:39.745836Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=198 entry_id=198 connection_id=197 delay_ms=257000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.745560Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 113, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c" } [INFO] [stdout] 2026-07-09T10:52:39.745962Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=122 frame=Ack { header: ShortHeader { command: Ack, connection_id: 122, payload_length: 8, recv_window_size: 255, timestamp: 3, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.745993Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 122, payload_length: 8, recv_window_size: 255, timestamp: 3, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.746145Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=174 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.746174Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=174 entry_id=174 connection_id=173 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.746285Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=175 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.746310Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=175 entry_id=175 connection_id=174 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.746367Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=24 frame=Ack { header: ShortHeader { command: Ack, connection_id: 24, payload_length: 8, recv_window_size: 252, timestamp: 157, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.746392Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 24, payload_length: 8, recv_window_size: 252, timestamp: 157, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.746410Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=24 recv_next_seq=0 recv_window=252 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.746429Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=24 [INFO] [stdout] 2026-07-09T10:52:39.746442Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=24 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=252 [INFO] [stdout] 2026-07-09T10:52:39.746475Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] 2026-07-09T10:52:39.746491Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.746511Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=289 srtt_ms=283 rttvar_ms=61 rto_ms=530 [INFO] [stdout] 2026-07-09T10:52:39.746527Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.746538Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.746555Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=24 frame=Ack { header: ShortHeader { command: Ack, connection_id: 24, payload_length: 8, recv_window_size: 251, timestamp: 158, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.746575Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 24, payload_length: 8, recv_window_size: 251, timestamp: 158, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.746594Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=24 recv_next_seq=0 recv_window=251 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.746610Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=24 [INFO] [stdout] 2026-07-09T10:52:39.746622Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=24 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=251 [INFO] [stdout] 2026-07-09T10:52:39.746643Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-07-09T10:52:39.746656Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.746674Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=289 srtt_ms=284 rttvar_ms=47 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.746690Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.746701Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.746719Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=24 frame=Ack { header: ShortHeader { command: Ack, connection_id: 24, payload_length: 8, recv_window_size: 250, timestamp: 162, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.746743Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 24, payload_length: 8, recv_window_size: 250, timestamp: 162, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.746763Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=24 recv_next_seq=0 recv_window=250 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.746780Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=24 [INFO] [stdout] 2026-07-09T10:52:39.746792Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=24 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=250 [INFO] [stdout] 2026-07-09T10:52:39.746814Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=5 [INFO] [stdout] 2026-07-09T10:52:39.746827Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.746845Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=289 srtt_ms=284 rttvar_ms=37 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.746861Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.746014Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=122 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.746909Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=122 [INFO] [stdout] 2026-07-09T10:52:39.746924Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=122 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.746950Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.746974Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.746992Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=290 srtt_ms=290 rttvar_ms=145 rto_ms=870 [INFO] [stdout] 2026-07-09T10:52:39.747010Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.747021Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.747262Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=176 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.747300Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=176 entry_id=176 connection_id=175 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.744060Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.744081Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.747416Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=299 srtt_ms=299 rttvar_ms=149 rto_ms=897 [INFO] [stdout] 2026-07-09T10:52:39.744100Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=210 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.747439Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.747450Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.747466Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=210 entry_id=210 connection_id=209 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.747474Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=6 frame=Ack { header: ShortHeader { command: Ack, connection_id: 6, payload_length: 8, recv_window_size: 254, timestamp: 176, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.747501Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 6, payload_length: 8, recv_window_size: 254, timestamp: 176, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.747531Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=6 recv_next_seq=0 recv_window=254 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.747549Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=6 [INFO] [stdout] 2026-07-09T10:52:39.747563Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=6 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=254 [INFO] [stdout] 2026-07-09T10:52:39.747563Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=211 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.747590Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-07-09T10:52:39.747593Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=211 entry_id=211 connection_id=210 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.747604Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.747621Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=303 srtt_ms=299 rttvar_ms=113 rto_ms=753 [INFO] [stdout] 2026-07-09T10:52:39.747638Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.747649Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.747664Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=212 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.747667Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=6 frame=Ack { header: ShortHeader { command: Ack, connection_id: 6, payload_length: 8, recv_window_size: 253, timestamp: 178, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.747690Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 6, payload_length: 8, recv_window_size: 253, timestamp: 178, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.747691Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=212 entry_id=212 connection_id=211 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.747709Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=6 recv_next_seq=0 recv_window=253 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.747727Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=6 [INFO] [stdout] 2026-07-09T10:52:39.747739Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=6 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=253 [INFO] [stdout] 2026-07-09T10:52:39.747761Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-07-09T10:52:39.747763Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=213 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.747773Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.747791Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=303 srtt_ms=300 rttvar_ms=86 rto_ms=644 [INFO] [stdout] 2026-07-09T10:52:39.747789Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=213 entry_id=213 connection_id=212 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.747805Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.747814Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.747831Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=6 frame=Ack { header: ShortHeader { command: Ack, connection_id: 6, payload_length: 8, recv_window_size: 252, timestamp: 179, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.747855Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 6, payload_length: 8, recv_window_size: 252, timestamp: 179, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.747924Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=177 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.747949Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=177 entry_id=177 connection_id=176 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.748005Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=256 entry_id=256 connection_id=805 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.748063Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=257 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.748088Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=257 entry_id=257 connection_id=905 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.748149Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=258 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.748174Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=258 entry_id=258 connection_id=1205 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.748229Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=259 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.748255Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=259 entry_id=259 connection_id=1405 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.748304Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=260 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.748326Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=260 entry_id=260 connection_id=1305 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.748368Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=261 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.748392Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=261 entry_id=261 connection_id=1505 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.748434Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=262 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.748455Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=262 entry_id=262 connection_id=2205 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.748505Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=263 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.748527Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=263 entry_id=263 connection_id=1605 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.748572Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=264 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.748596Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=264 entry_id=264 connection_id=1705 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.748648Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=265 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.748672Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=265 entry_id=265 connection_id=1805 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.748720Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=266 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.747862Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=214 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.748751Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=266 entry_id=266 connection_id=1905 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.748765Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=214 entry_id=214 connection_id=213 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.748802Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=267 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.748832Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=267 entry_id=267 connection_id=2005 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.748849Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=215 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.748897Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=215 entry_id=215 connection_id=214 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.748987Z  INFO kestrel_protocol::core::tests::retransmission: --- RTO Recovery Test Passed --- [INFO] [stdout] 2026-07-09T10:52:39.748986Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=216 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.749015Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=216 entry_id=216 connection_id=215 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.749020Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=37 new_cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.749053Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=24 frame=Ack { header: ShortHeader { command: Ack, connection_id: 24, payload_length: 8, recv_window_size: 249, timestamp: 163, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.749080Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=217 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.749089Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 24, payload_length: 8, recv_window_size: 249, timestamp: 163, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.749106Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=217 entry_id=217 connection_id=216 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.749110Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=24 recv_next_seq=0 recv_window=249 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.749128Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=24 [INFO] [stdout] 2026-07-09T10:52:39.749142Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=24 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=249 [INFO] [stdout] 2026-07-09T10:52:39.749171Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=6 [INFO] [stdout] 2026-07-09T10:52:39.749174Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=218 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.749186Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.749199Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=218 entry_id=218 connection_id=217 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.749203Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=291 srtt_ms=285 rttvar_ms=29 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.749219Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=39 [INFO] [stdout] 2026-07-09T10:52:39.749229Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=38 new_cwnd=39 [INFO] [stdout] 2026-07-09T10:52:39.749245Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=24 frame=Ack { header: ShortHeader { command: Ack, connection_id: 24, payload_length: 8, recv_window_size: 248, timestamp: 166, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.749264Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 24, payload_length: 8, recv_window_size: 248, timestamp: 166, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.749264Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=219 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.749281Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=24 recv_next_seq=0 recv_window=248 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.749289Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=219 entry_id=219 connection_id=218 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.749297Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=24 [INFO] [stdout] 2026-07-09T10:52:39.749310Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=24 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=248 [INFO] [stdout] 2026-07-09T10:52:39.749330Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=7 [INFO] [stdout] 2026-07-09T10:52:39.749342Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.749368Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=291 srtt_ms=286 rttvar_ms=23 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.749371Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=220 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.749383Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=40 [INFO] [stdout] 2026-07-09T10:52:39.749393Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=39 new_cwnd=40 [INFO] [stdout] 2026-07-09T10:52:39.749398Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=220 entry_id=220 connection_id=219 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.749410Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=24 frame=Ack { header: ShortHeader { command: Ack, connection_id: 24, payload_length: 8, recv_window_size: 247, timestamp: 168, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.749430Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 24, payload_length: 8, recv_window_size: 247, timestamp: 168, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.749460Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=24 recv_next_seq=0 recv_window=247 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.749483Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=24 [INFO] [stdout] 2026-07-09T10:52:39.749482Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=221 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.749495Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=24 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=247 [INFO] [stdout] 2026-07-09T10:52:39.749509Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=221 entry_id=221 connection_id=220 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.749520Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=8 [INFO] [stdout] 2026-07-09T10:52:39.749541Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.749558Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=292 srtt_ms=287 rttvar_ms=19 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.749578Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=41 [INFO] [stdout] 2026-07-09T10:52:39.749588Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=40 new_cwnd=41 [INFO] [stdout] 2026-07-09T10:52:39.749592Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=222 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.749604Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=24 [INFO] [stdout] 2026-07-09T10:52:39.749620Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=222 entry_id=222 connection_id=221 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.749628Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=24 state=Established [INFO] [stdout] 2026-07-09T10:52:39.749695Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=223 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.749743Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=223 entry_id=223 connection_id=222 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.749747Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=19 frame=Ack { header: ShortHeader { command: Ack, connection_id: 19, payload_length: 8, recv_window_size: 255, timestamp: 134, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.749778Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 19, payload_length: 8, recv_window_size: 255, timestamp: 134, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.749799Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=19 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.749816Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=19 [INFO] [stdout] 2026-07-09T10:52:39.749828Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=19 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.749830Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=224 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.749860Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] test core::tests::retransmission::test_rto_recovery_on_single_packet_loss ... ok [INFO] [stdout] 2026-07-09T10:52:39.749890Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=224 entry_id=224 connection_id=223 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.747042Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=122 frame=Push { header: ShortHeader { command: Push, connection_id: 122, payload_length: 1200, recv_window_size: 256, timestamp: 3, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15" } [INFO] [stdout] 2026-07-09T10:52:39.750071Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=225 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.750095Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.750281Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=225 entry_id=225 connection_id=224 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.750085Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 122, payload_length: 1200, recv_window_size: 256, timestamp: 3, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15" } [INFO] [stdout] 2026-07-09T10:52:39.750338Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.750357Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=122 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.750371Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=226 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.750378Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=122 seq=0 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.750398Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=226 entry_id=226 connection_id=225 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.750452Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=199 slot_index=200 delay_ms=258000 [INFO] [stdout] 2026-07-09T10:52:39.750473Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=227 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.750487Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=199 entry_id=199 connection_id=198 delay_ms=258000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.750500Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=227 entry_id=227 connection_id=226 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.750563Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=200 slot_index=300 delay_ms=259000 [INFO] [stdout] 2026-07-09T10:52:39.750573Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=228 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.750597Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=200 entry_id=200 connection_id=199 delay_ms=259000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.750600Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=228 entry_id=228 connection_id=227 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.750637Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=102 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.750675Z TRACE kestrel_protocol::timer::wheel::core: Timer moved to new slot entry_id=110 new_slot_index=4 [INFO] [stdout] 2026-07-09T10:52:39.750709Z TRACE kestrel_protocol::timer::wheel::core: Timer moved to new slot entry_id=23 new_slot_index=8 [INFO] [stdout] 2026-07-09T10:52:39.750670Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=229 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.750731Z TRACE kestrel_protocol::timer::wheel::core: Timer moved to new slot entry_id=151 new_slot_index=8 [INFO] [stdout] 2026-07-09T10:52:39.750749Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=229 entry_id=229 connection_id=228 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.750787Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=201 slot_index=410 delay_ms=260000 [INFO] [stdout] 2026-07-09T10:52:39.750819Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=201 entry_id=201 connection_id=200 delay_ms=260000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.750838Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=230 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.750865Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=230 entry_id=230 connection_id=229 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.750902Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=6 recv_next_seq=0 recv_window=252 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.750922Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=6 [INFO] [stdout] 2026-07-09T10:52:39.750936Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=6 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=252 [INFO] [stdout] 2026-07-09T10:52:39.750982Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] 2026-07-09T10:52:39.750981Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=231 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.750998Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.751009Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=231 entry_id=231 connection_id=230 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.751021Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=304 srtt_ms=300 rttvar_ms=65 rto_ms=562 [INFO] [stdout] 2026-07-09T10:52:39.751036Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.751054Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.751077Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=6 frame=Ack { header: ShortHeader { command: Ack, connection_id: 6, payload_length: 8, recv_window_size: 251, timestamp: 180, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.751081Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=232 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.751108Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 6, payload_length: 8, recv_window_size: 251, timestamp: 180, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.751113Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=232 entry_id=232 connection_id=231 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.751147Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=6 recv_next_seq=0 recv_window=251 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.751184Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=6 [INFO] [stdout] 2026-07-09T10:52:39.751207Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=6 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=251 [INFO] [stdout] 2026-07-09T10:52:39.751244Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-07-09T10:52:39.750381Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.751269Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.751293Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=307 srtt_ms=301 rttvar_ms=50 rto_ms=504 [INFO] [stdout] 2026-07-09T10:52:39.751317Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.751329Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.751349Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=6 frame=Ack { header: ShortHeader { command: Ack, connection_id: 6, payload_length: 8, recv_window_size: 250, timestamp: 181, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.751379Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 6, payload_length: 8, recv_window_size: 250, timestamp: 181, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.751408Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=6 recv_next_seq=0 recv_window=250 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.751432Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=6 [INFO] [stdout] 2026-07-09T10:52:39.751446Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=6 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=250 [INFO] [stdout] 2026-07-09T10:52:39.751468Z TRACE kestrel_protocol::timer::wheel::core: Batch added timers to timing wheel batch_size=64 [INFO] [stdout] 2026-07-09T10:52:39.751478Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=5 [INFO] [stdout] 2026-07-09T10:52:39.751499Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.751525Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=307 srtt_ms=302 rttvar_ms=39 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.751541Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.751557Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=37 new_cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.751576Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=6 frame=Ack { header: ShortHeader { command: Ack, connection_id: 6, payload_length: 8, recv_window_size: 249, timestamp: 182, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.751604Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 6, payload_length: 8, recv_window_size: 249, timestamp: 182, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.751630Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=6 recv_next_seq=0 recv_window=249 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.751655Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=6 [INFO] [stdout] 2026-07-09T10:52:39.751668Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=6 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=249 [INFO] [stdout] 2026-07-09T10:52:39.751698Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=6 [INFO] [stdout] 2026-07-09T10:52:39.751713Z TRACE kestrel_protocol::timer::task::global: Batch registered timers successfully using wheel batch API batch_size=64 [INFO] [stdout] 2026-07-09T10:52:39.751805Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=233 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.751840Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=233 entry_id=233 connection_id=232 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.751894Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=178 slot_index=370 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.751936Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=178 entry_id=178 connection_id=177 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.751713Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.751981Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=307 srtt_ms=302 rttvar_ms=30 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.751997Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=39 [INFO] [stdout] 2026-07-09T10:52:39.752012Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=38 new_cwnd=39 [INFO] [stdout] 2026-07-09T10:52:39.752030Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=6 frame=Ack { header: ShortHeader { command: Ack, connection_id: 6, payload_length: 8, recv_window_size: 248, timestamp: 188, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.752039Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=87 slots_to_advance=8 max_advance=8 current_slot=2 [INFO] [stdout] 2026-07-09T10:52:39.752058Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 6, payload_length: 8, recv_window_size: 248, timestamp: 188, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.752083Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=6 recv_next_seq=0 recv_window=248 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.752099Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=6 [INFO] [stdout] 2026-07-09T10:52:39.752113Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=6 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=248 [INFO] [stdout] 2026-07-09T10:52:39.752122Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=202 slot_index=510 delay_ms=261000 [INFO] [stdout] 2026-07-09T10:52:39.752143Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=7 [INFO] [stdout] 2026-07-09T10:52:39.752147Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=202 entry_id=202 connection_id=201 delay_ms=261000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.752157Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.752174Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=308 srtt_ms=303 rttvar_ms=24 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.752188Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=40 [INFO] [stdout] 2026-07-09T10:52:39.752198Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=39 new_cwnd=40 [INFO] [stdout] 2026-07-09T10:52:39.752222Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=6 frame=Ack { header: ShortHeader { command: Ack, connection_id: 6, payload_length: 8, recv_window_size: 247, timestamp: 188, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.752248Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 6, payload_length: 8, recv_window_size: 247, timestamp: 188, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.752275Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=6 recv_next_seq=0 recv_window=247 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.752277Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.752272Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:33087 frame_count=1 bytes=27 [INFO] [stdout] 2026-07-09T10:52:39.752342Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=6 [INFO] [stdout] 2026-07-09T10:52:39.752356Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=6 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=247 [INFO] [stdout] 2026-07-09T10:52:39.752381Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=8 [INFO] [stdout] 2026-07-09T10:52:39.752403Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.752427Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=308 srtt_ms=304 rttvar_ms=19 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.752432Z TRACE kestrel_protocol::timer::wheel::core: Batch cancelled timers batch_size=64 cancelled_count=64 [INFO] [stdout] 2026-07-09T10:52:39.752443Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=41 [INFO] [stdout] 2026-07-09T10:52:39.752454Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=40 new_cwnd=41 [INFO] [stdout] 2026-07-09T10:52:39.752463Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:49785 frame_count=1 bytes=27 [INFO] [stdout] 2026-07-09T10:52:39.752477Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=6 [INFO] [stdout] 2026-07-09T10:52:39.752501Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=6 state=Established [INFO] [stdout] 2026-07-09T10:52:39.752587Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=15 frame=Ack { header: ShortHeader { command: Ack, connection_id: 15, payload_length: 8, recv_window_size: 255, timestamp: 139, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.752622Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 15, payload_length: 8, recv_window_size: 255, timestamp: 139, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.752641Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=15 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.752664Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=15 [INFO] [stdout] 2026-07-09T10:52:39.752677Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=15 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.752708Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.752712Z TRACE kestrel_protocol::timer::task::global: Batch cancelled timers using wheel batch API batch_size=64 cancelled_count=64 wheel_cancelled_count=64 [INFO] [stdout] 2026-07-09T10:52:39.752728Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.752752Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=304 srtt_ms=304 rttvar_ms=152 rto_ms=912 [INFO] [stdout] 2026-07-09T10:52:39.752775Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.752787Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.752813Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=15 frame=Ack { header: ShortHeader { command: Ack, connection_id: 15, payload_length: 8, recv_window_size: 254, timestamp: 140, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.752842Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 15, payload_length: 8, recv_window_size: 254, timestamp: 140, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.752320Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=297 srtt_ms=297 rttvar_ms=148 rto_ms=893 [INFO] [stdout] 2026-07-09T10:52:39.752246Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=203 slot_index=98 delay_ms=262000 [INFO] [stdout] 2026-07-09T10:52:39.752902Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.752918Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=203 entry_id=203 connection_id=202 delay_ms=262000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.752923Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.752957Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=19 frame=Ack { header: ShortHeader { command: Ack, connection_id: 19, payload_length: 8, recv_window_size: 254, timestamp: 135, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.752988Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 19, payload_length: 8, recv_window_size: 254, timestamp: 135, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.753014Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=19 recv_next_seq=0 recv_window=254 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.753032Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=19 [INFO] [stdout] 2026-07-09T10:52:39.753024Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=204 slot_index=198 delay_ms=263000 [INFO] [stdout] 2026-07-09T10:52:39.753046Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=19 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=254 [INFO] [stdout] 2026-07-09T10:52:39.753089Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-07-09T10:52:39.753103Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=102 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.753105Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.753124Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=301 srtt_ms=298 rttvar_ms=112 rto_ms=748 [INFO] [stdout] 2026-07-09T10:52:39.753129Z TRACE kestrel_protocol::timer::wheel::core: Timer expired entry_id=9 expiry_time=Instant { tv_sec: 51902, tv_nsec: 954226006 } [INFO] [stdout] 2026-07-09T10:52:39.753140Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.753144Z DEBUG kestrel_protocol::timer::wheel::core: Timing wheel advance completed expired_count=1 [INFO] [stdout] 2026-07-09T10:52:39.753151Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.753169Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=19 frame=Ack { header: ShortHeader { command: Ack, connection_id: 19, payload_length: 8, recv_window_size: 253, timestamp: 139, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.753186Z TRACE kestrel_protocol::timer::event: Timer event triggered successfully timer_id=9 connection_id=1 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.753192Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 19, payload_length: 8, recv_window_size: 253, timestamp: 139, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.753209Z TRACE kestrel_protocol::timer::task::global: Timer event processed entry_id=9 connection_id=1 event_type=ConnectionTimeout [INFO] [stdout] 2026-07-09T10:52:39.753210Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=19 recv_next_seq=0 recv_window=253 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.753228Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=19 [INFO] [stdout] 2026-07-09T10:52:39.753240Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=19 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=253 [INFO] [stdout] 2026-07-09T10:52:39.753264Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-07-09T10:52:39.753277Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.753294Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=301 srtt_ms=298 rttvar_ms=85 rto_ms=639 [INFO] [stdout] 2026-07-09T10:52:39.753311Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.753321Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.753340Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=19 frame=Ack { header: ShortHeader { command: Ack, connection_id: 19, payload_length: 8, recv_window_size: 252, timestamp: 143, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.753362Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 19, payload_length: 8, recv_window_size: 252, timestamp: 143, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.753381Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=19 recv_next_seq=0 recv_window=252 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.753398Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=19 [INFO] [stdout] 2026-07-09T10:52:39.753411Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=19 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=252 [INFO] [stdout] 2026-07-09T10:52:39.753448Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] test timer::task::tests::tests::test_connection_lifecycle_management ... ok [INFO] [stdout] 2026-07-09T10:52:39.753463Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.753480Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=301 srtt_ms=299 rttvar_ms=64 rto_ms=557 [INFO] [stdout] 2026-07-09T10:52:39.753496Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.753506Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.753526Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=19 frame=Ack { header: ShortHeader { command: Ack, connection_id: 19, payload_length: 8, recv_window_size: 251, timestamp: 146, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.753538Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1854190210 [INFO] [stdout] 2026-07-09T10:52:39.753551Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 19, payload_length: 8, recv_window_size: 251, timestamp: 146, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.753565Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1854190210 state=SynReceived [INFO] [stdout] 2026-07-09T10:52:39.753569Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=19 recv_next_seq=0 recv_window=251 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.753586Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=19 [INFO] [stdout] 2026-07-09T10:52:39.751237Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=268 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.753599Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=19 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=251 [INFO] [stdout] 2026-07-09T10:52:39.753622Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-07-09T10:52:39.753635Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.753632Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=268 entry_id=268 connection_id=2105 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.753634Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.753653Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=301 srtt_ms=299 rttvar_ms=49 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.753668Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.753678Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.753695Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=19 frame=Ack { header: ShortHeader { command: Ack, connection_id: 19, payload_length: 8, recv_window_size: 250, timestamp: 147, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.753702Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=269 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.753717Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 19, payload_length: 8, recv_window_size: 250, timestamp: 147, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.753725Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=269 entry_id=269 connection_id=2505 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.753738Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=19 recv_next_seq=0 recv_window=250 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.753757Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=19 [INFO] [stdout] 2026-07-09T10:52:39.753759Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=270 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.753765Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.753771Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=19 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=250 [INFO] [stdout] 2026-07-09T10:52:39.753778Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=270 entry_id=270 connection_id=2305 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.753796Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=5 [INFO] [stdout] 2026-07-09T10:52:39.753797Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.753809Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.753826Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=10 delay_ms=100 [INFO] [stdout] 2026-07-09T10:52:39.753827Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=271 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.753829Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=301 srtt_ms=299 rttvar_ms=37 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.753848Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.753850Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=271 entry_id=271 connection_id=2405 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.753850Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=1 delay_ms=100 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.753888Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=15 recv_next_seq=0 recv_window=254 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.753914Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=15 [INFO] [stdout] 2026-07-09T10:52:39.753917Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=272 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.753938Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=272 entry_id=272 connection_id=2705 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.753867Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=37 new_cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.753981Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=19 frame=Ack { header: ShortHeader { command: Ack, connection_id: 19, payload_length: 8, recv_window_size: 249, timestamp: 151, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.754001Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=273 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.754016Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 19, payload_length: 8, recv_window_size: 249, timestamp: 151, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.751940Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=234 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.754023Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=273 entry_id=273 connection_id=2605 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.754054Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=234 entry_id=234 connection_id=233 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.754096Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=274 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.754131Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=274 entry_id=274 connection_id=2805 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.754136Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=235 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.754177Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=235 entry_id=235 connection_id=234 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] test timer::task::tests::tests::test_simd_compatibility_and_fallback ... ok [INFO] [stdout] 2026-07-09T10:52:39.754277Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=236 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.754293Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=122 remote_addr=127.0.0.1:9021 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 22, payload_length: 8, recv_window_size: 255, timestamp: 302, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.754363Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=275 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.754397Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=275 entry_id=275 connection_id=3505 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.754461Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=276 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.754496Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=276 entry_id=276 connection_id=1005 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.754545Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=277 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.754579Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=277 entry_id=277 connection_id=3005 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.754355Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=122 frame=Push { header: ShortHeader { command: Push, connection_id: 122, payload_length: 1200, recv_window_size: 256, timestamp: 3, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15" } [INFO] [stdout] 2026-07-09T10:52:39.754611Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-07-09T10:52:39.754629Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=278 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.754656Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=278 entry_id=278 connection_id=2905 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.754719Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=279 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.754754Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=279 entry_id=279 connection_id=3105 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.754808Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=280 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.754842Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=280 entry_id=280 connection_id=3205 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.754304Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=236 entry_id=236 connection_id=235 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.754944Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=281 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.754968Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=237 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.754980Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=281 entry_id=281 connection_id=3605 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.754997Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=237 entry_id=237 connection_id=236 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.755046Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=282 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.755068Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=238 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.755078Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=282 entry_id=282 connection_id=3305 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.755093Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=238 entry_id=238 connection_id=237 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.755125Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=283 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.755152Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=283 entry_id=283 connection_id=3805 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.755157Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=239 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.755180Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=239 entry_id=239 connection_id=238 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.755207Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=284 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.755239Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=240 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.755242Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=284 entry_id=284 connection_id=3405 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.755261Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=240 entry_id=240 connection_id=239 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.755300Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=285 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.755320Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=241 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.755334Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=285 entry_id=285 connection_id=4005 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.755344Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=241 entry_id=241 connection_id=240 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.755389Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=286 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.755412Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=242 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.755431Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=286 entry_id=286 connection_id=3705 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.755438Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=242 entry_id=242 connection_id=241 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.755482Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=287 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.755506Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=243 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.755515Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=287 entry_id=287 connection_id=3905 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.755531Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=243 entry_id=243 connection_id=242 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.755571Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=288 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.755592Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=244 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.755606Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=288 entry_id=288 connection_id=4405 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.755615Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=244 entry_id=244 connection_id=243 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.755667Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=289 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.755680Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=245 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.755704Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=245 entry_id=245 connection_id=244 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.755703Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=289 entry_id=289 connection_id=4105 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.755768Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=290 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.753939Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=15 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=254 [INFO] [stdout] 2026-07-09T10:52:39.755807Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=290 entry_id=290 connection_id=4205 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.755830Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-07-09T10:52:39.755847Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.755867Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=304 srtt_ms=304 rttvar_ms=114 rto_ms=761 [INFO] [stdout] 2026-07-09T10:52:39.755893Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=19 recv_next_seq=0 recv_window=249 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.755906Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.755916Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=19 [INFO] [stdout] 2026-07-09T10:52:39.755917Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.755941Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=19 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=249 [INFO] [stdout] 2026-07-09T10:52:39.755940Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=15 frame=Ack { header: ShortHeader { command: Ack, connection_id: 15, payload_length: 8, recv_window_size: 253, timestamp: 147, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.755943Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=101 slots_to_advance=10 max_advance=10 current_slot=20 [INFO] [stdout] 2026-07-09T10:52:39.755972Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=6 [INFO] [stdout] 2026-07-09T10:52:39.755973Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 15, payload_length: 8, recv_window_size: 253, timestamp: 147, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.755988Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.755994Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=15 recv_next_seq=0 recv_window=253 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.756007Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=302 srtt_ms=300 rttvar_ms=28 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.756014Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=15 [INFO] [stdout] 2026-07-09T10:52:39.756024Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=39 [INFO] [stdout] 2026-07-09T10:52:39.756028Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=15 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=253 [INFO] [stdout] 2026-07-09T10:52:39.756035Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=38 new_cwnd=39 [INFO] [stdout] 2026-07-09T10:52:39.756053Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-07-09T10:52:39.756043Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=101 slots_to_advance=10 max_advance=10 current_slot=20 [INFO] [stdout] 2026-07-09T10:52:39.756055Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=19 frame=Ack { header: ShortHeader { command: Ack, connection_id: 19, payload_length: 8, recv_window_size: 248, timestamp: 154, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.756067Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.756079Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 19, payload_length: 8, recv_window_size: 248, timestamp: 154, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.756084Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=307 srtt_ms=304 rttvar_ms=86 rto_ms=650 [INFO] [stdout] 2026-07-09T10:52:39.756100Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.756098Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=19 recv_next_seq=0 recv_window=248 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.756110Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.756117Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=19 [INFO] [stdout] 2026-07-09T10:52:39.756130Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=19 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=248 [INFO] [stdout] 2026-07-09T10:52:39.756129Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=15 frame=Ack { header: ShortHeader { command: Ack, connection_id: 15, payload_length: 8, recv_window_size: 252, timestamp: 148, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.756154Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=7 [INFO] [stdout] 2026-07-09T10:52:39.756152Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 15, payload_length: 8, recv_window_size: 252, timestamp: 148, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.756168Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.756170Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=15 recv_next_seq=0 recv_window=252 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.756188Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=15 [INFO] [stdout] 2026-07-09T10:52:39.756187Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=304 srtt_ms=300 rttvar_ms=22 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.756202Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=40 [INFO] [stdout] 2026-07-09T10:52:39.756200Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=15 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=252 [INFO] [stdout] 2026-07-09T10:52:39.756213Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=39 new_cwnd=40 [INFO] [stdout] 2026-07-09T10:52:39.756222Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] 2026-07-09T10:52:39.756230Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=19 frame=Ack { header: ShortHeader { command: Ack, connection_id: 19, payload_length: 8, recv_window_size: 247, timestamp: 155, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.756235Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.756253Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=307 srtt_ms=305 rttvar_ms=65 rto_ms=567 [INFO] [stdout] 2026-07-09T10:52:39.756252Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 19, payload_length: 8, recv_window_size: 247, timestamp: 155, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.756269Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.756271Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=19 recv_next_seq=0 recv_window=247 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.756279Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.756289Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=19 [INFO] [stdout] 2026-07-09T10:52:39.756296Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=15 frame=Ack { header: ShortHeader { command: Ack, connection_id: 15, payload_length: 8, recv_window_size: 251, timestamp: 155, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.756302Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=19 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=247 [INFO] [stdout] 2026-07-09T10:52:39.756315Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 15, payload_length: 8, recv_window_size: 251, timestamp: 155, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.756326Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=8 [INFO] [stdout] 2026-07-09T10:52:39.756334Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=15 recv_next_seq=0 recv_window=251 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.756339Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.756352Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=15 [INFO] [stdout] 2026-07-09T10:52:39.756357Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=304 srtt_ms=301 rttvar_ms=17 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.756365Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=15 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=251 [INFO] [stdout] 2026-07-09T10:52:39.756373Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=41 [INFO] [stdout] 2026-07-09T10:52:39.756383Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=40 new_cwnd=41 [INFO] [stdout] 2026-07-09T10:52:39.756388Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-07-09T10:52:39.756399Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=19 [INFO] [stdout] 2026-07-09T10:52:39.756401Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.756421Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=19 state=Established [INFO] [stdout] 2026-07-09T10:52:39.756419Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=308 srtt_ms=305 rttvar_ms=49 rto_ms=505 [INFO] [stdout] 2026-07-09T10:52:39.756436Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.756445Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.756463Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=15 frame=Ack { header: ShortHeader { command: Ack, connection_id: 15, payload_length: 8, recv_window_size: 250, timestamp: 156, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.756485Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 15, payload_length: 8, recv_window_size: 250, timestamp: 156, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.756497Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=163 slots_to_advance=16 max_advance=16 current_slot=11 [INFO] [stdout] 2026-07-09T10:52:39.756503Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=15 recv_next_seq=0 recv_window=250 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.756520Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=15 [INFO] [stdout] 2026-07-09T10:52:39.756533Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=15 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=250 [INFO] [stdout] 2026-07-09T10:52:39.756544Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=163 slots_to_advance=16 max_advance=16 current_slot=11 [INFO] [stdout] 2026-07-09T10:52:39.756557Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=5 [INFO] [stdout] 2026-07-09T10:52:39.756571Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.756589Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=308 srtt_ms=305 rttvar_ms=38 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.756605Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.756614Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=37 new_cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.756630Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=15 frame=Ack { header: ShortHeader { command: Ack, connection_id: 15, payload_length: 8, recv_window_size: 249, timestamp: 159, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.756650Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 15, payload_length: 8, recv_window_size: 249, timestamp: 159, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.756650Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=21 frame=Ack { header: ShortHeader { command: Ack, connection_id: 21, payload_length: 8, recv_window_size: 255, timestamp: 255, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.756666Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=15 recv_next_seq=0 recv_window=249 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.756682Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=15 [INFO] [stdout] 2026-07-09T10:52:39.756679Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 21, payload_length: 8, recv_window_size: 255, timestamp: 255, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.756693Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=15 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=249 [INFO] [stdout] 2026-07-09T10:52:39.756699Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=21 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.756712Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=6 [INFO] [stdout] 2026-07-09T10:52:39.756718Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=21 [INFO] [stdout] 2026-07-09T10:52:39.756716Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.756724Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.756733Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=21 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.756739Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=308 srtt_ms=306 rttvar_ms=29 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.756753Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=39 [INFO] [stdout] 2026-07-09T10:52:39.756759Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.756762Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=38 new_cwnd=39 [INFO] [stdout] 2026-07-09T10:52:39.756776Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=15 frame=Ack { header: ShortHeader { command: Ack, connection_id: 15, payload_length: 8, recv_window_size: 248, timestamp: 160, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.756775Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.756793Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 15, payload_length: 8, recv_window_size: 248, timestamp: 160, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.756784Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-07-09T10:52:39.756794Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=304 srtt_ms=304 rttvar_ms=152 rto_ms=914 [INFO] [stdout] 2026-07-09T10:52:39.756808Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=15 recv_next_seq=0 recv_window=248 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.756816Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.756824Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=15 [INFO] [stdout] 2026-07-09T10:52:39.756828Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.756834Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=15 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=248 [INFO] [stdout] 2026-07-09T10:52:39.756852Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=7 [INFO] [stdout] 2026-07-09T10:52:39.756848Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=21 frame=Ack { header: ShortHeader { command: Ack, connection_id: 21, payload_length: 8, recv_window_size: 254, timestamp: 255, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.755770Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=246 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.755859Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=291 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.756909Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=246 entry_id=246 connection_id=245 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.756912Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=291 entry_id=291 connection_id=4305 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.756916Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.756961Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=0 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.756984Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=292 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.757001Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=247 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.757020Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=292 entry_id=292 connection_id=105 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.757028Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=247 entry_id=247 connection_id=246 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.757036Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.757057Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=1 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.757078Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=293 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.757099Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=248 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.757114Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=3 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.757134Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 21, payload_length: 8, recv_window_size: 254, timestamp: 255, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.754618Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 122, payload_length: 1200, recv_window_size: 256, timestamp: 3, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15" } [INFO] [stdout] 2026-07-09T10:52:39.757169Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=21 recv_next_seq=0 recv_window=254 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.757179Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=122 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.757193Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=21 [INFO] [stdout] 2026-07-09T10:52:39.757201Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=122 seq=1 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.757135Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=3 entry_id=3 connection_id=2 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.757253Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=122 remote_addr=127.0.0.1:9021 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 22, payload_length: 8, recv_window_size: 254, timestamp: 305, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.757282Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=4 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.757321Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=4 entry_id=4 connection_id=3 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.757108Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=293 entry_id=293 connection_id=4705 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.757412Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=294 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.757444Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=294 entry_id=294 connection_id=4505 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.757473Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=295 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.757498Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=295 entry_id=295 connection_id=4605 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.757541Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=296 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.757298Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=122 frame=Push { header: ShortHeader { command: Push, connection_id: 122, payload_length: 1200, recv_window_size: 256, timestamp: 3, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15" } [INFO] [stdout] 2026-07-09T10:52:39.757570Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=296 entry_id=296 connection_id=606 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.757609Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=297 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.757639Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=297 entry_id=297 connection_id=4805 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.757685Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=298 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.757713Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=298 entry_id=298 connection_id=4905 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.757756Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=299 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.757787Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=299 entry_id=299 connection_id=205 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.757574Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 122, payload_length: 1200, recv_window_size: 256, timestamp: 3, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15" } [INFO] [stdout] 2026-07-09T10:52:39.757866Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=122 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.757911Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=122 seq=2 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.757916Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=5 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.757936Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=122 remote_addr=127.0.0.1:9021 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 22, payload_length: 8, recv_window_size: 253, timestamp: 305, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.757963Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=5 entry_id=5 connection_id=4 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.758053Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=6 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.758086Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=6 entry_id=6 connection_id=5 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.757978Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=122 frame=Push { header: ShortHeader { command: Push, connection_id: 122, payload_length: 1200, recv_window_size: 256, timestamp: 3, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15" } [INFO] [stdout] 2026-07-09T10:52:39.758222Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=7 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.758252Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=7 entry_id=7 connection_id=6 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.758322Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=8 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.758356Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=8 entry_id=8 connection_id=7 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.758429Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=9 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.758461Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=9 entry_id=9 connection_id=8 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.758243Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 122, payload_length: 1200, recv_window_size: 256, timestamp: 3, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15" } [INFO] [stdout] 2026-07-09T10:52:39.757141Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=248 entry_id=248 connection_id=247 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.758554Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=10 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.758586Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=10 entry_id=10 connection_id=9 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.758592Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=249 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.758619Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=249 entry_id=249 connection_id=248 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.753052Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=204 entry_id=204 connection_id=203 delay_ms=263000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.758746Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=205 slot_index=298 delay_ms=264000 [INFO] [stdout] 2026-07-09T10:52:39.758784Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=205 entry_id=205 connection_id=204 delay_ms=264000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.758789Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=11 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.758841Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=11 entry_id=11 connection_id=10 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.758852Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=206 slot_index=398 delay_ms=265000 [INFO] [stdout] 2026-07-09T10:52:39.758901Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=206 entry_id=206 connection_id=205 delay_ms=265000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.758988Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=207 slot_index=498 delay_ms=266000 [INFO] [stdout] 2026-07-09T10:52:39.759021Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=207 entry_id=207 connection_id=206 delay_ms=266000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.759089Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=208 slot_index=86 delay_ms=267000 [INFO] [stdout] 2026-07-09T10:52:39.759121Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=208 entry_id=208 connection_id=207 delay_ms=267000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.759198Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=209 slot_index=186 delay_ms=268000 [INFO] [stdout] 2026-07-09T10:52:39.759233Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=209 entry_id=209 connection_id=208 delay_ms=268000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.759306Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=210 slot_index=286 delay_ms=269000 [INFO] [stdout] 2026-07-09T10:52:39.759340Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=210 entry_id=210 connection_id=209 delay_ms=269000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.759416Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=211 slot_index=386 delay_ms=270000 [INFO] [stdout] 2026-07-09T10:52:39.759449Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=211 entry_id=211 connection_id=210 delay_ms=270000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.759521Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=212 slot_index=486 delay_ms=271000 [INFO] [stdout] 2026-07-09T10:52:39.759554Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=212 entry_id=212 connection_id=211 delay_ms=271000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.759633Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=213 slot_index=74 delay_ms=272000 [INFO] [stdout] 2026-07-09T10:52:39.759667Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=213 entry_id=213 connection_id=212 delay_ms=272000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.759749Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=214 slot_index=174 delay_ms=273000 [INFO] [stdout] 2026-07-09T10:52:39.759784Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=214 entry_id=214 connection_id=213 delay_ms=273000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.759853Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=215 slot_index=274 delay_ms=274000 [INFO] [stdout] 2026-07-09T10:52:39.760128Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=215 entry_id=215 connection_id=214 delay_ms=274000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.760214Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=216 slot_index=374 delay_ms=275000 [INFO] [stdout] 2026-07-09T10:52:39.760249Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=216 entry_id=216 connection_id=215 delay_ms=275000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.760326Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=217 slot_index=474 delay_ms=276000 [INFO] [stdout] 2026-07-09T10:52:39.760361Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=217 entry_id=217 connection_id=216 delay_ms=276000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.760442Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=218 slot_index=62 delay_ms=277000 [INFO] [stdout] 2026-07-09T10:52:39.760475Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=218 entry_id=218 connection_id=217 delay_ms=277000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.760560Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=219 slot_index=162 delay_ms=278000 [INFO] [stdout] 2026-07-09T10:52:39.760596Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=219 entry_id=219 connection_id=218 delay_ms=278000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.760678Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=220 slot_index=262 delay_ms=279000 [INFO] [stdout] 2026-07-09T10:52:39.760712Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=220 entry_id=220 connection_id=219 delay_ms=279000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.760793Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=221 slot_index=362 delay_ms=280000 [INFO] [stdout] 2026-07-09T10:52:39.760828Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=221 entry_id=221 connection_id=220 delay_ms=280000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.757837Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=300 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.760943Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=300 entry_id=300 connection_id=506 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.761026Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=301 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.761060Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=301 entry_id=301 connection_id=305 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.761072Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=12 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.761111Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=12 entry_id=12 connection_id=11 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.761117Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=302 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.761143Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=302 entry_id=302 connection_id=5 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.761202Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=303 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.761234Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=13 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.759951Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=250 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.760062Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=807311785 [INFO] [stdout] 2026-07-09T10:52:39.761279Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=250 entry_id=250 connection_id=249 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.761300Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=807311785 state=Closing [INFO] [stdout] 2026-07-09T10:52:39.760095Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=122 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.761368Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=251 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.761236Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=303 entry_id=303 connection_id=406 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.761411Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=251 entry_id=251 connection_id=250 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.761440Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=304 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.761475Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=304 entry_id=304 connection_id=706 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.761494Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=252 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.761521Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=252 entry_id=252 connection_id=251 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.761548Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=305 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.761577Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=305 entry_id=305 connection_id=1106 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.761601Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=253 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.761640Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=306 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.757207Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=21 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=254 [INFO] [stdout] 2026-07-09T10:52:39.761676Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=306 entry_id=306 connection_id=806 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.761697Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-07-09T10:52:39.761715Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.761736Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=307 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.761743Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=305 srtt_ms=304 rttvar_ms=114 rto_ms=762 [INFO] [stdout] 2026-07-09T10:52:39.761763Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.761762Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=307 entry_id=307 connection_id=906 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.761780Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.761807Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=21 frame=Ack { header: ShortHeader { command: Ack, connection_id: 21, payload_length: 8, recv_window_size: 253, timestamp: 260, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.761851Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=13 entry_id=13 connection_id=12 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.761856Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 21, payload_length: 8, recv_window_size: 253, timestamp: 260, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.761903Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=21 recv_next_seq=0 recv_window=253 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.761933Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=21 [INFO] [stdout] 2026-07-09T10:52:39.761950Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=21 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=253 [INFO] [stdout] 2026-07-09T10:52:39.761990Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-07-09T10:52:39.762014Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.762019Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=14 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.762033Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=310 srtt_ms=305 rttvar_ms=87 rto_ms=653 [INFO] [stdout] 2026-07-09T10:52:39.762048Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=14 entry_id=14 connection_id=13 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.762059Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.762071Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.762098Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=21 frame=Ack { header: ShortHeader { command: Ack, connection_id: 21, payload_length: 8, recv_window_size: 252, timestamp: 262, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.762128Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 21, payload_length: 8, recv_window_size: 252, timestamp: 262, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.762131Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=15 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.762168Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=21 recv_next_seq=0 recv_window=252 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.762189Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=21 [INFO] [stdout] 2026-07-09T10:52:39.762202Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=15 entry_id=15 connection_id=14 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.761372Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=122 seq=3 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.762210Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=21 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=252 [INFO] [stdout] 2026-07-09T10:52:39.762256Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] 2026-07-09T10:52:39.762261Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=122 remote_addr=127.0.0.1:9021 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 22, payload_length: 8, recv_window_size: 252, timestamp: 310, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.762278Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.762298Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=310 srtt_ms=306 rttvar_ms=66 rto_ms=572 [INFO] [stdout] 2026-07-09T10:52:39.762323Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.762335Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.762356Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=21 frame=Ack { header: ShortHeader { command: Ack, connection_id: 21, payload_length: 8, recv_window_size: 251, timestamp: 265, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.762454Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.762499Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 21, payload_length: 8, recv_window_size: 251, timestamp: 265, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.762516Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.762527Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=21 recv_next_seq=0 recv_window=251 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.762546Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=21 [INFO] [stdout] 2026-07-09T10:52:39.762559Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=21 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=251 [INFO] [stdout] 2026-07-09T10:52:39.762306Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=122 frame=Push { header: ShortHeader { command: Push, connection_id: 122, payload_length: 1200, recv_window_size: 256, timestamp: 3, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15" } [INFO] [stdout] 2026-07-09T10:52:39.762584Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-07-09T10:52:39.762600Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.762618Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=310 srtt_ms=306 rttvar_ms=51 rto_ms=510 [INFO] [stdout] 2026-07-09T10:52:39.762634Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.762643Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.762662Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=21 frame=Ack { header: ShortHeader { command: Ack, connection_id: 21, payload_length: 8, recv_window_size: 250, timestamp: 266, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.762685Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 21, payload_length: 8, recv_window_size: 250, timestamp: 266, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.762704Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=21 recv_next_seq=0 recv_window=250 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.762722Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=21 [INFO] [stdout] 2026-07-09T10:52:39.762735Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=21 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=250 [INFO] [stdout] 2026-07-09T10:52:39.762758Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=5 [INFO] [stdout] 2026-07-09T10:52:39.762772Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.762790Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=310 srtt_ms=307 rttvar_ms=39 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.762807Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.762817Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=37 new_cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.762835Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=21 frame=Ack { header: ShortHeader { command: Ack, connection_id: 21, payload_length: 8, recv_window_size: 249, timestamp: 268, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.762590Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 122, payload_length: 1200, recv_window_size: 256, timestamp: 3, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15" } [INFO] [stdout] 2026-07-09T10:52:39.761640Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=253 entry_id=253 connection_id=252 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.761817Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=308 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.753042Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=113 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.763042Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=122 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.762920Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=16 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.763094Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=16 entry_id=16 connection_id=15 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.763149Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=254 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.763256Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=254 entry_id=254 connection_id=253 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.763283Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=17 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.763308Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=17 entry_id=17 connection_id=16 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.763330Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=255 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.763355Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=255 entry_id=255 connection_id=254 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.763427Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=256 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.763455Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=256 entry_id=256 connection_id=255 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.763451Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=18 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.763496Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=18 entry_id=18 connection_id=17 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.763531Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=257 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.763558Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=257 entry_id=257 connection_id=256 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.763563Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=19 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.763583Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=19 entry_id=19 connection_id=18 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.763629Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=258 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.763637Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=20 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.763656Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=20 entry_id=20 connection_id=19 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.763656Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=258 entry_id=258 connection_id=257 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.763714Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=21 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.763722Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=259 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.763739Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=21 entry_id=21 connection_id=20 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.763741Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=259 entry_id=259 connection_id=258 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.763803Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=260 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.763803Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=22 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.756863Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.763838Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=22 entry_id=22 connection_id=21 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.763851Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=308 srtt_ms=306 rttvar_ms=22 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.763887Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=40 [INFO] [stdout] 2026-07-09T10:52:39.763900Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=39 new_cwnd=40 [INFO] [stdout] 2026-07-09T10:52:39.763926Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=15 frame=Ack { header: ShortHeader { command: Ack, connection_id: 15, payload_length: 8, recv_window_size: 247, timestamp: 160, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.763963Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 15, payload_length: 8, recv_window_size: 247, timestamp: 160, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.763992Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=15 recv_next_seq=0 recv_window=247 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.763997Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=23 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.764014Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=15 [INFO] [stdout] 2026-07-09T10:52:39.764020Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=23 entry_id=23 connection_id=22 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.764029Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=15 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=247 [INFO] [stdout] 2026-07-09T10:52:39.764060Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=8 [INFO] [stdout] 2026-07-09T10:52:39.764079Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.764088Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=24 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.764098Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=315 srtt_ms=307 rttvar_ms=19 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.764115Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=41 [INFO] [stdout] 2026-07-09T10:52:39.764109Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=24 entry_id=24 connection_id=23 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.764125Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=40 new_cwnd=41 [INFO] [stdout] 2026-07-09T10:52:39.764143Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=15 [INFO] [stdout] 2026-07-09T10:52:39.764165Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=15 state=Established [INFO] [stdout] 2026-07-09T10:52:39.764167Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=25 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.764188Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=25 entry_id=25 connection_id=24 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.764247Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=26 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.764247Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=8 frame=Ack { header: ShortHeader { command: Ack, connection_id: 8, payload_length: 8, recv_window_size: 255, timestamp: 238, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.764272Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 8, payload_length: 8, recv_window_size: 255, timestamp: 238, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.764271Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=26 entry_id=26 connection_id=25 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.764290Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=8 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.764336Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=8 [INFO] [stdout] 2026-07-09T10:52:39.764351Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=8 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.764362Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=27 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.764377Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.764384Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=27 entry_id=27 connection_id=26 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.764391Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.764409Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=319 srtt_ms=319 rttvar_ms=159 rto_ms=957 [INFO] [stdout] 2026-07-09T10:52:39.764427Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.764439Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.764448Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=28 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.764461Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=8 frame=Ack { header: ShortHeader { command: Ack, connection_id: 8, payload_length: 8, recv_window_size: 254, timestamp: 238, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.764483Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 8, payload_length: 8, recv_window_size: 254, timestamp: 238, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.764484Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=28 entry_id=28 connection_id=27 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.764502Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=8 recv_next_seq=0 recv_window=254 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.764522Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=8 [INFO] [stdout] 2026-07-09T10:52:39.764536Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=8 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=254 [INFO] [stdout] 2026-07-09T10:52:39.764562Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-07-09T10:52:39.764562Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=29 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.764576Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.764594Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=319 srtt_ms=319 rttvar_ms=119 rto_ms=798 [INFO] [stdout] 2026-07-09T10:52:39.764610Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.764610Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=29 entry_id=29 connection_id=28 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.764620Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.764638Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=8 frame=Ack { header: ShortHeader { command: Ack, connection_id: 8, payload_length: 8, recv_window_size: 253, timestamp: 244, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.764665Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 8, payload_length: 8, recv_window_size: 253, timestamp: 244, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.764678Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=30 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.764686Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=8 recv_next_seq=0 recv_window=253 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.764703Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=8 [INFO] [stdout] 2026-07-09T10:52:39.764699Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=30 entry_id=30 connection_id=29 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.764716Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=8 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=253 [INFO] [stdout] 2026-07-09T10:52:39.764742Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-07-09T10:52:39.764759Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.764762Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=31 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.764777Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=319 srtt_ms=319 rttvar_ms=89 rto_ms=679 [INFO] [stdout] 2026-07-09T10:52:39.764783Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=31 entry_id=31 connection_id=30 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.764793Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.764804Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.764823Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=8 frame=Ack { header: ShortHeader { command: Ack, connection_id: 8, payload_length: 8, recv_window_size: 252, timestamp: 247, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.764844Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=32 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.764849Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 8, payload_length: 8, recv_window_size: 252, timestamp: 247, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.763009Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=308 entry_id=308 connection_id=1206 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.764865Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=32 entry_id=32 connection_id=31 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.764946Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=33 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.764946Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=309 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.764971Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=33 entry_id=33 connection_id=32 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.764975Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=309 entry_id=309 connection_id=1406 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.765012Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=310 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.765030Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=34 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.765036Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=310 entry_id=310 connection_id=1306 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.765049Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=34 entry_id=34 connection_id=33 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.765088Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=311 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.765102Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=35 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.765113Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=311 entry_id=311 connection_id=1506 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.765123Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=35 entry_id=35 connection_id=34 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.765163Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=312 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.765180Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=36 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.765188Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=312 entry_id=312 connection_id=2206 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.765199Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=36 entry_id=36 connection_id=35 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.765237Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=313 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.765255Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=37 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.765262Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=313 entry_id=313 connection_id=1606 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.765274Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=37 entry_id=37 connection_id=36 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.765312Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=314 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.765332Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=314 entry_id=314 connection_id=1706 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.765374Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=315 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.765395Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=315 entry_id=315 connection_id=1806 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.765439Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=316 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.765462Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=316 entry_id=316 connection_id=1906 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.765510Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=317 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.765532Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=317 entry_id=317 connection_id=2006 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.765572Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=318 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.765592Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=318 entry_id=318 connection_id=2106 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.765640Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=319 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.765663Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=319 entry_id=319 connection_id=2506 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.765709Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=320 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.765731Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=320 entry_id=320 connection_id=2306 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.765780Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=321 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.765802Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=321 entry_id=321 connection_id=2406 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.765842Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=322 slot_index=371 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.763061Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=122 seq=4 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.763206Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=113 seq=1 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.765933Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=122 remote_addr=127.0.0.1:9021 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 22, payload_length: 8, recv_window_size: 251, timestamp: 313, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.765959Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=113 remote_addr=127.0.0.1:9012 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 13, payload_length: 8, recv_window_size: 254, timestamp: 319, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.765987Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=122 frame=Push { header: ShortHeader { command: Push, connection_id: 122, payload_length: 1200, recv_window_size: 256, timestamp: 3, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15" } [INFO] [stdout] 2026-07-09T10:52:39.765995Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=113 frame=Push { header: ShortHeader { command: Push, connection_id: 113, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c" } [INFO] [stdout] 2026-07-09T10:52:39.766263Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 122, payload_length: 1200, recv_window_size: 256, timestamp: 3, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15" } [INFO] [stdout] 2026-07-09T10:52:39.766534Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=122 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.766552Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=122 seq=5 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.766572Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=122 remote_addr=127.0.0.1:9021 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 22, payload_length: 8, recv_window_size: 250, timestamp: 314, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.766294Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 113, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c" } [INFO] [stdout] 2026-07-09T10:52:39.766599Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=113 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.773966Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=113 seq=2 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.762935Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=179 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.774024Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=179 entry_id=179 connection_id=178 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.774203Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=180 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.774237Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=180 entry_id=180 connection_id=179 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.774353Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=181 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.774383Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=181 entry_id=181 connection_id=180 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.774463Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=182 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.774491Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=182 entry_id=182 connection_id=181 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.774619Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=183 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.774650Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=183 entry_id=183 connection_id=182 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.774724Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=184 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.774754Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=184 entry_id=184 connection_id=183 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.764867Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=8 recv_next_seq=0 recv_window=252 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.774837Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=8 [INFO] [stdout] 2026-07-09T10:52:39.774862Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=8 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=252 [INFO] [stdout] 2026-07-09T10:52:39.774932Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] 2026-07-09T10:52:39.774951Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.774977Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=319 srtt_ms=319 rttvar_ms=67 rto_ms=589 [INFO] [stdout] 2026-07-09T10:52:39.774995Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.775005Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.775033Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=8 frame=Ack { header: ShortHeader { command: Ack, connection_id: 8, payload_length: 8, recv_window_size: 251, timestamp: 247, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.775065Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 8, payload_length: 8, recv_window_size: 251, timestamp: 247, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.775086Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=8 recv_next_seq=0 recv_window=251 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.775102Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=8 [INFO] [stdout] 2026-07-09T10:52:39.775113Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=8 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=251 [INFO] [stdout] 2026-07-09T10:52:39.775134Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-07-09T10:52:39.775145Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.775161Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=330 srtt_ms=320 rttvar_ms=53 rto_ms=534 [INFO] [stdout] 2026-07-09T10:52:39.775175Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.775184Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.775198Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=8 frame=Ack { header: ShortHeader { command: Ack, connection_id: 8, payload_length: 8, recv_window_size: 250, timestamp: 249, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.775216Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 8, payload_length: 8, recv_window_size: 250, timestamp: 249, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.775231Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=8 recv_next_seq=0 recv_window=250 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.775247Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=8 [INFO] [stdout] 2026-07-09T10:52:39.775257Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=8 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=250 [INFO] [stdout] 2026-07-09T10:52:39.775275Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=5 [INFO] [stdout] 2026-07-09T10:52:39.775286Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.775305Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=330 srtt_ms=321 rttvar_ms=42 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.775318Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.775327Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=37 new_cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.775340Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=8 frame=Ack { header: ShortHeader { command: Ack, connection_id: 8, payload_length: 8, recv_window_size: 249, timestamp: 251, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.775357Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 8, payload_length: 8, recv_window_size: 249, timestamp: 251, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.775373Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=8 recv_next_seq=0 recv_window=249 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.775389Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=8 [INFO] [stdout] 2026-07-09T10:52:39.775399Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=8 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=249 [INFO] [stdout] 2026-07-09T10:52:39.775419Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=6 [INFO] [stdout] 2026-07-09T10:52:39.775431Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.775447Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=330 srtt_ms=322 rttvar_ms=33 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.775462Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=39 [INFO] [stdout] 2026-07-09T10:52:39.775471Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=38 new_cwnd=39 [INFO] [stdout] 2026-07-09T10:52:39.775486Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=8 frame=Ack { header: ShortHeader { command: Ack, connection_id: 8, payload_length: 8, recv_window_size: 248, timestamp: 253, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.775509Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 8, payload_length: 8, recv_window_size: 248, timestamp: 253, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.775525Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=8 recv_next_seq=0 recv_window=248 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.775540Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=8 [INFO] [stdout] 2026-07-09T10:52:39.775551Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=8 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=248 [INFO] [stdout] 2026-07-09T10:52:39.775572Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=7 [INFO] [stdout] 2026-07-09T10:52:39.775584Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.775599Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=330 srtt_ms=323 rttvar_ms=27 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.775613Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=40 [INFO] [stdout] 2026-07-09T10:52:39.775622Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=39 new_cwnd=40 [INFO] [stdout] 2026-07-09T10:52:39.775638Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=8 frame=Ack { header: ShortHeader { command: Ack, connection_id: 8, payload_length: 8, recv_window_size: 247, timestamp: 255, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.775656Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 8, payload_length: 8, recv_window_size: 247, timestamp: 255, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.775673Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=8 recv_next_seq=0 recv_window=247 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.775689Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=8 [INFO] [stdout] 2026-07-09T10:52:39.775702Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=8 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=247 [INFO] [stdout] 2026-07-09T10:52:39.775724Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=8 [INFO] [stdout] 2026-07-09T10:52:39.775736Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.775753Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=330 srtt_ms=324 rttvar_ms=22 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.775768Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=41 [INFO] [stdout] 2026-07-09T10:52:39.775777Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=40 new_cwnd=41 [INFO] [stdout] 2026-07-09T10:52:39.775792Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=8 [INFO] [stdout] 2026-07-09T10:52:39.775815Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.775927Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=23 frame=Ack { header: ShortHeader { command: Ack, connection_id: 23, payload_length: 8, recv_window_size: 255, timestamp: 176, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.775963Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 23, payload_length: 8, recv_window_size: 255, timestamp: 176, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.775982Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=23 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.775998Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=23 [INFO] [stdout] 2026-07-09T10:52:39.776011Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=23 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.776034Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.776047Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.776067Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=318 srtt_ms=318 rttvar_ms=159 rto_ms=954 [INFO] [stdout] 2026-07-09T10:52:39.776081Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.776091Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.776108Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=23 frame=Ack { header: ShortHeader { command: Ack, connection_id: 23, payload_length: 8, recv_window_size: 254, timestamp: 177, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.776127Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 23, payload_length: 8, recv_window_size: 254, timestamp: 177, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-07-09T10:52:39.776144Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=23 recv_next_seq=0 recv_window=254 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.776160Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=23 [INFO] [stdout] 2026-07-09T10:52:39.776171Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=23 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=254 [INFO] [stdout] 2026-07-09T10:52:39.776191Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-07-09T10:52:39.776203Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.776218Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=318 srtt_ms=318 rttvar_ms=119 rto_ms=795 [INFO] [stdout] 2026-07-09T10:52:39.776232Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.776241Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-07-09T10:52:39.776256Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=23 frame=Ack { header: ShortHeader { command: Ack, connection_id: 23, payload_length: 8, recv_window_size: 253, timestamp: 178, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.776276Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 23, payload_length: 8, recv_window_size: 253, timestamp: 178, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.776292Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=23 recv_next_seq=0 recv_window=253 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.776308Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=23 [INFO] [stdout] 2026-07-09T10:52:39.776318Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=23 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=253 [INFO] [stdout] 2026-07-09T10:52:39.776336Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-07-09T10:52:39.776347Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.776362Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=318 srtt_ms=318 rttvar_ms=89 rto_ms=676 [INFO] [stdout] 2026-07-09T10:52:39.776375Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.776384Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-07-09T10:52:39.776398Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=23 frame=Ack { header: ShortHeader { command: Ack, connection_id: 23, payload_length: 8, recv_window_size: 252, timestamp: 196, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.776415Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 23, payload_length: 8, recv_window_size: 252, timestamp: 196, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.776430Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=23 recv_next_seq=0 recv_window=252 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.776444Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=23 [INFO] [stdout] 2026-07-09T10:52:39.776456Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=23 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=252 [INFO] [stdout] 2026-07-09T10:52:39.776476Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] 2026-07-09T10:52:39.776486Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.776501Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=318 srtt_ms=318 rttvar_ms=67 rto_ms=587 [INFO] [stdout] 2026-07-09T10:52:39.776515Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.776523Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-07-09T10:52:39.776537Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=23 frame=Ack { header: ShortHeader { command: Ack, connection_id: 23, payload_length: 8, recv_window_size: 251, timestamp: 221, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.776555Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 23, payload_length: 8, recv_window_size: 251, timestamp: 221, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.776570Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=23 recv_next_seq=0 recv_window=251 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.776586Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=23 [INFO] [stdout] 2026-07-09T10:52:39.776596Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=23 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=251 [INFO] [stdout] 2026-07-09T10:52:39.776614Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-07-09T10:52:39.776624Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.776639Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=318 srtt_ms=318 rttvar_ms=50 rto_ms=520 [INFO] [stdout] 2026-07-09T10:52:39.776654Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.776663Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] 2026-07-09T10:52:39.776677Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=23 frame=Ack { header: ShortHeader { command: Ack, connection_id: 23, payload_length: 8, recv_window_size: 250, timestamp: 222, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.776695Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 23, payload_length: 8, recv_window_size: 250, timestamp: 222, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-07-09T10:52:39.776710Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=23 recv_next_seq=0 recv_window=250 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.776726Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=23 [INFO] [stdout] 2026-07-09T10:52:39.776736Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=23 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=250 [INFO] [stdout] 2026-07-09T10:52:39.776755Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=5 [INFO] [stdout] 2026-07-09T10:52:39.776767Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.776783Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=318 srtt_ms=318 rttvar_ms=38 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.776797Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.776806Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=37 new_cwnd=38 [INFO] [stdout] 2026-07-09T10:52:39.776822Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=23 frame=Ack { header: ShortHeader { command: Ack, connection_id: 23, payload_length: 8, recv_window_size: 249, timestamp: 223, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.776839Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 23, payload_length: 8, recv_window_size: 249, timestamp: 223, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.777009Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=113 remote_addr=127.0.0.1:9012 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 13, payload_length: 8, recv_window_size: 253, timestamp: 330, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-07-09T10:52:39.777065Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=113 frame=Push { header: ShortHeader { command: Push, connection_id: 113, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c" } [INFO] [stdout] 2026-07-09T10:52:39.777346Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 113, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c" } [INFO] [stdout] 2026-07-09T10:52:39.777632Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=113 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.777652Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=113 seq=3 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.777678Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=113 remote_addr=127.0.0.1:9012 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 13, payload_length: 8, recv_window_size: 252, timestamp: 331, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-07-09T10:52:39.777713Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=113 frame=Push { header: ShortHeader { command: Push, connection_id: 113, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c" } [INFO] [stdout] 2026-07-09T10:52:39.778039Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 113, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c" } [INFO] [stdout] 2026-07-09T10:52:39.778336Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=113 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.778355Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=113 seq=4 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.778379Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=113 remote_addr=127.0.0.1:9012 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 13, payload_length: 8, recv_window_size: 251, timestamp: 332, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-07-09T10:52:39.778411Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=113 frame=Push { header: ShortHeader { command: Push, connection_id: 113, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c" } [INFO] [stdout] 2026-07-09T10:52:39.779008Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=185 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.779056Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=185 entry_id=185 connection_id=184 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.766912Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=260 entry_id=260 connection_id=259 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.779286Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=261 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.779318Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=261 entry_id=261 connection_id=260 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.779384Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=262 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.779410Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=262 entry_id=262 connection_id=261 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.779482Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=263 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.779508Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=263 entry_id=263 connection_id=262 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.779574Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=264 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.779600Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=264 entry_id=264 connection_id=263 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.779667Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=265 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.779692Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=265 entry_id=265 connection_id=264 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.779757Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=266 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.779783Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=266 entry_id=266 connection_id=265 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.779851Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=267 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.766599Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=122 frame=Push { header: ShortHeader { command: Push, connection_id: 122, payload_length: 1200, recv_window_size: 256, timestamp: 3, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15" } [INFO] [stdout] 2026-07-09T10:52:39.781960Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 122, payload_length: 1200, recv_window_size: 256, timestamp: 3, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15" } [INFO] [stdout] 2026-07-09T10:52:39.782268Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=122 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.782296Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=122 seq=6 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.782341Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=122 remote_addr=127.0.0.1:9021 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 22, payload_length: 8, recv_window_size: 249, timestamp: 330, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.782396Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=122 frame=Push { header: ShortHeader { command: Push, connection_id: 122, payload_length: 1200, recv_window_size: 256, timestamp: 3, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15" } [INFO] [stdout] 2026-07-09T10:52:39.782677Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 122, payload_length: 1200, recv_window_size: 256, timestamp: 3, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15" } [INFO] [stdout] 2026-07-09T10:52:39.782971Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=122 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-07-09T10:52:39.782971Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=267 entry_id=267 connection_id=266 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.782992Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=122 seq=7 payload_len=1200 [INFO] [stdout] 2026-07-09T10:52:39.783017Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=122 remote_addr=127.0.0.1:9021 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 22, payload_length: 8, recv_window_size: 248, timestamp: 330, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.783107Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=268 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.783135Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=268 entry_id=268 connection_id=267 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.783050Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=122 frame=Push { header: ShortHeader { command: Push, connection_id: 122, payload_length: 640, recv_window_size: 256, timestamp: 3, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15" } [INFO] [stdout] 2026-07-09T10:52:39.783188Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=269 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.783209Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=269 entry_id=269 connection_id=268 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.783266Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=270 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.783287Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=270 entry_id=270 connection_id=269 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.783335Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=271 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.783206Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 122, payload_length: 640, recv_window_size: 256, timestamp: 3, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15" } [INFO] [stdout] 2026-07-09T10:52:39.783356Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=271 entry_id=271 connection_id=270 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.783363Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=122 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-07-09T10:52:39.783381Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=122 seq=8 payload_len=640 [INFO] [stdout] 2026-07-09T10:52:39.783407Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=122 remote_addr=127.0.0.1:9021 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 22, payload_length: 8, recv_window_size: 247, timestamp: 331, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.783418Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=272 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.783442Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=122 [INFO] [stdout] 2026-07-09T10:52:39.783441Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=272 entry_id=272 connection_id=271 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.783475Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=122 count=9 [INFO] [stdout] 2026-07-09T10:52:39.783509Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=273 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.783515Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=122 state=Established [INFO] [stdout] 2026-07-09T10:52:39.783532Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=273 entry_id=273 connection_id=272 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.783594Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=274 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.783607Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=126 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 26 } } [INFO] [stdout] 2026-07-09T10:52:39.783621Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=274 entry_id=274 connection_id=273 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.783630Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="ConnectionProcessor" frame_type=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 26 } } [INFO] [stdout] 2026-07-09T10:52:39.783649Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=126 peer_cid=26 state=Established [INFO] [stdout] 2026-07-09T10:52:39.783666Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=126 state=Established [INFO] [stdout] 2026-07-09T10:52:39.783686Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=275 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.783685Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=126 frame=Ack { header: ShortHeader { command: Ack, connection_id: 126, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.783707Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=275 entry_id=275 connection_id=274 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.783710Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 126, payload_length: 8, recv_window_size: 255, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-07-09T10:52:39.783730Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=126 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.783753Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=126 [INFO] [stdout] 2026-07-09T10:52:39.783770Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=276 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.783770Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=126 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-07-09T10:52:39.783791Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=276 entry_id=276 connection_id=275 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.783808Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-07-09T10:52:39.783828Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.783851Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=324 srtt_ms=324 rttvar_ms=162 rto_ms=972 [INFO] [stdout] 2026-07-09T10:52:39.783853Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=277 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.783896Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=277 entry_id=277 connection_id=276 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.783975Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=278 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.783999Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=278 entry_id=278 connection_id=277 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.784063Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=279 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.784086Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=279 entry_id=279 connection_id=278 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.784151Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=280 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.784177Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=280 entry_id=280 connection_id=279 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.784240Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=281 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.784265Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=281 entry_id=281 connection_id=280 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.784354Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=282 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.784379Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=282 entry_id=282 connection_id=281 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.784441Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=283 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.784465Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=283 entry_id=283 connection_id=282 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.784530Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=284 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.784555Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=284 entry_id=284 connection_id=283 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.784616Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=285 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.784640Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=285 entry_id=285 connection_id=284 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.784697Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=286 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.784722Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=286 entry_id=286 connection_id=285 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.784780Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=287 slot_index=30 delay_ms=200 [INFO] [stdout] 2026-07-09T10:52:39.784803Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=287 entry_id=287 connection_id=286 delay_ms=200 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.762858Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 21, payload_length: 8, recv_window_size: 249, timestamp: 268, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-07-09T10:52:39.767986Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-07-09T10:52:39.785036Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=21 recv_next_seq=0 recv_window=249 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.773866Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:33087 frame_count=1 bytes=27 [INFO] [stdout] 2026-07-09T10:52:39.785061Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=21 [INFO] [stdout] 2026-07-09T10:52:39.763221Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=222 slot_index=462 delay_ms=281000 [INFO] [stdout] 2026-07-09T10:52:39.785070Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-07-09T10:52:39.785077Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=21 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=249 [INFO] [stdout] 2026-07-09T10:52:39.785111Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=6 [INFO] [stdout] 2026-07-09T10:52:39.785110Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=222 entry_id=222 connection_id=221 delay_ms=281000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.785128Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.785148Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=311 srtt_ms=307 rttvar_ms=30 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.785166Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=39 [INFO] [stdout] 2026-07-09T10:52:39.785178Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=38 new_cwnd=39 [INFO] [stdout] 2026-07-09T10:52:39.785203Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=21 frame=Ack { header: ShortHeader { command: Ack, connection_id: 21, payload_length: 8, recv_window_size: 248, timestamp: 268, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.785221Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=223 slot_index=50 delay_ms=282000 [INFO] [stdout] 2026-07-09T10:52:39.785232Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 21, payload_length: 8, recv_window_size: 248, timestamp: 268, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-07-09T10:52:39.785252Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=223 entry_id=223 connection_id=222 delay_ms=282000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.785254Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=21 recv_next_seq=0 recv_window=248 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.785274Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=21 [INFO] [stdout] 2026-07-09T10:52:39.785287Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=21 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=248 [INFO] [stdout] 2026-07-09T10:52:39.785313Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=7 [INFO] [stdout] 2026-07-09T10:52:39.785327Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.785329Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=224 slot_index=150 delay_ms=283000 [INFO] [stdout] 2026-07-09T10:52:39.785345Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=333 srtt_ms=310 rttvar_ms=29 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.785363Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=40 [INFO] [stdout] 2026-07-09T10:52:39.785358Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=224 entry_id=224 connection_id=223 delay_ms=283000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.785373Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=39 new_cwnd=40 [INFO] [stdout] 2026-07-09T10:52:39.785393Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=21 frame=Ack { header: ShortHeader { command: Ack, connection_id: 21, payload_length: 8, recv_window_size: 247, timestamp: 272, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.785415Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="AckProcessor" frame_type=Ack { header: ShortHeader { command: Ack, connection_id: 21, payload_length: 8, recv_window_size: 247, timestamp: 272, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-07-09T10:52:39.785437Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=21 recv_next_seq=0 recv_window=247 payload_len=8 state=Established [INFO] [stdout] 2026-07-09T10:52:39.785456Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=21 [INFO] [stdout] 2026-07-09T10:52:39.785471Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=21 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=247 [INFO] [stdout] 2026-07-09T10:52:39.785497Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=8 [INFO] [stdout] 2026-07-09T10:52:39.785513Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=0 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-07-09T10:52:39.785531Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=333 srtt_ms=313 rttvar_ms=27 rto_ms=500 [INFO] [stdout] 2026-07-09T10:52:39.785530Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=225 slot_index=250 delay_ms=284000 [INFO] [stdout] 2026-07-09T10:52:39.785548Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=41 [INFO] [stdout] 2026-07-09T10:52:39.785559Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=40 new_cwnd=41 [INFO] [stdout] 2026-07-09T10:52:39.785575Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=21 [INFO] [stdout] 2026-07-09T10:52:39.785595Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=21 state=Established [INFO] [stdout] 2026-07-09T10:52:39.785730Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=225 entry_id=225 connection_id=224 delay_ms=284000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.785819Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=226 slot_index=350 delay_ms=285000 [INFO] [stdout] 2026-07-09T10:52:39.785848Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=226 entry_id=226 connection_id=225 delay_ms=285000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.773966Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=38 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.785910Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=38 entry_id=38 connection_id=37 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.786059Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=39 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.786090Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=39 entry_id=39 connection_id=38 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.786200Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=227 slot_index=450 delay_ms=286000 [INFO] [stdout] 2026-07-09T10:52:39.786227Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=227 entry_id=227 connection_id=226 delay_ms=286000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.786293Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=228 slot_index=38 delay_ms=287000 [INFO] [stdout] 2026-07-09T10:52:39.786318Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=228 entry_id=228 connection_id=227 delay_ms=287000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.786386Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=229 slot_index=138 delay_ms=288000 [INFO] [stdout] 2026-07-09T10:52:39.786410Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=229 entry_id=229 connection_id=228 delay_ms=288000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.786479Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=230 slot_index=238 delay_ms=289000 [INFO] [stdout] 2026-07-09T10:52:39.786504Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=230 entry_id=230 connection_id=229 delay_ms=289000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.786575Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=231 slot_index=338 delay_ms=290000 [INFO] [stdout] 2026-07-09T10:52:39.786599Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=231 entry_id=231 connection_id=230 delay_ms=290000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.786661Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=232 slot_index=438 delay_ms=291000 [INFO] [stdout] 2026-07-09T10:52:39.786685Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=232 entry_id=232 connection_id=231 delay_ms=291000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.786750Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=233 slot_index=26 delay_ms=292000 [INFO] [stdout] 2026-07-09T10:52:39.786773Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=233 entry_id=233 connection_id=232 delay_ms=292000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.786840Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=234 slot_index=126 delay_ms=293000 [INFO] [stdout] 2026-07-09T10:52:39.787057Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:49785 frame_count=1 bytes=27 [INFO] [stdout] 2026-07-09T10:52:39.786867Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=234 entry_id=234 connection_id=233 delay_ms=293000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.787252Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=235 slot_index=226 delay_ms=294000 [INFO] [stdout] 2026-07-09T10:52:39.787281Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=235 entry_id=235 connection_id=234 delay_ms=294000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.787352Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=236 slot_index=326 delay_ms=295000 [INFO] [stdout] 2026-07-09T10:52:39.787379Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=236 entry_id=236 connection_id=235 delay_ms=295000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.787450Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=237 slot_index=426 delay_ms=296000 [INFO] [stdout] 2026-07-09T10:52:39.787476Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=237 entry_id=237 connection_id=236 delay_ms=296000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.787547Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=238 slot_index=14 delay_ms=297000 [INFO] [stdout] 2026-07-09T10:52:39.787573Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=238 entry_id=238 connection_id=237 delay_ms=297000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.787639Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=239 slot_index=114 delay_ms=298000 [INFO] [stdout] 2026-07-09T10:52:39.787663Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=239 entry_id=239 connection_id=238 delay_ms=298000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.787727Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=240 slot_index=214 delay_ms=299000 [INFO] [stdout] 2026-07-09T10:52:39.787750Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=240 entry_id=240 connection_id=239 delay_ms=299000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.787820Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=241 slot_index=314 delay_ms=300000 [INFO] [stdout] 2026-07-09T10:52:39.787845Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=241 entry_id=241 connection_id=240 delay_ms=300000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.787933Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=242 slot_index=414 delay_ms=301000 [INFO] [stdout] 2026-07-09T10:52:39.787967Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=242 entry_id=242 connection_id=241 delay_ms=301000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.788031Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=243 slot_index=2 delay_ms=302000 [INFO] [stdout] 2026-07-09T10:52:39.788059Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=243 entry_id=243 connection_id=242 delay_ms=302000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.788117Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=244 slot_index=102 delay_ms=303000 [INFO] [stdout] 2026-07-09T10:52:39.788139Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=244 entry_id=244 connection_id=243 delay_ms=303000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.788152Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=40 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.788191Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=40 entry_id=40 connection_id=39 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.788198Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=245 slot_index=202 delay_ms=304000 [INFO] [stdout] 2026-07-09T10:52:39.788221Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=245 entry_id=245 connection_id=244 delay_ms=304000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.788326Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=246 slot_index=302 delay_ms=305000 [INFO] [stdout] 2026-07-09T10:52:39.788350Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=246 entry_id=246 connection_id=245 delay_ms=305000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.788364Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=41 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.788396Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=41 entry_id=41 connection_id=40 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.788408Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=247 slot_index=402 delay_ms=306000 [INFO] [stdout] 2026-07-09T10:52:39.788464Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=247 entry_id=247 connection_id=246 delay_ms=306000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.788531Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=248 slot_index=502 delay_ms=307000 [INFO] [stdout] 2026-07-09T10:52:39.788553Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=248 entry_id=248 connection_id=247 delay_ms=307000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.788559Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=42 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.788590Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=42 entry_id=42 connection_id=41 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.788612Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=249 slot_index=90 delay_ms=308000 [INFO] [stdout] 2026-07-09T10:52:39.788653Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=43 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.788667Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=249 entry_id=249 connection_id=248 delay_ms=308000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.788673Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=43 entry_id=43 connection_id=42 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.788757Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=250 slot_index=190 delay_ms=309000 [INFO] [stdout] 2026-07-09T10:52:39.788783Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=250 entry_id=250 connection_id=249 delay_ms=309000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.788845Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=251 slot_index=290 delay_ms=310000 [INFO] [stdout] 2026-07-09T10:52:39.788888Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=251 entry_id=251 connection_id=250 delay_ms=310000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.788968Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=252 slot_index=390 delay_ms=311000 [INFO] [stdout] 2026-07-09T10:52:39.788970Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=44 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.788996Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=252 entry_id=252 connection_id=251 delay_ms=311000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.788999Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=44 entry_id=44 connection_id=43 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.789070Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=253 slot_index=490 delay_ms=312000 [INFO] [stdout] 2026-07-09T10:52:39.789081Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=45 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.789100Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=253 entry_id=253 connection_id=252 delay_ms=312000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.789102Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=45 entry_id=45 connection_id=44 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.789164Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=46 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.789164Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=254 slot_index=78 delay_ms=313000 [INFO] [stdout] 2026-07-09T10:52:39.789190Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=46 entry_id=46 connection_id=45 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.789190Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=254 entry_id=254 connection_id=253 delay_ms=313000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.789252Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=47 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.789252Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=255 slot_index=178 delay_ms=314000 [INFO] [stdout] 2026-07-09T10:52:39.789278Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=47 entry_id=47 connection_id=46 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.789278Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=255 entry_id=255 connection_id=254 delay_ms=314000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.789334Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=48 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.789340Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=256 slot_index=278 delay_ms=315000 [INFO] [stdout] 2026-07-09T10:52:39.789359Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=256 entry_id=256 connection_id=255 delay_ms=315000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.789359Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=48 entry_id=48 connection_id=47 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.789425Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=257 slot_index=378 delay_ms=316000 [INFO] [stdout] 2026-07-09T10:52:39.789425Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=49 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.789450Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=257 entry_id=257 connection_id=256 delay_ms=316000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.789457Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=49 entry_id=49 connection_id=48 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.789518Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=50 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.789518Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=258 slot_index=478 delay_ms=317000 [INFO] [stdout] 2026-07-09T10:52:39.789543Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=258 entry_id=258 connection_id=257 delay_ms=317000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.789543Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=50 entry_id=50 connection_id=49 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.789607Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=51 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.789607Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=259 slot_index=66 delay_ms=318000 [INFO] [stdout] 2026-07-09T10:52:39.789633Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=259 entry_id=259 connection_id=258 delay_ms=318000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.789633Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=51 entry_id=51 connection_id=50 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.789690Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=52 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.789695Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=260 slot_index=166 delay_ms=319000 [INFO] [stdout] 2026-07-09T10:52:39.789715Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=52 entry_id=52 connection_id=51 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.789715Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=260 entry_id=260 connection_id=259 delay_ms=319000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.789803Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=261 slot_index=266 delay_ms=320000 [INFO] [stdout] 2026-07-09T10:52:39.789827Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=261 entry_id=261 connection_id=260 delay_ms=320000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.789987Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=53 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.790027Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=53 entry_id=53 connection_id=52 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.790115Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=262 slot_index=366 delay_ms=321000 [INFO] [stdout] 2026-07-09T10:52:39.790139Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=262 entry_id=262 connection_id=261 delay_ms=321000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.790202Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=263 slot_index=466 delay_ms=322000 [INFO] [stdout] 2026-07-09T10:52:39.790224Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=263 entry_id=263 connection_id=262 delay_ms=322000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.790281Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=264 slot_index=54 delay_ms=323000 [INFO] [stdout] 2026-07-09T10:52:39.790305Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=264 entry_id=264 connection_id=263 delay_ms=323000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.790371Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=265 slot_index=154 delay_ms=324000 [INFO] [stdout] 2026-07-09T10:52:39.790396Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=265 entry_id=265 connection_id=264 delay_ms=324000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.790407Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=101 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-07-09T10:52:39.790473Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=266 slot_index=254 delay_ms=325000 [INFO] [stdout] 2026-07-09T10:52:39.790497Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=266 entry_id=266 connection_id=265 delay_ms=325000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.790562Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=267 slot_index=354 delay_ms=326000 [INFO] [stdout] 2026-07-09T10:52:39.790587Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=267 entry_id=267 connection_id=266 delay_ms=326000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.790656Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=268 slot_index=454 delay_ms=327000 [INFO] [stdout] 2026-07-09T10:52:39.790685Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=268 entry_id=268 connection_id=267 delay_ms=327000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.790757Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=269 slot_index=42 delay_ms=328000 [INFO] [stdout] 2026-07-09T10:52:39.790782Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=269 entry_id=269 connection_id=268 delay_ms=328000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.790850Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=270 slot_index=142 delay_ms=329000 [INFO] [stdout] 2026-07-09T10:52:39.790990Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=186 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.791012Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=54 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.791025Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=186 entry_id=186 connection_id=185 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.791043Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=54 entry_id=54 connection_id=53 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.791139Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=187 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.791154Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=55 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.791169Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=187 entry_id=187 connection_id=186 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.791183Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=55 entry_id=55 connection_id=54 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.791247Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=56 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.791270Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=188 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.791273Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=56 entry_id=56 connection_id=55 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.791297Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=188 entry_id=188 connection_id=187 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.791383Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=57 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.791400Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=189 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.791427Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=189 entry_id=189 connection_id=188 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.791477Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=57 entry_id=57 connection_id=56 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.791527Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=190 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.791539Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=270 entry_id=270 connection_id=269 delay_ms=329000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.791553Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=190 entry_id=190 connection_id=189 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.791615Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=271 slot_index=242 delay_ms=330000 [INFO] [stdout] 2026-07-09T10:52:39.791620Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=191 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.791640Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=271 entry_id=271 connection_id=270 delay_ms=330000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.791645Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=191 entry_id=191 connection_id=190 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.791701Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=272 slot_index=342 delay_ms=331000 [INFO] [stdout] 2026-07-09T10:52:39.791725Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=272 entry_id=272 connection_id=271 delay_ms=331000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.791788Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=273 slot_index=442 delay_ms=332000 [INFO] [stdout] 2026-07-09T10:52:39.791812Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=273 entry_id=273 connection_id=272 delay_ms=332000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.791913Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=58 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.791946Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=58 entry_id=58 connection_id=57 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.792008Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=59 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.792004Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=38 slots_to_advance=3 max_advance=3 current_slot=27 [INFO] [stdout] 2026-07-09T10:52:39.792032Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=59 entry_id=59 connection_id=58 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.792098Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=60 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.792124Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=60 entry_id=60 connection_id=59 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.792181Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=116 [INFO] [stdout] 2026-07-09T10:52:39.792190Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=61 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.792209Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=116 state=Established [INFO] [stdout] 2026-07-09T10:52:39.792213Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=61 entry_id=61 connection_id=60 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.792247Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=44 [INFO] [stdout] 2026-07-09T10:52:39.792263Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=44 state=Established [INFO] [stdout] 2026-07-09T10:52:39.792269Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=274 slot_index=30 delay_ms=333000 [INFO] [stdout] 2026-07-09T10:52:39.792293Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=274 entry_id=274 connection_id=273 delay_ms=333000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.792327Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=197 slots_to_advance=19 max_advance=19 current_slot=11 [INFO] [stdout] 2026-07-09T10:52:39.792362Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=203 slots_to_advance=20 max_advance=20 current_slot=10 [INFO] [stdout] 2026-07-09T10:52:39.792370Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=275 slot_index=130 delay_ms=334000 [INFO] [stdout] 2026-07-09T10:52:39.792397Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=202 slots_to_advance=20 max_advance=20 current_slot=10 [INFO] [stdout] 2026-07-09T10:52:39.792396Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=275 entry_id=275 connection_id=274 delay_ms=334000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.792432Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=202 slots_to_advance=20 max_advance=20 current_slot=10 [INFO] [stdout] 2026-07-09T10:52:39.792468Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=200 slots_to_advance=20 max_advance=20 current_slot=10 [INFO] [stdout] 2026-07-09T10:52:39.792481Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=276 slot_index=230 delay_ms=335000 [INFO] [stdout] 2026-07-09T10:52:39.792504Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=202 slots_to_advance=20 max_advance=20 current_slot=10 [INFO] [stdout] 2026-07-09T10:52:39.792510Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=276 entry_id=276 connection_id=275 delay_ms=335000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.792538Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=198 slots_to_advance=19 max_advance=19 current_slot=10 [INFO] [stdout] 2026-07-09T10:52:39.792572Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=197 slots_to_advance=19 max_advance=19 current_slot=10 [INFO] [stdout] 2026-07-09T10:52:39.792583Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=277 slot_index=330 delay_ms=336000 [INFO] [stdout] 2026-07-09T10:52:39.792609Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=277 entry_id=277 connection_id=276 delay_ms=336000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.792633Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=185 slots_to_advance=18 max_advance=18 current_slot=10 [INFO] [stdout] 2026-07-09T10:52:39.792669Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=278 slot_index=430 delay_ms=337000 [INFO] [stdout] 2026-07-09T10:52:39.792691Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=278 entry_id=278 connection_id=277 delay_ms=337000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.792745Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=107 [INFO] [stdout] 2026-07-09T10:52:39.792752Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=279 slot_index=18 delay_ms=338000 [INFO] [stdout] 2026-07-09T10:52:39.792762Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=107 state=Established [INFO] [stdout] 2026-07-09T10:52:39.792775Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=279 entry_id=279 connection_id=278 delay_ms=338000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.792814Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-07-09T10:52:39.792830Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-07-09T10:52:39.792834Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=280 slot_index=118 delay_ms=339000 [INFO] [stdout] 2026-07-09T10:52:39.792857Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=123 [INFO] [stdout] 2026-07-09T10:52:39.792894Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=123 state=Established [INFO] [stdout] 2026-07-09T10:52:39.792902Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.792915Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=62 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.792925Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-07-09T10:52:39.792932Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=25 [INFO] [stdout] 2026-07-09T10:52:39.792935Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=62 entry_id=62 connection_id=61 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-07-09T10:52:39.792947Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=25 state=Established [INFO] [stdout] 2026-07-09T10:52:39.792986Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=103 [INFO] [stdout] 2026-07-09T10:52:39.793001Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=103 state=Established [INFO] [stdout] 2026-07-09T10:52:39.793026Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=150 [INFO] [stdout] 2026-07-09T10:52:39.793039Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=150 state=Established [INFO] [stdout] 2026-07-09T10:52:39.793045Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=63 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-07-09T10:52:39.793066Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=35 [WARN] too many lines in the log, truncating it