[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.95.0 for beta-1.96-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FShaoG-R%2Fkestrel-protocol" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-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-2-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/ShaoG-R/kestrel-protocol on toolchain 1.95.0 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "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.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded topological-sort v0.2.2 [INFO] [stderr] Downloaded notify-debouncer-mini v0.6.0 [INFO] [stderr] Downloaded match_token v0.35.0 [INFO] [stderr] Downloaded redox_syscall v0.5.15 [INFO] [stderr] Downloaded pest_generator v2.8.1 [INFO] [stderr] Downloaded is-terminal v0.4.16 [INFO] [stderr] Downloaded num-modular v0.6.1 [INFO] [stderr] Downloaded clap_complete v4.5.55 [INFO] [stderr] Downloaded env_logger v0.10.2 [INFO] [stderr] Downloaded cssparser v0.35.0 [INFO] [stderr] Downloaded html5ever v0.35.0 [INFO] [stderr] Downloaded toml_edit v0.15.0 [INFO] [stderr] Downloaded handlebars v6.3.2 [INFO] [stderr] Downloaded elasticlunr-rs v3.0.2 [INFO] [stderr] Downloaded ammonia v4.1.1 [INFO] [stderr] Downloaded io-uring v0.7.9 [INFO] [stderr] Downloaded pulldown-cmark v0.10.3 [INFO] [stderr] Downloaded clap_builder v4.5.41 [INFO] [stderr] Downloaded clap v4.5.41 [INFO] [stderr] Downloaded jiff-static v0.2.15 [INFO] [stderr] Downloaded pest_meta v2.8.1 [INFO] [stderr] Downloaded ignore v0.4.23 [INFO] [stderr] Downloaded notify v8.1.0 [INFO] [stderr] Downloaded pulldown-cmark v0.9.6 [INFO] [stderr] Downloaded web_atoms v0.1.3 [INFO] [stderr] Downloaded rustix v1.0.8 [INFO] [stderr] Downloaded markup5ever v0.35.0 [INFO] [stderr] Downloaded env_logger v0.11.8 [INFO] [stderr] Downloaded pest_derive v2.8.1 [INFO] [stderr] Downloaded globset v0.4.16 [INFO] [stderr] Downloaded opener v0.8.2 [INFO] [stderr] Downloaded num-order v1.2.0 [INFO] [stderr] Downloaded terminal_size v0.4.2 [INFO] [stderr] Downloaded notify-types v2.0.0 [INFO] [stderr] Downloaded pulldown-cmark-escape v0.10.1 [INFO] [stderr] Downloaded kqueue v1.1.1 [INFO] [stderr] Downloaded jiff v0.2.15 [INFO] [stderr] Downloaded mdbook-mermaid v0.15.0 [INFO] [stderr] Downloaded tokio v1.47.0 [INFO] [stderr] Downloaded mdbook v0.4.52 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a6ffc908ba012645761f768018f67749200661b757b57dfdf8a921330b23346c [INFO] running `Command { std: "docker" "start" "-a" "a6ffc908ba012645761f768018f67749200661b757b57dfdf8a921330b23346c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a6ffc908ba012645761f768018f67749200661b757b57dfdf8a921330b23346c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a6ffc908ba012645761f768018f67749200661b757b57dfdf8a921330b23346c", kill_on_drop: false }` [INFO] [stdout] a6ffc908ba012645761f768018f67749200661b757b57dfdf8a921330b23346c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] dd4fda1329dbd4e24fb813dd3bc689aad67ae2918b7d7437ffe824ae8a833f13 [INFO] running `Command { std: "docker" "start" "-a" "dd4fda1329dbd4e24fb813dd3bc689aad67ae2918b7d7437ffe824ae8a833f13", kill_on_drop: false }` [INFO] [stderr] Compiling futures-core v0.3.31 [INFO] [stderr] Compiling futures-sink v0.3.31 [INFO] [stderr] Compiling parking v2.2.1 [INFO] [stderr] Compiling lock_api v0.4.13 [INFO] [stderr] Compiling slab v0.4.10 [INFO] [stderr] Compiling memchr v2.7.5 [INFO] [stderr] Compiling bytemuck v1.23.1 [INFO] [stderr] Compiling arc-swap v1.7.1 [INFO] [stderr] Compiling syn v2.0.104 [INFO] [stderr] Compiling concurrent-queue v2.5.0 [INFO] [stderr] Compiling parking_lot_core v0.9.11 [INFO] [stderr] Compiling signal-hook-registry v1.4.5 [INFO] [stderr] Compiling tracing-core v0.1.34 [INFO] [stderr] Compiling socket2 v0.6.0 [INFO] [stderr] Compiling mio v1.0.4 [INFO] [stderr] Compiling rayon v1.10.0 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling safe_arch v0.7.4 [INFO] [stderr] Compiling crossbeam-queue v0.3.12 [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling event-listener v5.4.0 [INFO] [stderr] Compiling num_cpus v1.17.0 [INFO] [stderr] Compiling event-listener-strategy v0.5.4 [INFO] [stderr] Compiling parking_lot v0.12.4 [INFO] [stderr] Compiling async-channel v2.5.0 [INFO] [stderr] Compiling wide v0.7.33 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Compiling thiserror-impl v2.0.12 [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 thiserror v2.0.12 [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 33.85s [INFO] running `Command { std: "docker" "inspect" "dd4fda1329dbd4e24fb813dd3bc689aad67ae2918b7d7437ffe824ae8a833f13", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dd4fda1329dbd4e24fb813dd3bc689aad67ae2918b7d7437ffe824ae8a833f13", kill_on_drop: false }` [INFO] [stdout] dd4fda1329dbd4e24fb813dd3bc689aad67ae2918b7d7437ffe824ae8a833f13 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9162d892e18bbdf91440cc808bb6627c09d4dbf2cfdf2956f16973637c1ee65f [INFO] running `Command { std: "docker" "start" "-a" "9162d892e18bbdf91440cc808bb6627c09d4dbf2cfdf2956f16973637c1ee65f", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.104 [INFO] [stderr] Compiling siphasher v1.0.1 [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 parking_lot_core v0.9.11 [INFO] [stderr] Compiling mio v1.0.4 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling rustix v1.0.8 [INFO] [stderr] Compiling linux-raw-sys v0.9.4 [INFO] [stderr] Compiling anstyle-query v1.1.3 [INFO] [stderr] Compiling ucd-trie v0.1.7 [INFO] [stderr] Compiling mac v0.1.1 [INFO] [stderr] Compiling colorchoice v1.0.4 [INFO] [stderr] Compiling serde_json v1.0.141 [INFO] [stderr] Compiling anstyle v1.0.11 [INFO] [stderr] Compiling phf_shared v0.11.3 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.1 [INFO] [stderr] Compiling precomputed-hash v0.1.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling futf v0.1.5 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling anstream v0.6.19 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Compiling inotify-sys v0.1.5 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling tendril v0.4.3 [INFO] [stderr] Compiling parking_lot v0.12.4 [INFO] [stderr] Compiling clap_lex v0.7.5 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling dtoa v1.0.10 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling inotify v0.11.0 [INFO] [stderr] Compiling dtoa-short v0.3.5 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Compiling pulldown-cmark v0.10.3 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling notify-types v2.0.0 [INFO] [stderr] Compiling num-modular v0.6.1 [INFO] [stderr] Compiling matchit v0.8.4 [INFO] [stderr] Compiling http-range-header v0.4.2 [INFO] [stderr] Compiling pulldown-cmark v0.9.6 [INFO] [stderr] Compiling pulldown-cmark-escape v0.10.1 [INFO] [stderr] Compiling notify v8.1.0 [INFO] [stderr] Compiling maplit v1.0.2 [INFO] [stderr] Compiling phf_generator v0.11.3 [INFO] [stderr] Compiling jiff v0.2.15 [INFO] [stderr] Compiling itertools v0.10.5 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling regex-automata v0.4.9 [INFO] [stderr] Compiling is-terminal v0.4.16 [INFO] [stderr] Compiling phf_codegen v0.11.3 [INFO] [stderr] Compiling string_cache_codegen v0.5.4 [INFO] [stderr] Compiling combine v4.6.7 [INFO] [stderr] Compiling termcolor v1.4.1 [INFO] [stderr] Compiling humantime v2.2.0 [INFO] [stderr] Compiling topological-sort v0.2.2 [INFO] [stderr] Compiling toml_datetime v0.5.1 [INFO] [stderr] Compiling num-order v1.2.0 [INFO] [stderr] Compiling web_atoms v0.1.3 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Compiling pathdiff v0.2.3 [INFO] [stderr] Compiling async-channel v2.5.0 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling chrono v0.4.41 [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 regex v1.11.1 [INFO] [stderr] Compiling bstr v1.12.0 [INFO] [stderr] Compiling env_filter v0.1.3 [INFO] [stderr] Compiling env_logger v0.10.2 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling globset v0.4.16 [INFO] [stderr] Compiling opener v0.8.2 [INFO] [stderr] Compiling ignore v0.4.23 [INFO] [stderr] Compiling env_logger v0.11.8 [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 phf_macros v0.11.3 [INFO] [stderr] Compiling cssparser-macros v0.6.1 [INFO] [stderr] Compiling phf v0.11.3 [INFO] [stderr] Compiling match_token v0.35.0 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling cssparser v0.35.0 [INFO] [stderr] Compiling tokio v1.47.0 [INFO] [stderr] Compiling clap v4.5.41 [INFO] [stderr] Compiling async-trait v0.1.88 [INFO] [stderr] Compiling clap_complete v4.5.55 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling thiserror v2.0.12 [INFO] [stderr] Compiling yoke v0.8.0 [INFO] [stderr] Compiling pest v2.8.1 [INFO] [stderr] Compiling tungstenite v0.26.2 [INFO] [stderr] Compiling toml_edit v0.15.0 [INFO] [stderr] Compiling tracing v0.1.41 [INFO] [stderr] Compiling zerovec v0.11.2 [INFO] [stderr] Compiling zerotrie v0.2.2 [INFO] [stderr] Compiling axum-core v0.5.2 [INFO] [stderr] Compiling tracing-subscriber v0.3.19 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling derive_builder_core v0.20.2 [INFO] [stderr] Compiling tinystr v0.8.1 [INFO] [stderr] Compiling potential_utf v0.1.2 [INFO] [stderr] Compiling icu_collections v2.0.0 [INFO] [stderr] Compiling icu_locale_core v2.0.0 [INFO] [stderr] Compiling derive_builder_macro v0.20.2 [INFO] [stderr] Compiling derive_builder v0.20.2 [INFO] [stderr] Compiling icu_provider v2.0.0 [INFO] [stderr] Compiling icu_normalizer v2.0.0 [INFO] [stderr] Compiling icu_properties v2.0.1 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling string_cache v0.8.9 [INFO] [stderr] Compiling serde_path_to_error v0.1.17 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling toml v0.5.11 [INFO] [stderr] Compiling pest_meta v2.8.1 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.0.3 [INFO] [stderr] Compiling url v2.5.4 [INFO] [stderr] Compiling markup5ever v0.35.0 [INFO] [stderr] Compiling html5ever v0.35.0 [INFO] [stderr] Compiling pest_generator v2.8.1 [INFO] [stderr] Compiling elasticlunr-rs v3.0.2 [INFO] [stderr] Compiling ammonia v4.1.1 [INFO] [stderr] Compiling pest_derive v2.8.1 [INFO] [stderr] Compiling handlebars v6.3.2 [INFO] [stderr] Compiling hyper v1.6.0 [INFO] [stderr] Compiling tower v0.5.2 [INFO] [stderr] Compiling tokio-util v0.7.15 [INFO] [stderr] Compiling tokio-tungstenite v0.26.2 [INFO] [stderr] Compiling kestrel-protocol v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Compiling tower-http v0.6.6 [INFO] [stderr] Compiling hyper-util v0.1.16 [INFO] [stderr] Compiling axum v0.8.4 [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 21s [INFO] running `Command { std: "docker" "inspect" "9162d892e18bbdf91440cc808bb6627c09d4dbf2cfdf2956f16973637c1ee65f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9162d892e18bbdf91440cc808bb6627c09d4dbf2cfdf2956f16973637c1ee65f", kill_on_drop: false }` [INFO] [stdout] 9162d892e18bbdf91440cc808bb6627c09d4dbf2cfdf2956f16973637c1ee65f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] a5a2b1384c0e6ec7b375c2e81b2c716a584783e16f1d1ad5807b1254c55f6a25 [INFO] running `Command { std: "docker" "start" "-a" "a5a2b1384c0e6ec7b375c2e81b2c716a584783e16f1d1ad5807b1254c55f6a25", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.41s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/kestrel_protocol-28e00c8a49b75ae7) [INFO] [stdout] [INFO] [stdout] running 310 tests [INFO] [stdout] test core::endpoint::core::frame::tests::test_create_fin_frame ... ok [INFO] [stdout] test core::endpoint::core::frame::tests::test_create_ack_frame ... ok [INFO] [stdout] test core::endpoint::core::sender::tests::test_packet_builder_add_frames_batch ... ok [INFO] [stdout] test core::endpoint::core::frame::tests::test_create_syn_frame ... 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_frame_equals_max_size ... ok [INFO] [stdout] test core::endpoint::core::sender::tests::test_packet_builder_frame_larger_than_max_size ... ok [INFO] [stdout] test core::endpoint::core::sender::tests::test_packet_builder_exceeds_mtu ... ok [INFO] [stdout] test core::endpoint::core::sender::tests::test_packet_builder_single_frame ... 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_force_close ... ok [INFO] [stdout] test core::endpoint::lifecycle::manager::tests::test_clear_event_listeners ... ok [INFO] [stdout] test core::endpoint::lifecycle::manager::tests::test_invalid_state_transitions ... ok [INFO] [stdout] test core::endpoint::lifecycle::transitions::tests::test_clear_event_listeners ... ok [INFO] [stdout] test core::endpoint::lifecycle::transitions::tests::test_event_listeners ... ok [INFO] [stdout] test core::endpoint::lifecycle::manager::tests::test_data_permission_checks ... ok [INFO] [stdout] test core::endpoint::lifecycle::transitions::tests::test_execute_invalid_transition ... ok [INFO] [stdout] test core::endpoint::lifecycle::manager::tests::test_event_callbacks ... ok [INFO] [stdout] test core::endpoint::lifecycle::manager::tests::test_lifecycle_manager_initialization ... ok [INFO] [stdout] test core::endpoint::lifecycle::manager::tests::test_activity_checks ... ok [INFO] [stdout] test core::endpoint::lifecycle::manager::tests::test_path_validation ... ok [INFO] [stdout] test core::endpoint::lifecycle::manager::tests::test_graceful_shutdown ... ok [INFO] [stdout] test core::endpoint::lifecycle::transitions::tests::test_state_name_for ... ok [INFO] [stdout] test core::endpoint::lifecycle::validation::tests::test_activity_checks ... ok [INFO] [stdout] test core::endpoint::lifecycle::validation::tests::test_graceful_shutdown_checks ... ok [INFO] [stdout] test core::endpoint::lifecycle::transitions::tests::test_graceful_shutdown_transitions ... ok [INFO] [stdout] test core::endpoint::lifecycle::validation::tests::test_should_close ... ok [INFO] [stdout] test core::endpoint::lifecycle::validation::tests::test_valid_transitions ... ok [INFO] [stdout] test core::endpoint::lifecycle::validation::tests::test_data_permissions ... ok [INFO] [stdout] test core::endpoint::lifecycle::manager::tests::test_state_transitions ... ok [INFO] [stdout] test core::endpoint::lifecycle::transitions::tests::test_execute_valid_transition ... 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::lifecycle::validation::tests::test_invalid_transitions ... ok [INFO] [stdout] test core::endpoint::processing::processors::ack::tests::test_ack_processor_can_handle ... ok [INFO] [stdout] test core::endpoint::lifecycle::validation::tests::test_path_validation_checks ... ok [INFO] [stdout] test core::endpoint::processing::processors::connection::tests::test_processor_name ... 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_processor_name ... 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::path::tests::test_processor_name ... ok [INFO] [stdout] test core::endpoint::processing::processors::tests::test_frame_processor_routing ... ok [INFO] [stdout] test core::endpoint::processing::operations::tests::test_endpoint_operations_state_management ... ok [INFO] [stdout] test core::endpoint::processing::processors::ack::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::timing::tests::test_calculate_next_wakeup_with_rto ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_fin_pending_eof_operations ... ok [INFO] [stdout] test core::endpoint::tests::event_dispatcher::tests::test_event_dispatcher_frame_routing ... ok [INFO] [stdout] test core::endpoint::processing::processors::data::tests::test_push_processor_can_handle ... ok [INFO] [stdout] test core::endpoint::processing::processors::path::tests::test_path_processor_can_handle ... 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::processing::traits::tests::test_mock_endpoint_operations ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_check_connection_timeouts_idle_timeout ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_next_connection_timeout_deadline ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_should_trigger_timeout_handling ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_timeout_debug_info ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_time_until_next_timeout ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_check_connection_timeouts_no_timeout ... 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_timing_manager_with_start_time ... ok [INFO] [stdout] test core::endpoint::types::channels::tests::test_channel_manager_creation ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_unified_scheduler_performance ... ok [INFO] [stdout] test core::endpoint::types::channels::tests::test_input_channel_status ... ok [INFO] [stdout] test core::endpoint::types::channels::tests::test_user_stream_operations ... ok [INFO] [stdout] test core::endpoint::types::identity::tests::test_connection_identity_creation ... ok [INFO] [stdout] test core::endpoint::types::identity::tests::test_connection_identity_matching ... ok [INFO] [stdout] test core::endpoint::types::identity::tests::test_connection_identity_setters ... ok [INFO] [stdout] test core::endpoint::types::state::tests::test_connection_state_traits ... 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_creation ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_unified_scheduler_cache_efficiency ... ok [INFO] [stdout] test core::endpoint::types::transport::tests::test_transport_manager_debug ... ok [INFO] [stdout] test core::endpoint::processing::operations::tests::test_processor_operations_fin_handling ... ok [INFO] [stdout] test core::endpoint::types::transport::tests::test_transport_stats ... ok [INFO] [stdout] test core::endpoint::types::transport::tests::test_transport_manager_with_window ... ok [INFO] [stdout] test core::endpoint::unified_scheduler::tests::test_calculate_unified_deadline ... ok [INFO] [stdout] test core::endpoint::unified_scheduler::tests::test_prediction_with_insufficient_data ... 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_cache_functionality ... ok [INFO] [stdout] test core::endpoint::unified_scheduler::tests::test_time_cache ... 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_avoidance_decrease_when_above_beta ... 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_avoidance_increase_when_below_alpha ... 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::congestion::tests::test_vegas_initial_state ... 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_random_loss_reaction ... ok [INFO] [stdout] test core::reliability::congestion::tests::test_vegas_slow_start ... 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_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::endpoint::timing::tests::test_on_packet_received ... ok [INFO] [stdout] test core::reliability::congestion::tests::test_vegas_loss_with_no_rtt_sample ... 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::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_receive_with_fin ... ok [INFO] [stdout] test core::reliability::recv_buffer::tests::test_receive_out_of_order_and_reassemble ... 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_first_sample ... ok [INFO] [stdout] test core::reliability::recv_buffer::tests::test_sack_range_complex ... ok [INFO] [stdout] test core::reliability::retransmission::rtt::tests::test_rtt_estimator_min_rto_enforced ... ok [INFO] [stdout] test core::reliability::retransmission::rtt::tests::test_rtt_estimator_initialization ... ok [INFO] [stdout] test core::reliability::retransmission::sack_manager::tests::test_clear ... ok [INFO] [stdout] test core::reliability::retransmission::sack_manager::tests::test_encode_decode_sack_ranges ... 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_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_process_ack_cumulative_only ... ok [INFO] [stdout] test core::endpoint::unified_scheduler::tests::test_unified_scheduler_creation ... ok [INFO] [stdout] test core::endpoint::unified_scheduler::tests::test_unified_timeout_check ... ok [INFO] [stdout] test core::reliability::retransmission::sack_manager::tests::test_should_send_standalone_ack ... ok [INFO] [stdout] test core::reliability::retransmission::sack_manager::tests::test_process_ack_with_sack ... ok [INFO] [stdout] test core::reliability::retransmission::simple_retx_manager::tests::test_add_and_acknowledge_packet ... 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_next_retransmission_deadline ... 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_sack_acknowledgment ... ok [INFO] [stdout] test core::reliability::retransmission::tests::test_check_retransmission_timeouts_with_timeout ... ok [INFO] [stdout] test core::reliability::retransmission::tests::test_check_retransmission_timeouts_no_timeout ... 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_layered_retransmission_disabled ... ok [INFO] [stdout] test core::reliability::retransmission::tests::test_layered_timeout_interface_consistency ... 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::reliability::packetizer::tests::test_packetize_zero_rtt_syn_ack_only ... ok [INFO] [stdout] test core::stream::tests::test_stream_read_into_small_buffers ... 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::endpoint::timing::tests::test_caller_side_performance ... ok [INFO] [stdout] test core::stream::tests::test_stream_read_simple ... ok [INFO] [stdout] test core::stream::tests::test_stream_read_multiple_sends ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_check_idle_timeout ... ok [INFO] [stdout] test core::endpoint::timing::tests::test_timeout_checks ... ok [INFO] [stdout] test core::reliability::retransmission::tests::test_next_retransmission_deadline ... ok [INFO] [stdout] test core::reliability::retransmission::tests::test_next_retransmission_timeout_deadline ... 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::endpoint::timing::tests::test_connection_timeout_deadline_after_activity ... ok [INFO] [stdout] test core::endpoint::processing::operations::tests::test_processor_operations_ack_processing ... ok [INFO] [stdout] test core::reliability::packetizer::tests::test_packetize_zero_rtt_respects_congestion_window ... ok [INFO] [stdout] test core::tests::reliability::test_server_0rtt_sends_data_correctly ... ok [INFO] [stdout] 2026-04-23T03:20:14.611659Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=128 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.611727Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=128 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.611768Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.611783Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.611799Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=128 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.611804Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.611815Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=128 remote_addr=127.0.0.1:9027 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 28, source_cid: 128 } } [INFO] [stdout] 2026-04-23T03:20:14.611847Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.611855Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=128 [INFO] [stdout] 2026-04-23T03:20:14.611862Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=1 remote_addr=127.0.0.1:5678 [INFO] [stdout] 2026-04-23T03:20:14.611871Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2 remote_addr=127.0.0.1:1234 [INFO] [stdout] 2026-04-23T03:20:14.611876Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=128 state=Established [INFO] [stdout] 2026-04-23T03:20:14.611912Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.611912Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.611923Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.611960Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.611962Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.611962Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.611986Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=129 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.611994Z 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-04-23T03:20:14.612054Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.612062Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=28 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: 28 } } [INFO] [stdout] 2026-04-23T03:20:14.612079Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2 remote_addr=127.0.0.1:1234 [INFO] [stdout] 2026-04-23T03:20:14.612096Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=28 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.612098Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.612115Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.612121Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=28 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 28, source_cid: 128 } } [INFO] [stdout] 2026-04-23T03:20:14.612122Z 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-04-23T03:20:14.612136Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.612142Z 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: 28, source_cid: 128 } } [INFO] [stdout] 2026-04-23T03:20:14.612161Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=28 peer_cid=128 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.612158Z 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-04-23T03:20:14.612220Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.612240Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.612277Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.612276Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.612275Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.612288Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=28 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.612302Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2 remote_addr=127.0.0.1:1234 [INFO] [stdout] 2026-04-23T03:20:14.612304Z 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-04-23T03:20:14.612305Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=28 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.612332Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=28 peer_cid=128 [INFO] [stdout] 2026-04-23T03:20:14.612328Z 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-04-23T03:20:14.612350Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=28 frame=Push { header: ShortHeader { command: Push, connection_id: 28, payload_length: 4, recv_window_size: 256, timestamp: 1, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.612357Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=2 peer_cid=12345 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.612375Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Received duplicate SYN, ignoring. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.612391Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.612387Z 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-04-23T03:20:14.612375Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 28, payload_length: 4, recv_window_size: 256, timestamp: 1, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.612405Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.612417Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.612417Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=28 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.612429Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.612439Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=28 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.612443Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.612468Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=28 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 128, 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-04-23T03:20:14.612479Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.612500Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=28 [INFO] [stdout] 2026-04-23T03:20:14.612502Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.612509Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.612516Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=28 count=1 [INFO] [stdout] 2026-04-23T03:20:14.612521Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.612525Z 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-04-23T03:20:14.612538Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=2 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.612540Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=28 state=Established [INFO] [stdout] 2026-04-23T03:20:14.612648Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=28 [INFO] [stdout] 2026-04-23T03:20:14.612673Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.612685Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.612695Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.612705Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-04-23T03:20:14.612716Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-04-23T03:20:14.612715Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.612725Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-04-23T03:20:14.612739Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-04-23T03:20:14.612749Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-04-23T03:20:14.612744Z 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-04-23T03:20:14.612758Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-04-23T03:20:14.612765Z 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-04-23T03:20:14.612783Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=2 peer_cid=1 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.612798Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Received duplicate SYN, ignoring. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.612811Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.612823Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.612865Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=1 current_state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.612884Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Connecting" to="Closing" [INFO] [stdout] 2026-04-23T03:20:14.612905Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.612936Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.612954Z 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-04-23T03:20:14.612974Z 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-04-23T03:20:14.613014Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.612770Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=28 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 128, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b" } [INFO] [stdout] 2026-04-23T03:20:14.613035Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.613048Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=28 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 128, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b" } [INFO] [stdout] 2026-04-23T03:20:14.613333Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=28 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 128, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b" } [INFO] [stdout] 2026-04-23T03:20:14.613631Z  INFO kestrel_protocol::core::tests::retransmission: --- RTO Recovery Test --- [INFO] [stdout] 2026-04-23T03:20:14.613798Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.617196Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=1 remote_addr=127.0.0.1:5678 [INFO] [stdout] 2026-04-23T03:20:14.613864Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.613614Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=28 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 128, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b" } [INFO] [stdout] 2026-04-23T03:20:14.614480Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.617479Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.617530Z 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-04-23T03:20:14.617541Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=130 remote_addr=127.0.0.1:9029 [INFO] [stdout] 2026-04-23T03:20:14.614534Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=129 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.614648Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.614670Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.617697Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=29 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-04-23T03:20:14.617807Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.617850Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.617876Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=29 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.617876Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.617913Z 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-04-23T03:20:14.617942Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.617966Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=29 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-04-23T03:20:14.618107Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=129 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.618116Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.618105Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=29 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: 29 } } [INFO] [stdout] 2026-04-23T03:20:14.618134Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=129 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.618149Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=29 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.618160Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.618154Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2 remote_addr=127.0.0.1:1234 [INFO] [stdout] 2026-04-23T03:20:14.618171Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.618186Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=129 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.618199Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=129 remote_addr=127.0.0.1:9028 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 29, source_cid: 129 } } [INFO] [stdout] 2026-04-23T03:20:14.618231Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=129 [INFO] [stdout] 2026-04-23T03:20:14.618251Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=129 state=Established [INFO] [stdout] 2026-04-23T03:20:14.614700Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.618297Z 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-04-23T03:20:14.618344Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.618356Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.618385Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=130 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.618396Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.618437Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.618467Z 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-04-23T03:20:14.614685Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.618644Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.618669Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=131 remote_addr=127.0.0.1:9030 [INFO] [stdout] 2026-04-23T03:20:14.618669Z  INFO kestrel_protocol::core::tests::retransmission: [Server] Sending probe to establish connection... [INFO] [stdout] 2026-04-23T03:20:14.618713Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.618744Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=1 remote_addr=127.0.0.1:5678 [INFO] [stdout] 2026-04-23T03:20:14.618783Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.618775Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=130 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.618781Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.618809Z 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-04-23T03:20:14.618832Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.618846Z 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-04-23T03:20:14.618860Z 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-04-23T03:20:14.618881Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=2 peer_cid=1 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.618901Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Received duplicate SYN, ignoring. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.618903Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.618919Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.618934Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.618932Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=30 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-04-23T03:20:14.618949Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.618957Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.614267Z 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-04-23T03:20:14.618973Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.618977Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.618975Z 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-04-23T03:20:14.619002Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.619001Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.619014Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.619031Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=2 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.619027Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=30 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.619046Z 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-04-23T03:20:14.619052Z TRACE kestrel_protocol::core::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-04-23T03:20:14.619075Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.619093Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.619095Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.619118Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=30 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-04-23T03:20:14.619118Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=0 payload_len=36 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.619121Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.619144Z DEBUG kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in SynReceived state (0-RTT data) cid=2 seq=0 [INFO] [stdout] 2026-04-23T03:20:14.619154Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2 remote_addr=127.0.0.1:1234 [INFO] [stdout] 2026-04-23T03:20:14.619170Z 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-04-23T03:20:14.619190Z 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-04-23T03:20:14.619214Z 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-04-23T03:20:14.619223Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=130 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.619231Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=2 seq=1 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.619247Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.619249Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Handling FIN in SynReceived state (0-RTT close) cid=2 seq=1 [INFO] [stdout] 2026-04-23T03:20:14.619277Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.619282Z 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: 6, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.619307Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.619321Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=SynReceived target_state=FinWait [INFO] [stdout] 2026-04-23T03:20:14.619331Z 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-04-23T03:20:14.619339Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.619341Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="SynReceived" to="FinWait" [INFO] [stdout] 2026-04-23T03:20:14.619360Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.619369Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.619380Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2 count=1 [INFO] [stdout] 2026-04-23T03:20:14.619392Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=131 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.619409Z TRACE kestrel_protocol::core::endpoint::core::event_loop: All data drained after FIN, closing user stream (sending EOF). cid=2 [INFO] [stdout] 2026-04-23T03:20:14.619425Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=FinWait [INFO] [stdout] 2026-04-23T03:20:14.619472Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.619479Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=30 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: 30 } } [INFO] [stdout] 2026-04-23T03:20:14.619502Z 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-04-23T03:20:14.619522Z 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-04-23T03:20:14.619514Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=30 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.619603Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=1 [INFO] [stdout] 2026-04-23T03:20:14.619602Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=130 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.619631Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.611994Z 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-04-23T03:20:14.619641Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.619655Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=130 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.619676Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2 [INFO] [stdout] 2026-04-23T03:20:14.619670Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=130 remote_addr=127.0.0.1:9029 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 30, source_cid: 130 } } [INFO] [stdout] 2026-04-23T03:20:14.619700Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=130 [INFO] [stdout] 2026-04-23T03:20:14.619721Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=130 state=Established [INFO] [stdout] 2026-04-23T03:20:14.619760Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.619787Z 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-04-23T03:20:14.619808Z 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-04-23T03:20:14.617338Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.619825Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=2 peer_cid=12345 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.619841Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Received duplicate SYN, ignoring. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.619842Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2 remote_addr=127.0.0.1:1234 [INFO] [stdout] 2026-04-23T03:20:14.619857Z 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-04-23T03:20:14.619883Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.619878Z TRACE kestrel_protocol::core::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-04-23T03:20:14.619898Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=0 payload_len=11 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.619915Z DEBUG kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in SynReceived state (0-RTT data) cid=2 seq=0 [INFO] [stdout] 2026-04-23T03:20:14.619925Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.619932Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.619948Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2 count=1 [INFO] [stdout] 2026-04-23T03:20:14.619950Z 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-04-23T03:20:14.619974Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.620000Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.620012Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.620043Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.620070Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.620077Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.620090Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.620101Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.620114Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.620123Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.620125Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.620137Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.620136Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=2 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.620150Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=2 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.620151Z 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-04-23T03:20:14.620164Z 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-04-23T03:20:14.620180Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.620196Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.620196Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.620215Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.620258Z 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-04-23T03:20:14.620275Z 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-04-23T03:20:14.620305Z 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-04-23T03:20:14.620324Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=1 peer_cid=2 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.620337Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2 [INFO] [stdout] 2026-04-23T03:20:14.620375Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.620378Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Starting path validation cid=2 new_addr=127.0.0.1:9999 challenge_data=12228782869469950987 [INFO] [stdout] 2026-04-23T03:20:14.620397Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.620396Z 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: 12228782869469950987, 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-04-23T03:20:14.620420Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="Established" to="ValidatingPath" [INFO] [stdout] 2026-04-23T03:20:14.620435Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.620459Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=1 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.620479Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.620477Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.620502Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=1 peer_cid=2 [INFO] [stdout] 2026-04-23T03:20:14.620501Z 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-04-23T03:20:14.620521Z 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: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"probe" } [INFO] [stdout] 2026-04-23T03:20:14.620551Z TRACE kestrel_protocol::core::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: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"probe" } [INFO] [stdout] 2026-04-23T03:20:14.620591Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=1 seq=0 payload_len=5 state=Established [INFO] [stdout] 2026-04-23T03:20:14.620611Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=1 seq=0 payload_len=5 [INFO] [stdout] 2026-04-23T03:20:14.620639Z 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-04-23T03:20:14.618214Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=28 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 128, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b" } [INFO] [stdout] 2026-04-23T03:20:14.620746Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.620766Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.620781Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2 remote_addr=127.0.0.1:1234 [INFO] [stdout] 2026-04-23T03:20:14.620786Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=1 count=1 [INFO] [stdout] 2026-04-23T03:20:14.620819Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.620830Z  INFO kestrel_protocol::core::tests::retransmission: [Client] Handshake complete. [INFO] [stdout] 2026-04-23T03:20:14.620843Z  INFO kestrel_protocol::core::tests::retransmission: [Client] Writing message... [INFO] [stdout] 2026-04-23T03:20:14.620859Z  INFO kestrel_protocol::core::tests::retransmission: [Server] Reading message... [INFO] [stdout] 2026-04-23T03:20:14.620863Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.620886Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.620890Z 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-04-23T03:20:14.620912Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.620927Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.620684Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=28 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 128, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b" } [INFO] [stdout] 2026-04-23T03:20:14.620943Z 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: 3, sequence_number: 0, recv_next_sequence: 1 }, payload: b"hello, this is a test message" } [INFO] [stdout] 2026-04-23T03:20:14.620985Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.621010Z  INFO kestrel_protocol::core::tests::retransmission: Intentionally dropping client data packet post-handshake seq=0 [INFO] [stdout] 2026-04-23T03:20:14.621013Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.621031Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.621052Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.621062Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=2 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.621070Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.621076Z 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-04-23T03:20:14.621106Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.621123Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.621192Z 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-04-23T03:20:14.620971Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=28 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 128, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b" } [INFO] [stdout] 2026-04-23T03:20:14.621228Z TRACE kestrel_protocol::core::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-04-23T03:20:14.621253Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=0 payload_len=10 state=Established [INFO] [stdout] 2026-04-23T03:20:14.621270Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=0 payload_len=10 [INFO] [stdout] 2026-04-23T03:20:14.621293Z 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: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.621326Z 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-04-23T03:20:14.621344Z 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-04-23T03:20:14.621362Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=2 seq=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.621383Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Handling FIN in Established state cid=2 seq=1 [INFO] [stdout] 2026-04-23T03:20:14.621405Z 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: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.621438Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.621463Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2 count=1 [INFO] [stdout] 2026-04-23T03:20:14.621483Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=Established target_state=FinWait [INFO] [stdout] 2026-04-23T03:20:14.621501Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="Established" to="FinWait" [INFO] [stdout] 2026-04-23T03:20:14.621520Z TRACE kestrel_protocol::core::endpoint::core::event_loop: All data drained after FIN, closing user stream (sending EOF). cid=2 [INFO] [stdout] 2026-04-23T03:20:14.621258Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=28 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 128, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b" } [INFO] [stdout] 2026-04-23T03:20:14.621533Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=FinWait [INFO] [stdout] 2026-04-23T03:20:14.619540Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=2 peer_cid=1 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.621701Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Received duplicate SYN, ignoring. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.612552Z 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-04-23T03:20:14.621748Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.621830Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.621886Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.621912Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.621937Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.621948Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.621968Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=2 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.621982Z 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-04-23T03:20:14.621990Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.622014Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.622022Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=132 remote_addr=127.0.0.1:9031 [INFO] [stdout] 2026-04-23T03:20:14.622031Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.622072Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.622089Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.622188Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=30 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 30, source_cid: 130 } } [INFO] [stdout] 2026-04-23T03:20:14.622206Z 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-04-23T03:20:14.622217Z 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: 30, source_cid: 130 } } [INFO] [stdout] 2026-04-23T03:20:14.622232Z 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-04-23T03:20:14.622239Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=30 peer_cid=130 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.622250Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=1 peer_cid=2 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.622298Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.622317Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.622354Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.622367Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=1 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.622383Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.622397Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=131 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.622405Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.622423Z 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-04-23T03:20:14.622465Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=1 peer_cid=2 [INFO] [stdout] 2026-04-23T03:20:14.622486Z 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: 2, sequence_number: 0, recv_next_sequence: 0 }, payload: b"pong" } [INFO] [stdout] 2026-04-23T03:20:14.622507Z TRACE kestrel_protocol::core::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: 2, sequence_number: 0, recv_next_sequence: 0 }, payload: b"pong" } [INFO] [stdout] 2026-04-23T03:20:14.622524Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=1 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.622540Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=1 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.622584Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.622586Z 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-04-23T03:20:14.622620Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.622618Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=31 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-04-23T03:20:14.622633Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=1 count=1 [INFO] [stdout] 2026-04-23T03:20:14.620551Z TRACE kestrel_protocol::core::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-04-23T03:20:14.622665Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.622676Z 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: 12228782869469950987, notifier: None } [INFO] [stdout] 2026-04-23T03:20:14.622705Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.622703Z DEBUG kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH during path validation cid=2 seq=10 [INFO] [stdout] 2026-04-23T03:20:14.622729Z 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-04-23T03:20:14.622747Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.622764Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.622771Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=31 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.622794Z 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: 12228782869469950987, 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-04-23T03:20:14.622832Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.621779Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.623020Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.623021Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.623086Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.623128Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=132 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.623220Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2 [INFO] [stdout] 2026-04-23T03:20:14.623324Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.623081Z 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-04-23T03:20:14.623370Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.623330Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=29 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 29, source_cid: 129 } } [INFO] [stdout] 2026-04-23T03:20:14.623396Z 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: 29, source_cid: 129 } } [INFO] [stdout] 2026-04-23T03:20:14.623422Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=29 peer_cid=129 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.623415Z 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-04-23T03:20:14.623437Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.623461Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=30 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.623475Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.623469Z 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-04-23T03:20:14.623479Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=30 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.623501Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.623510Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=30 peer_cid=130 [INFO] [stdout] 2026-04-23T03:20:14.623516Z 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-04-23T03:20:14.623534Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.623529Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=30 frame=Push { header: ShortHeader { command: Push, connection_id: 30, payload_length: 4, recv_window_size: 256, timestamp: 2, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.623541Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2 [INFO] [stdout] 2026-04-23T03:20:14.623547Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=29 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.623553Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=31 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-04-23T03:20:14.623583Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=29 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.623583Z 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-04-23T03:20:14.623608Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=29 peer_cid=129 [INFO] [stdout] 2026-04-23T03:20:14.623625Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=29 frame=Push { header: ShortHeader { command: Push, connection_id: 29, payload_length: 4, recv_window_size: 256, timestamp: 6, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.623644Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.623643Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 29, payload_length: 4, recv_window_size: 256, timestamp: 6, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.623660Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=29 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.623666Z 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-04-23T03:20:14.623676Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=29 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.623687Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=4 srtt_ms=4 rttvar_ms=2 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.623697Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=29 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 129, 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-04-23T03:20:14.623707Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.623723Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.623730Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=29 [INFO] [stdout] 2026-04-23T03:20:14.623725Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=131 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.623740Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.623744Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.623745Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=29 count=1 [INFO] [stdout] 2026-04-23T03:20:14.623753Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=131 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.623761Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.623766Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=29 state=Established [INFO] [stdout] 2026-04-23T03:20:14.623766Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=133 remote_addr=127.0.0.1:9032 [INFO] [stdout] test core::tests::shutdown::test_data_is_fully_read_before_shutdown_eof ... ok [INFO] [stdout] 2026-04-23T03:20:14.623777Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.623828Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] test core::tests::handshake::test_0rtt_handshake_with_client_data ... ok2026-04-23T03:20:14.623873Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=131 packet_count=1 [INFO] [stdout] [INFO] [stdout] 2026-04-23T03:20:14.623868Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=29 [INFO] [stdout] 2026-04-23T03:20:14.623552Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 30, payload_length: 4, recv_window_size: 256, timestamp: 2, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.623887Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=131 remote_addr=127.0.0.1:9030 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 31, source_cid: 131 } } [INFO] [stdout] 2026-04-23T03:20:14.623907Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.623905Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=30 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.623917Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=131 [INFO] [stdout] 2026-04-23T03:20:14.623925Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=30 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.623930Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.623936Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=131 state=Established [INFO] [stdout] 2026-04-23T03:20:14.623944Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.623955Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-04-23T03:20:14.623949Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=30 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 130, 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-04-23T03:20:14.623965Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-04-23T03:20:14.623976Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-04-23T03:20:14.623983Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=30 [INFO] [stdout] 2026-04-23T03:20:14.623986Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-04-23T03:20:14.623998Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-04-23T03:20:14.623999Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=30 count=1 [INFO] [stdout] 2026-04-23T03:20:14.624008Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-04-23T03:20:14.623998Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.624025Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=30 state=Established [INFO] [stdout] 2026-04-23T03:20:14.624103Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=30 [INFO] [stdout] 2026-04-23T03:20:14.624132Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.624140Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.624157Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.624155Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=1 remote_addr=127.0.0.1:1234 [INFO] [stdout] 2026-04-23T03:20:14.624170Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.624180Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-04-23T03:20:14.624191Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-04-23T03:20:14.624193Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.624202Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-04-23T03:20:14.624212Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-04-23T03:20:14.624223Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-04-23T03:20:14.624219Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.624233Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-04-23T03:20:14.624241Z 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-04-23T03:20:14.624191Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=31 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: 31 } } [INFO] [stdout] 2026-04-23T03:20:14.624022Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=29 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 129, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c" } [INFO] [stdout] 2026-04-23T03:20:14.624324Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.624309Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=31 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.624348Z 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-04-23T03:20:14.624355Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=31 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 31, source_cid: 131 } } [INFO] [stdout] 2026-04-23T03:20:14.624409Z 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-04-23T03:20:14.624397Z 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: 31, source_cid: 131 } } [INFO] [stdout] 2026-04-23T03:20:14.624448Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.624436Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=31 peer_cid=131 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.624470Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=1 current_state=Connecting target_state=Closed [INFO] [stdout] 2026-04-23T03:20:14.624487Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Connecting" to="Closed" [INFO] [stdout] 2026-04-23T03:20:14.624506Z DEBUG kestrel_protocol::core::reliability::retransmission: Cleared all in-flight packets from both SACK and simple retransmission managers. [INFO] [stdout] 2026-04-23T03:20:14.624518Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.624530Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=1 [INFO] [stdout] 2026-04-23T03:20:14.624246Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=30 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 130, payload_length: 1200, recv_window_size: 256, timestamp: 5, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d" } [INFO] [stdout] 2026-04-23T03:20:14.624318Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=29 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 129, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c" } [INFO] [stdout] 2026-04-23T03:20:14.624634Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.624656Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.624685Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.624695Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=31 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.624720Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=31 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.624740Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=31 peer_cid=131 [INFO] [stdout] 2026-04-23T03:20:14.624756Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=31 frame=Push { header: ShortHeader { command: Push, connection_id: 31, payload_length: 4, recv_window_size: 256, timestamp: 5, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.624774Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 31, payload_length: 4, recv_window_size: 256, timestamp: 5, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.624790Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=31 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.624804Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=31 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.624825Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=31 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 131, 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-04-23T03:20:14.624555Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=30 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 130, payload_length: 1200, recv_window_size: 256, timestamp: 5, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d" } [INFO] [stdout] 2026-04-23T03:20:14.624851Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=31 [INFO] [stdout] 2026-04-23T03:20:14.624863Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=31 count=1 [INFO] [stdout] 2026-04-23T03:20:14.624620Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=29 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 129, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c" } [INFO] [stdout] 2026-04-23T03:20:14.624884Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=31 state=Established [INFO] [stdout] 2026-04-23T03:20:14.624976Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=31 [INFO] [stdout] 2026-04-23T03:20:14.624995Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.625006Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.625016Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.625004Z 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-04-23T03:20:14.625026Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-04-23T03:20:14.625037Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-04-23T03:20:14.625033Z TRACE kestrel_protocol::core::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-04-23T03:20:14.625049Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-04-23T03:20:14.625052Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.625061Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-04-23T03:20:14.625069Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.625073Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-04-23T03:20:14.625087Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-04-23T03:20:14.625092Z 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: 5, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.621552Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=28 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 128, payload_length: 640, recv_window_size: 256, timestamp: 1, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b" } [INFO] [stdout] 2026-04-23T03:20:14.625124Z 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-04-23T03:20:14.625137Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=28 state=Established [INFO] [stdout] 2026-04-23T03:20:14.625144Z 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-04-23T03:20:14.625165Z 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-04-23T03:20:14.623366Z TRACE kestrel_protocol::core::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-04-23T03:20:14.625187Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=132 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.622903Z 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: 12228782869469950987 } [INFO] [stdout] 2026-04-23T03:20:14.625653Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=0 payload_len=10 state=FinWait [INFO] [stdout] 2026-04-23T03:20:14.625684Z DEBUG kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in FinWait state cid=2 seq=0 [INFO] [stdout] 2026-04-23T03:20:14.625702Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.625690Z 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: 12228782869469950987 } [INFO] [stdout] 2026-04-23T03:20:14.625721Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=FinWait [INFO] [stdout] 2026-04-23T03:20:14.625723Z DEBUG kestrel_protocol::core::endpoint::processing::processors::path: Processing PathResponse frame cid=2 seq=999 challenge_data=12228782869469950987 src_addr=127.0.0.1:9999 state=ValidatingPath { new_addr: 127.0.0.1:9999, challenge_data: 12228782869469950987, notifier: None } [INFO] [stdout] 2026-04-23T03:20:14.625750Z  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-04-23T03:20:14.625768Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Completing path validation cid=2 success=true [INFO] [stdout] 2026-04-23T03:20:14.625770Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2 [INFO] [stdout] 2026-04-23T03:20:14.625782Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=ValidatingPath { new_addr: 127.0.0.1:9999, challenge_data: 12228782869469950987, 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-04-23T03:20:14.625790Z 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-04-23T03:20:14.625808Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="ValidatingPath" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.625831Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.625835Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.625855Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.625852Z 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-04-23T03:20:14.625878Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.625874Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=3 srtt_ms=3 rttvar_ms=1 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.625892Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.625893Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.625905Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.625907Z 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: 6, sequence_number: 2, recv_next_sequence: 0 }, payload: b"data after migration" } [INFO] [stdout] 2026-04-23T03:20:14.625925Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.625940Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2 count=1 [INFO] [stdout] 2026-04-23T03:20:14.625940Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.625968Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.626048Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2 [INFO] [stdout] 2026-04-23T03:20:14.626051Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=1 current_state=Established [INFO] [stdout] 2026-04-23T03:20:14.626072Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Established" to="Closing" [INFO] [stdout] 2026-04-23T03:20:14.626095Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.626115Z 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-04-23T03:20:14.626134Z 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-04-23T03:20:14.626166Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.626196Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Closing [INFO] [stdout] test core::tests::handshake::test_1rtt_handshake_with_server_data ... ok [INFO] [stdout] test core::tests::shutdown::test_shutdown_when_connecting ... ok [INFO] [stdout] test core::tests::lifecycle::test_connection_migration ... ok [INFO] [stdout] 2026-04-23T03:20:14.626368Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.624858Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=30 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 130, payload_length: 1200, recv_window_size: 256, timestamp: 5, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d" } [INFO] [stdout] 2026-04-23T03:20:14.626487Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.626541Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.626581Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=1 remote_addr=127.0.0.1:5678 [INFO] [stdout] 2026-04-23T03:20:14.626615Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.626654Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.626674Z 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-04-23T03:20:14.626710Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.626463Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=30 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 130, payload_length: 1200, recv_window_size: 256, timestamp: 5, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d" } [INFO] [stdout] 2026-04-23T03:20:14.626749Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.626772Z 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-04-23T03:20:14.626888Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.626919Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2 remote_addr=127.0.0.1:1234 [INFO] [stdout] 2026-04-23T03:20:14.626990Z 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-04-23T03:20:14.627032Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.624908Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=29 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 129, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c" } [INFO] [stdout] 2026-04-23T03:20:14.627078Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.627115Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.627147Z 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-04-23T03:20:14.626776Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=30 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 130, payload_length: 1200, recv_window_size: 256, timestamp: 5, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d" } [INFO] [stdout] 2026-04-23T03:20:14.627287Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.627322Z 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-04-23T03:20:14.627352Z 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-04-23T03:20:14.627379Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=2 peer_cid=1 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.627403Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Received duplicate SYN, ignoring. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.627416Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.627437Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.627469Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.627498Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.627526Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.627272Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=30 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 130, payload_length: 1200, recv_window_size: 256, timestamp: 5, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d" } [INFO] [stdout] 2026-04-23T03:20:14.627633Z 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: 5, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.627670Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.627688Z 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: 5, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.627750Z 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-04-23T03:20:14.627790Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Closing state cid=1 [INFO] [stdout] 2026-04-23T03:20:14.627821Z 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-04-23T03:20:14.627603Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=30 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 130, payload_length: 1200, recv_window_size: 256, timestamp: 5, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d" } [INFO] [stdout] 2026-04-23T03:20:14.627833Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.627545Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=2 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.627939Z 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-04-23T03:20:14.627981Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.627956Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2 remote_addr=127.0.0.1:1234 [INFO] [stdout] 2026-04-23T03:20:14.628053Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.628057Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.628103Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.627887Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=30 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 130, payload_length: 1200, recv_window_size: 256, timestamp: 5, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d" } [INFO] [stdout] 2026-04-23T03:20:14.626735Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=1 remote_addr=127.0.0.1:5678 [INFO] [stdout] 2026-04-23T03:20:14.628138Z 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-04-23T03:20:14.633661Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.633708Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.633734Z 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-04-23T03:20:14.633834Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.633824Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.633866Z 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-04-23T03:20:14.628179Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=30 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 130, payload_length: 640, recv_window_size: 256, timestamp: 5, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d" } [INFO] [stdout] 2026-04-23T03:20:14.633884Z 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-04-23T03:20:14.627080Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=29 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 129, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c" } [INFO] [stdout] 2026-04-23T03:20:14.633911Z 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-04-23T03:20:14.633933Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=2 peer_cid=1 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.633949Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Received duplicate SYN, ignoring. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.633964Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.633979Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.634012Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.628175Z 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-04-23T03:20:14.634037Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2 remote_addr=127.0.0.1:1234 [INFO] [stdout] 2026-04-23T03:20:14.634048Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=5 srtt_ms=5 rttvar_ms=2 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.634071Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.634085Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.634091Z 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-04-23T03:20:14.634110Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.634122Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.634138Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.634148Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.634175Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.634181Z 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-04-23T03:20:14.634197Z 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-04-23T03:20:14.633939Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=29 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 129, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c" } [INFO] [stdout] 2026-04-23T03:20:14.634217Z 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-04-23T03:20:14.634240Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=2 seq=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.634257Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Handling FIN in Established state cid=2 seq=1 [INFO] [stdout] 2026-04-23T03:20:14.634288Z 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: 15, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.634312Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.634323Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.634336Z 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-04-23T03:20:14.634341Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=Established target_state=FinWait [INFO] [stdout] 2026-04-23T03:20:14.634361Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="Established" to="FinWait" [INFO] [stdout] 2026-04-23T03:20:14.634367Z 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-04-23T03:20:14.634380Z TRACE kestrel_protocol::core::endpoint::core::event_loop: All data drained after FIN, closing user stream (sending EOF). cid=2 [INFO] [stdout] 2026-04-23T03:20:14.634384Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=2 peer_cid=1 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.634399Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Received duplicate SYN, ignoring. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.634399Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=FinWait [INFO] [stdout] 2026-04-23T03:20:14.634412Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.634424Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.634444Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.634470Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.634489Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.634498Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=2 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.634237Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=29 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 129, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c" } [INFO] [stdout] 2026-04-23T03:20:14.634508Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=2 current_state=FinWait [INFO] [stdout] 2026-04-23T03:20:14.634722Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="FinWait" to="Closing" [INFO] [stdout] 2026-04-23T03:20:14.634752Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.634767Z 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-04-23T03:20:14.634529Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=29 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 129, payload_length: 1200, recv_window_size: 256, timestamp: 6, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c" } [INFO] [stdout] 2026-04-23T03:20:14.634788Z 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: 15, sequence_number: 1, recv_next_sequence: 2 } } [INFO] [stdout] 2026-04-23T03:20:14.634824Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.634845Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.634885Z 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: 15, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.634912Z 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: 15, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.634934Z 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-04-23T03:20:14.634816Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=29 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 129, payload_length: 640, recv_window_size: 256, timestamp: 6, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c\x1c" } [INFO] [stdout] 2026-04-23T03:20:14.634953Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Closing state cid=1 [INFO] [stdout] 2026-04-23T03:20:14.634971Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=29 state=Established [INFO] [stdout] 2026-04-23T03:20:14.634969Z 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-04-23T03:20:14.635010Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Packet acknowledged by SACK seq=1 [INFO] [stdout] 2026-04-23T03:20:14.635026Z 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-04-23T03:20:14.635037Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.635052Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.635068Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.635074Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.635081Z 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-04-23T03:20:14.635106Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=133 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.635109Z 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: 16, sequence_number: 2, recv_next_sequence: 1 } } [INFO] [stdout] 2026-04-23T03:20:14.635144Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.635304Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=5 [INFO] [stdout] 2026-04-23T03:20:14.635343Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=5 state=Established [INFO] [stdout] 2026-04-23T03:20:14.635505Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=12 slots_to_advance=1 max_advance=1 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.635594Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=13 slots_to_advance=1 max_advance=1 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.635745Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=12 slots_to_advance=1 max_advance=1 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.635939Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=101 [INFO] [stdout] 2026-04-23T03:20:14.635969Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=101 state=Established [INFO] [stdout] 2026-04-23T03:20:14.636004Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.636020Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.636049Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=102 [INFO] [stdout] 2026-04-23T03:20:14.636063Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=102 state=Established [INFO] [stdout] 2026-04-23T03:20:14.636092Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.636117Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.636149Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=103 [INFO] [stdout] 2026-04-23T03:20:14.636163Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=103 state=Established [INFO] [stdout] 2026-04-23T03:20:14.636191Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3 [INFO] [stdout] 2026-04-23T03:20:14.636208Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3 state=Established [INFO] [stdout] 2026-04-23T03:20:14.636239Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=104 [INFO] [stdout] 2026-04-23T03:20:14.636264Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=104 state=Established [INFO] [stdout] 2026-04-23T03:20:14.636295Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=4 [INFO] [stdout] 2026-04-23T03:20:14.636310Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.636338Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=105 [INFO] [stdout] 2026-04-23T03:20:14.636352Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=105 state=Established [INFO] [stdout] 2026-04-23T03:20:14.636351Z 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: 15, sequence_number: 1, recv_next_sequence: 2 } } [INFO] [stdout] 2026-04-23T03:20:14.636378Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=106 [INFO] [stdout] 2026-04-23T03:20:14.636380Z 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: 15, sequence_number: 1, recv_next_sequence: 2 } } [INFO] [stdout] 2026-04-23T03:20:14.636392Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=106 state=Established [INFO] [stdout] 2026-04-23T03:20:14.636400Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=1 seq=1 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.636422Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Handling FIN in Closing state cid=1 seq=1 [INFO] [stdout] 2026-04-23T03:20:14.628695Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.636445Z 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-04-23T03:20:14.636489Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=1 current_state=Closing target_state=ClosingWait [INFO] [stdout] 2026-04-23T03:20:14.636494Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=32 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-04-23T03:20:14.636510Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Closing" to="ClosingWait" [INFO] [stdout] 2026-04-23T03:20:14.636531Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.636546Z TRACE kestrel_protocol::core::endpoint::core::event_loop: All data drained after FIN, closing user stream (sending EOF). cid=1 [INFO] [stdout] 2026-04-23T03:20:14.636549Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.636587Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=ClosingWait [INFO] [stdout] 2026-04-23T03:20:14.636609Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.636627Z 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: 16, sequence_number: 2, recv_next_sequence: 1 } } [INFO] [stdout] 2026-04-23T03:20:14.636636Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=32 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.636648Z 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: 16, sequence_number: 2, recv_next_sequence: 1 } } [INFO] [stdout] 2026-04-23T03:20:14.636665Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=2 seq=2 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.636680Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Handling FIN in Closing state cid=2 seq=2 [INFO] [stdout] 2026-04-23T03:20:14.636696Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.636706Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.636713Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.636730Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=32 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-04-23T03:20:14.636952Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=132 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.636982Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=132 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.637021Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.637034Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.637051Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=132 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.637066Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=132 remote_addr=127.0.0.1:9031 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 32, source_cid: 132 } } [INFO] [stdout] 2026-04-23T03:20:14.637098Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=132 [INFO] [stdout] 2026-04-23T03:20:14.637116Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=132 state=Established [INFO] [stdout] 2026-04-23T03:20:14.637179Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=32 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: 32 } } [INFO] [stdout] 2026-04-23T03:20:14.637210Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=32 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.637230Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=32 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 32, source_cid: 132 } } [INFO] [stdout] 2026-04-23T03:20:14.637247Z 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: 32, source_cid: 132 } } [INFO] [stdout] 2026-04-23T03:20:14.637264Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=32 peer_cid=132 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.637312Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.637332Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.637368Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.637382Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=32 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.637399Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=32 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.637419Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=32 peer_cid=132 [INFO] [stdout] 2026-04-23T03:20:14.637438Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=32 frame=Push { header: ShortHeader { command: Push, connection_id: 32, payload_length: 4, recv_window_size: 256, timestamp: 14, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.637470Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 32, payload_length: 4, recv_window_size: 256, timestamp: 14, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.637504Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=32 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.637524Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=32 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.637551Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=32 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 132, 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-04-23T03:20:14.637607Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=32 [INFO] [stdout] 2026-04-23T03:20:14.637624Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=32 count=1 [INFO] [stdout] 2026-04-23T03:20:14.637649Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=32 state=Established [INFO] [stdout] 2026-04-23T03:20:14.637749Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=32 [INFO] [stdout] 2026-04-23T03:20:14.637784Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.637799Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.637813Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.637823Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-04-23T03:20:14.637834Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-04-23T03:20:14.637845Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-04-23T03:20:14.637856Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-04-23T03:20:14.637867Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-04-23T03:20:14.637889Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-04-23T03:20:14.637905Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=32 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 132, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f" } [INFO] [stdout] 2026-04-23T03:20:14.638433Z 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-04-23T03:20:14.638662Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.628201Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.638703Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=134 remote_addr=127.0.0.1:9033 [INFO] [stdout] 2026-04-23T03:20:14.638761Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.638768Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=30 state=Established [INFO] [stdout] 2026-04-23T03:20:14.638784Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.638851Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=12 slots_to_advance=1 max_advance=1 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.638918Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.638918Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=12 slots_to_advance=1 max_advance=1 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.638946Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=33 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-04-23T03:20:14.638982Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.638980Z 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-04-23T03:20:14.639004Z 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-04-23T03:20:14.639019Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.639023Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=1 peer_cid=2 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.639042Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=33 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.639070Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.639088Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.639097Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.639122Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.639121Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=33 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-04-23T03:20:14.639136Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=1 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.639158Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=133 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.639155Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.639182Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.639184Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.639198Z 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: 12, sequence_number: 0, recv_next_sequence: 0 }, payload: b"hello" } [INFO] [stdout] 2026-04-23T03:20:14.639213Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.639232Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=1 peer_cid=2 [INFO] [stdout] 2026-04-23T03:20:14.639235Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=134 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.639249Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.639265Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.639333Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=133 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.639357Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=133 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.639379Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.639389Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.639404Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=133 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.639417Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=133 remote_addr=127.0.0.1:9032 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 33, source_cid: 133 } } [INFO] [stdout] 2026-04-23T03:20:14.639453Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=133 [INFO] [stdout] 2026-04-23T03:20:14.639469Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=133 state=Established [INFO] [stdout] 2026-04-23T03:20:14.639525Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=33 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: 33 } } [INFO] [stdout] 2026-04-23T03:20:14.639552Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=33 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.625101Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=31 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 131, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e" } [INFO] [stdout] 2026-04-23T03:20:14.639591Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=33 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 33, source_cid: 133 } } [INFO] [stdout] 2026-04-23T03:20:14.639612Z 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: 33, source_cid: 133 } } [INFO] [stdout] 2026-04-23T03:20:14.639629Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=33 peer_cid=133 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.639662Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.639688Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.639691Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.639704Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.639725Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.639733Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.639740Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.639743Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=33 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.639759Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=33 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.639774Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=33 peer_cid=133 [INFO] [stdout] 2026-04-23T03:20:14.639759Z 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-04-23T03:20:14.639769Z 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: 51, sequence_number: 0, recv_next_sequence: 0 }, payload: b"hello server!" } [INFO] [stdout] 2026-04-23T03:20:14.639789Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=33 frame=Push { header: ShortHeader { command: Push, connection_id: 33, payload_length: 4, recv_window_size: 256, timestamp: 15, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.639792Z 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-04-23T03:20:14.639804Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.639813Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Closing state cid=2 [INFO] [stdout] 2026-04-23T03:20:14.639809Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 33, payload_length: 4, recv_window_size: 256, timestamp: 15, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.639827Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=33 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.639828Z 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-04-23T03:20:14.639843Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=33 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.639857Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Packet acknowledged by SACK seq=1 [INFO] [stdout] 2026-04-23T03:20:14.639615Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=31 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 131, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e" } [INFO] [stdout] 2026-04-23T03:20:14.639871Z 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-04-23T03:20:14.639874Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=33 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 133, 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-04-23T03:20:14.639897Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.639900Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=33 [INFO] [stdout] 2026-04-23T03:20:14.639914Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.639913Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=33 count=1 [INFO] [stdout] 2026-04-23T03:20:14.639927Z 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-04-23T03:20:14.639935Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=33 state=Established [INFO] [stdout] 2026-04-23T03:20:14.639945Z 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: 20, sequence_number: 2, recv_next_sequence: 2 } } [INFO] [stdout] 2026-04-23T03:20:14.639981Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.640008Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=33 [INFO] [stdout] 2026-04-23T03:20:14.640028Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.640047Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.640057Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.640067Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-04-23T03:20:14.640076Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-04-23T03:20:14.640086Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-04-23T03:20:14.640056Z 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: 20, sequence_number: 2, recv_next_sequence: 2 } } [INFO] [stdout] 2026-04-23T03:20:14.640095Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-04-23T03:20:14.640106Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-04-23T03:20:14.640106Z 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: 20, sequence_number: 2, recv_next_sequence: 2 } } [INFO] [stdout] 2026-04-23T03:20:14.640115Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-04-23T03:20:14.640126Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=1 seq=2 state=ClosingWait [INFO] [stdout] 2026-04-23T03:20:14.639894Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=31 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 131, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e" } [INFO] [stdout] 2026-04-23T03:20:14.640128Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=33 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 133, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 0, recv_next_sequence: 1 }, payload: b" " } [INFO] [stdout] 2026-04-23T03:20:14.640240Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=33 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 133, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 1, recv_next_sequence: 1 }, payload: b" " } [INFO] [stdout] test core::endpoint::timing::tests::test_time_until_next_timeout_after_delay ... ok [INFO] [stdout] 2026-04-23T03:20:14.640344Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=33 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 133, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 2, recv_next_sequence: 1 }, payload: b" " } [INFO] [stdout] 2026-04-23T03:20:14.640183Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=31 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 131, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e" } [INFO] [stdout] 2026-04-23T03:20:14.640150Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring FIN frame in unexpected state cid=1 state=ClosingWait [INFO] [stdout] 2026-04-23T03:20:14.640521Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.640544Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=ClosingWait [INFO] [stdout] 2026-04-23T03:20:14.640461Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=33 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 133, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 3, recv_next_sequence: 1 }, payload: b" " } [INFO] [stdout] 2026-04-23T03:20:14.640622Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.640586Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=33 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 133, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 4, recv_next_sequence: 1 }, payload: b" " } [INFO] [stdout] 2026-04-23T03:20:14.640747Z TRACE mio::poll: registering event source with poller: token=Token(128930690398208), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.640475Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=31 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 131, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e" } [INFO] [stdout] 2026-04-23T03:20:14.640772Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-04-23T03:20:14.640691Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=33 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 133, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 5, recv_next_sequence: 1 }, payload: b" " } [INFO] [stdout] 2026-04-23T03:20:14.640995Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.634512Z 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-04-23T03:20:14.638193Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=32 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 132, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f" } [INFO] [stdout] 2026-04-23T03:20:14.641469Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=135 remote_addr=127.0.0.1:9034 [INFO] [stdout] 2026-04-23T03:20:14.628685Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.641537Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=33 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 133, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 6, recv_next_sequence: 1 }, payload: b" " } [INFO] [stdout] 2026-04-23T03:20:14.641694Z 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: 12, sequence_number: 0, recv_next_sequence: 0 }, payload: b"hello" } [INFO] [stdout] 2026-04-23T03:20:14.641714Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.641727Z TRACE kestrel_protocol::core::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: 12, sequence_number: 0, recv_next_sequence: 0 }, payload: b"hello" } [INFO] [stdout] 2026-04-23T03:20:14.641737Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=1 remote_addr=127.0.0.1:5678 [INFO] [stdout] 2026-04-23T03:20:14.641668Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=33 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 133, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 7, recv_next_sequence: 1 }, payload: b" " } [INFO] [stdout] 2026-04-23T03:20:14.641752Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=0 payload_len=5 state=Established [INFO] [stdout] 2026-04-23T03:20:14.641767Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.641776Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=0 payload_len=5 [INFO] [stdout] 2026-04-23T03:20:14.641506Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=32 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 132, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f" } [INFO] [stdout] 2026-04-23T03:20:14.641807Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.641782Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=33 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 133, payload_length: 640, recv_window_size: 256, timestamp: 1, sequence_number: 8, recv_next_sequence: 1 }, payload: b" " } [INFO] [stdout] 2026-04-23T03:20:14.641830Z 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-04-23T03:20:14.641857Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=33 state=Established [INFO] [stdout] 2026-04-23T03:20:14.641899Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.641919Z 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-04-23T03:20:14.641918Z 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: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.641962Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.641977Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2 count=1 [INFO] [stdout] 2026-04-23T03:20:14.642003Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.642008Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.642012Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.642031Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2 remote_addr=127.0.0.1:1234 [INFO] [stdout] 2026-04-23T03:20:14.642035Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=34 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-04-23T03:20:14.641808Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=32 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 132, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f" } [INFO] [stdout] 2026-04-23T03:20:14.642077Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.642075Z 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-04-23T03:20:14.642081Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=1 current_state=Established [INFO] [stdout] 2026-04-23T03:20:14.642101Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.642104Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Established" to="Closing" [INFO] [stdout] 2026-04-23T03:20:14.642112Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.642126Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.642127Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.642136Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=34 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.642141Z 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-04-23T03:20:14.642152Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.642160Z 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: 15, sequence_number: 1, recv_next_sequence: 0 } } [INFO] [stdout] 2026-04-23T03:20:14.642171Z 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-04-23T03:20:14.642189Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.642198Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.642209Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.642221Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=34 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-04-23T03:20:14.642264Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=134 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.642282Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.642291Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.642304Z 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-04-23T03:20:14.642316Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.642321Z 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-04-23T03:20:14.642337Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=2 peer_cid=1 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.642336Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=135 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.642090Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=32 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 132, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f" } [INFO] [stdout] 2026-04-23T03:20:14.641063Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=103 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.642386Z TRACE kestrel_protocol::timer::wheel::core: Timer expired entry_id=2 expiry_time=Instant { tv_sec: 43816, tv_nsec: 118318031 } [INFO] [stdout] 2026-04-23T03:20:14.642403Z DEBUG kestrel_protocol::timer::wheel::core: Timing wheel advance completed expired_count=1 [INFO] [stdout] 2026-04-23T03:20:14.642440Z TRACE kestrel_protocol::timer::event: Timer event triggered successfully timer_id=2 connection_id=1 event_type=PathValidationTimeout [INFO] [stdout] 2026-04-23T03:20:14.642463Z TRACE kestrel_protocol::timer::task::global: Timer event processed entry_id=2 connection_id=1 event_type=PathValidationTimeout [INFO] [stdout] 2026-04-23T03:20:14.642350Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Received duplicate SYN, ignoring. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.642518Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.642531Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.642545Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.642547Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=136 remote_addr=127.0.0.1:9035 [INFO] [stdout] 2026-04-23T03:20:14.642582Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.642599Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.642614Z TRACE mio::poll: registering event source with poller: token=Token(128930690398592), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.642621Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.642630Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.642644Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=2 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.642380Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=32 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 132, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f" } [INFO] [stdout] 2026-04-23T03:20:14.642656Z 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-04-23T03:20:14.642683Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.642699Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.642730Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.642741Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.640768Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=31 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 131, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e" } [INFO] [stdout] 2026-04-23T03:20:14.642833Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.642854Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-04-23T03:20:14.642865Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.642888Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:60789) [INFO] [stdout] 2026-04-23T03:20:14.642950Z TRACE mio::poll: registering event source with poller: token=Token(128930690424192), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.641249Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=6 [INFO] [stdout] 2026-04-23T03:20:14.642989Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=6 state=Established [INFO] [stdout] 2026-04-23T03:20:14.642828Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=31 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 131, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e" } [INFO] [stdout] 2026-04-23T03:20:14.643148Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=135 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.643158Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.643187Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.643407Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.643466Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.643470Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.643483Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.643501Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=35 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-04-23T03:20:14.643546Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.643551Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=16 slots_to_advance=1 max_advance=1 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.643605Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.643632Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=35 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.643630Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=104 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.643667Z 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-04-23T03:20:14.643693Z 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-04-23T03:20:14.643699Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.643713Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=1 peer_cid=2 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.643722Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=35 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-04-23T03:20:14.643761Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.643773Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.643782Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.643804Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.643819Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.643829Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=136 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.643832Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=1 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.643851Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.643874Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.643890Z 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: 10, sequence_number: 0, recv_next_sequence: 0 }, payload: b"hello" } [INFO] [stdout] 2026-04-23T03:20:14.643921Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=1 peer_cid=2 [INFO] [stdout] 2026-04-23T03:20:14.643937Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.643953Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.643948Z 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-04-23T03:20:14.643975Z 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-04-23T03:20:14.643992Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=1 peer_cid=2 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.644012Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-04-23T03:20:14.644023Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.644021Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.644033Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.644037Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:59245) [INFO] [stdout] 2026-04-23T03:20:14.644049Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.644050Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=137 remote_addr=127.0.0.1:9036 [INFO] [stdout] 2026-04-23T03:20:14.644076Z  INFO kestrel_protocol::core::tests::state: [Client] Connecting A... [INFO] [stdout] 2026-04-23T03:20:14.644086Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.642683Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=32 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 132, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f" } [INFO] [stdout] 2026-04-23T03:20:14.644104Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-04-23T03:20:14.644100Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=1 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.644120Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.644126Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-04-23T03:20:14.644142Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.644170Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.644162Z 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: 2, sequence_number: 0, recv_next_sequence: 0 }, payload: b"ping" } [INFO] [stdout] 2026-04-23T03:20:14.644189Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=1 peer_cid=2 [INFO] [stdout] 2026-04-23T03:20:14.644216Z 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-04-23T03:20:14.644234Z TRACE kestrel_protocol::core::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-04-23T03:20:14.644250Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=1 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.644266Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=1 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.644274Z  INFO kestrel_protocol::core::tests::state: [Server] Waiting for conn A [INFO] [stdout] 2026-04-23T03:20:14.644294Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-04-23T03:20:14.644288Z 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: 2, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.644307Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-04-23T03:20:14.644312Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.644326Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=1 count=1 [INFO] [stdout] 2026-04-23T03:20:14.644344Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.644348Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.644124Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=32 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 132, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f" } [INFO] [stdout] 2026-04-23T03:20:14.644393Z 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: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.644421Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=91 slots_to_advance=9 max_advance=9 current_slot=1 [INFO] [stdout] 2026-04-23T03:20:14.644428Z 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: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.644490Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=3299763639 [INFO] [stdout] 2026-04-23T03:20:14.644499Z 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-04-23T03:20:14.644523Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Closing state cid=1 [INFO] [stdout] 2026-04-23T03:20:14.644527Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=3299763639 remote_addr=127.0.0.1:60789 [INFO] [stdout] 2026-04-23T03:20:14.644537Z 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-04-23T03:20:14.644583Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.644405Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=32 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 132, payload_length: 640, recv_window_size: 256, timestamp: 1, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f\x1f" } [INFO] [stdout] 2026-04-23T03:20:14.644602Z 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-04-23T03:20:14.644618Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.644621Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=5 srtt_ms=5 rttvar_ms=2 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.644641Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.644636Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=32 state=Established [INFO] [stdout] 2026-04-23T03:20:14.644644Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=3299763639 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.644652Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.644671Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.644693Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.644711Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.644734Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=3299763639 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-04-23T03:20:14.644733Z 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: 15, sequence_number: 1, recv_next_sequence: 0 } } [INFO] [stdout] 2026-04-23T03:20:14.644758Z 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: 15, sequence_number: 1, recv_next_sequence: 0 } } [INFO] [stdout] 2026-04-23T03:20:14.644777Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=2 seq=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.644793Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Handling FIN in Established state cid=2 seq=1 [INFO] [stdout] 2026-04-23T03:20:14.644796Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.644801Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=3299763639 addr=127.0.0.1:60789 [INFO] [stdout] 2026-04-23T03:20:14.644817Z 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: 17, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.644827Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=36 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-04-23T03:20:14.644834Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=3299763639 addr=127.0.0.1:60789 [INFO] [stdout] 2026-04-23T03:20:14.644853Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.644866Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.644869Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=Established target_state=FinWait [INFO] [stdout] 2026-04-23T03:20:14.644878Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for outbound connection addr=127.0.0.1:60789 cid=3299763639 [INFO] [stdout] 2026-04-23T03:20:14.644886Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="Established" to="FinWait" [INFO] [stdout] 2026-04-23T03:20:14.644901Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.644909Z TRACE kestrel_protocol::core::endpoint::core::event_loop: All data drained after FIN, closing user stream (sending EOF). cid=2 [INFO] [stdout] 2026-04-23T03:20:14.644904Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=3299763639 remote_addr=127.0.0.1:60789 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 3299763639 } } [INFO] [stdout] 2026-04-23T03:20:14.644923Z 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-04-23T03:20:14.644928Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=FinWait [INFO] [stdout] 2026-04-23T03:20:14.644935Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3299763639 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.644976Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:60789 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.644981Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.645022Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:60789 frame_count=1 bytes=10 [INFO] [stdout] 2026-04-23T03:20:14.645064Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=1 [INFO] [stdout] 2026-04-23T03:20:14.645118Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2 [INFO] [stdout] 2026-04-23T03:20:14.645132Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.645167Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.645178Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:59245 frame_count=1 bytes=10 [INFO] [stdout] 2026-04-23T03:20:14.645196Z 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-04-23T03:20:14.645248Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3299763639 [INFO] [stdout] 2026-04-23T03:20:14.645268Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3299763639 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.645307Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:59245 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.645340Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:59245 [INFO] [stdout] 2026-04-23T03:20:14.645354Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=3858975973 [INFO] [stdout] 2026-04-23T03:20:14.645388Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=3858975973 remote_addr=127.0.0.1:59245 [INFO] [stdout] 2026-04-23T03:20:14.645398Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=137 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.645445Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.645480Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=3858975973 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.645484Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.645513Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=138 remote_addr=127.0.0.1:9037 [INFO] [stdout] 2026-04-23T03:20:14.645537Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=3858975973 addr=127.0.0.1:59245 [INFO] [stdout] 2026-04-23T03:20:14.645552Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.645588Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=3858975973 addr=127.0.0.1:59245 [INFO] [stdout] test core::tests::shutdown::test_shutdown_when_established ... ok [INFO] [stdout] 2026-04-23T03:20:14.645608Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=37 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-04-23T03:20:14.645613Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:59245 cid=3858975973 [INFO] [stdout] 2026-04-23T03:20:14.645648Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.645652Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:59245 cid=3858975973 [INFO] [stdout] 2026-04-23T03:20:14.645647Z 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: 51, sequence_number: 0, recv_next_sequence: 0 }, payload: b"hello server!" } [INFO] [stdout] 2026-04-23T03:20:14.645673Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3858975973 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.645678Z TRACE kestrel_protocol::core::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: 51, sequence_number: 0, recv_next_sequence: 0 }, payload: b"hello server!" } [INFO] [stdout] 2026-04-23T03:20:14.645683Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.645699Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=0 payload_len=13 state=Established [INFO] [stdout] 2026-04-23T03:20:14.645706Z 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-04-23T03:20:14.645717Z  INFO kestrel_protocol::core::tests::state: [Server] Conn A accepted and dropped. [INFO] [stdout] 2026-04-23T03:20:14.645717Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=0 payload_len=13 [INFO] [stdout] 2026-04-23T03:20:14.645730Z  INFO kestrel_protocol::core::tests::state: [Server] Waiting for conn B [INFO] [stdout] 2026-04-23T03:20:14.645740Z 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: 56, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.645751Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=3858975973 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.645770Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.645769Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=3858975973 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.645783Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2 count=1 [INFO] [stdout] 2026-04-23T03:20:14.645777Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.645803Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.645807Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.645802Z 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-04-23T03:20:14.645815Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.645828Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=3858975973 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.645842Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=3858975973 remote_addr=127.0.0.1:59245 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 3299763639, source_cid: 3858975973 } } [INFO] [stdout] 2026-04-23T03:20:14.645858Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.645871Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3858975973 [INFO] [stdout] 2026-04-23T03:20:14.645874Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.645882Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.645888Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3858975973 state=Established [INFO] [stdout] 2026-04-23T03:20:14.645895Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.645905Z 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-04-23T03:20:14.645921Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:59245 frame_count=2 [INFO] [stdout] 2026-04-23T03:20:14.645924Z 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: 57, sequence_number: 0, recv_next_sequence: 1 }, payload: b"hello client!" } [INFO] [stdout] 2026-04-23T03:20:14.645967Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.645967Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:59245 frame_count=2 bytes=36 [INFO] [stdout] 2026-04-23T03:20:14.646009Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=17 slots_to_advance=1 max_advance=1 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.646072Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=107 [INFO] [stdout] 2026-04-23T03:20:14.646093Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=107 state=Established [INFO] [stdout] 2026-04-23T03:20:14.646121Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=138 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.646123Z 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: 10, sequence_number: 0, recv_next_sequence: 0 }, payload: b"hello" } [INFO] [stdout] 2026-04-23T03:20:14.646154Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=7 [INFO] [stdout] 2026-04-23T03:20:14.646152Z TRACE kestrel_protocol::core::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: 10, sequence_number: 0, recv_next_sequence: 0 }, payload: b"hello" } [INFO] [stdout] 2026-04-23T03:20:14.646174Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=7 state=Established [INFO] [stdout] 2026-04-23T03:20:14.646175Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=0 payload_len=5 state=Established [INFO] [stdout] 2026-04-23T03:20:14.646192Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=0 payload_len=5 [INFO] [stdout] 2026-04-23T03:20:14.646220Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.646216Z 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: 12, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.646250Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.646256Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=139 remote_addr=127.0.0.1:9038 [INFO] [stdout] 2026-04-23T03:20:14.646727Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2 count=1 [INFO] [stdout] 2026-04-23T03:20:14.646761Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.646271Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:60789 frame_count=2 bytes=36 [INFO] [stdout] 2026-04-23T03:20:14.646864Z  INFO kestrel_protocol::core::endpoint::core::handlers: Actively migrating to new address. cid=1 new_addr=127.0.0.1:9999 [INFO] [stdout] 2026-04-23T03:20:14.646874Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:60789 frame_count=2 [INFO] [stdout] 2026-04-23T03:20:14.646926Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Starting path validation cid=1 new_addr=127.0.0.1:9999 challenge_data=11643173311145864778 [INFO] [stdout] 2026-04-23T03:20:14.646942Z 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: 11643173311145864778, 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-04-23T03:20:14.646944Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=3299763639 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 3299763639, source_cid: 3858975973 } } [INFO] [stdout] 2026-04-23T03:20:14.646964Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Established" to="ValidatingPath" [INFO] [stdout] 2026-04-23T03:20:14.646975Z 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: 3299763639, source_cid: 3858975973 } } [INFO] [stdout] 2026-04-23T03:20:14.646999Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.646997Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=3299763639 peer_cid=3858975973 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.647015Z 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: 11643173311145864778, 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-04-23T03:20:14.647054Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.646292Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.643263Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=134 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.647097Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.647114Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=134 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.647141Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.647156Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=3299763639 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.647174Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.647175Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=3299763639 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.647186Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.647196Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=3299763639 peer_cid=3858975973 [INFO] [stdout] 2026-04-23T03:20:14.647202Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=134 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.647216Z 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-04-23T03:20:14.647216Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=3299763639 frame=Push { header: ShortHeader { command: Push, connection_id: 3299763639, payload_length: 5, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"ack_a" } [INFO] [stdout] 2026-04-23T03:20:14.647247Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=134 [INFO] [stdout] 2026-04-23T03:20:14.647242Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 3299763639, payload_length: 5, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"ack_a" } [INFO] [stdout] 2026-04-23T03:20:14.647265Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=134 state=Established [INFO] [stdout] 2026-04-23T03:20:14.647264Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=3299763639 seq=0 payload_len=5 state=Established [INFO] [stdout] 2026-04-23T03:20:14.647284Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=3299763639 seq=0 payload_len=5 [INFO] [stdout] 2026-04-23T03:20:14.647308Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.647310Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=3299763639 remote_addr=127.0.0.1:60789 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 3858975973, 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-04-23T03:20:14.647340Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.647348Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3299763639 [INFO] [stdout] 2026-04-23T03:20:14.647363Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=3299763639 count=1 [INFO] [stdout] 2026-04-23T03:20:14.647364Z 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-04-23T03:20:14.647452Z 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-04-23T03:20:14.647487Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=34 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.647507Z 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-04-23T03:20:14.647524Z 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-04-23T03:20:14.647541Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=34 peer_cid=134 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.647585Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.647609Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.647627Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.647661Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.647677Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=34 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.647676Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.647694Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=34 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.647714Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=34 peer_cid=134 [INFO] [stdout] 2026-04-23T03:20:14.647732Z 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: 8, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.647755Z TRACE kestrel_protocol::core::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: 8, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.647774Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=34 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.647791Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=34 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.647806Z TRACE mio::poll: registering event source with poller: token=Token(128930958860160), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.647813Z 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: 5, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.647836Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-04-23T03:20:14.647844Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=34 [INFO] [stdout] 2026-04-23T03:20:14.647841Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=140 remote_addr=127.0.0.1:9039 [INFO] [stdout] 2026-04-23T03:20:14.647858Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=34 count=1 [INFO] [stdout] 2026-04-23T03:20:14.647882Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=34 state=Established [INFO] [stdout] 2026-04-23T03:20:14.647884Z TRACE mio::poll: registering event source with poller: token=Token(128930958860672), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.647391Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3299763639 state=Established [INFO] [stdout] 2026-04-23T03:20:14.647942Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:60789 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.647992Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:60789 frame_count=1 bytes=29 [INFO] [stdout] 2026-04-23T03:20:14.648000Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=34 [INFO] [stdout] 2026-04-23T03:20:14.648027Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.648039Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.648053Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.648062Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-04-23T03:20:14.648072Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-04-23T03:20:14.648082Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-04-23T03:20:14.648093Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-04-23T03:20:14.648093Z  INFO kestrel_protocol::core::tests::state: [Client] Received server ack for conn A [INFO] [stdout] 2026-04-23T03:20:14.648093Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.648111Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-04-23T03:20:14.648121Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.648122Z  INFO kestrel_protocol::core::tests::state: [Client] Conn A shut down. [INFO] [stdout] 2026-04-23T03:20:14.648104Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-04-23T03:20:14.648131Z  INFO kestrel_protocol::core::tests::state: [Client] Waiting for CID to be drained on server... [INFO] [stdout] 2026-04-23T03:20:14.648134Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-04-23T03:20:14.648140Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:55636) [INFO] [stdout] 2026-04-23T03:20:14.648190Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:59245 frame_count=1 bytes=29 [INFO] [stdout] 2026-04-23T03:20:14.648195Z TRACE mio::poll: registering event source with poller: token=Token(128930958829568), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.648150Z 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: 5, sequence_number: 0, recv_next_sequence: 1 }, payload: b"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" } [INFO] [stdout] 2026-04-23T03:20:14.648252Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=3299763639 current_state=Established [INFO] [stdout] 2026-04-23T03:20:14.648271Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=3299763639 from="Established" to="Closing" [INFO] [stdout] 2026-04-23T03:20:14.648293Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.648306Z 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-04-23T03:20:14.648324Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=3299763639 remote_addr=127.0.0.1:60789 frame_count=1 first_frame=Fin { header: ShortHeader { command: Fin, connection_id: 3858975973, payload_length: 0, recv_window_size: 256, timestamp: 4064, sequence_number: 0, recv_next_sequence: 1 } } [INFO] [stdout] 2026-04-23T03:20:14.648353Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3299763639 [INFO] [stdout] 2026-04-23T03:20:14.648273Z 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: 5, sequence_number: 1, recv_next_sequence: 1 }, payload: b"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" } [INFO] [stdout] 2026-04-23T03:20:14.648372Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3299763639 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.648404Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.648417Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-04-23T03:20:14.648427Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.648432Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:59245 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.648438Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:53259) [INFO] [stdout] 2026-04-23T03:20:14.648465Z  INFO kestrel_protocol::core::tests::state: Connecting for the first time... [INFO] [stdout] 2026-04-23T03:20:14.648489Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-04-23T03:20:14.648488Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:60789 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.648394Z 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: 5, sequence_number: 2, recv_next_sequence: 1 }, payload: b"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" } [INFO] [stdout] 2026-04-23T03:20:14.648504Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-04-23T03:20:14.648525Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=3858975973 frame=Ack { header: ShortHeader { command: Ack, connection_id: 3858975973, 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-04-23T03:20:14.648544Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.648550Z 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: 3858975973, 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-04-23T03:20:14.648592Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=3858975973 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.648613Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=3858975973 [INFO] [stdout] 2026-04-23T03:20:14.648627Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=3858975973 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-04-23T03:20:14.648517Z 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: 5, sequence_number: 3, recv_next_sequence: 1 }, payload: b"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" } [INFO] [stdout] 2026-04-23T03:20:14.648660Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.648678Z 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-04-23T03:20:14.648686Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.648697Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=4014 srtt_ms=4014 rttvar_ms=2007 rto_ms=12042 [INFO] [stdout] 2026-04-23T03:20:14.648709Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.648715Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.648726Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.648743Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3858975973 [INFO] [stdout] 2026-04-23T03:20:14.648744Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.648759Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3858975973 state=Established [INFO] [stdout] 2026-04-23T03:20:14.648760Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.648666Z 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: 5, sequence_number: 4, recv_next_sequence: 1 }, payload: b"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" } [INFO] [stdout] 2026-04-23T03:20:14.648774Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.648788Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.648791Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:60789 frame_count=1 bytes=21 [INFO] [stdout] 2026-04-23T03:20:14.648799Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-04-23T03:20:14.648809Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-04-23T03:20:14.648825Z 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: 55, sequence_number: 0, recv_next_sequence: 0 }, payload: b"packet-0" } [INFO] [stdout] 2026-04-23T03:20:14.648786Z 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: 5, sequence_number: 5, recv_next_sequence: 1 }, payload: b"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" } [INFO] [stdout] 2026-04-23T03:20:14.648864Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.648878Z  INFO kestrel_protocol::core::tests::state: [Client] Connecting B... [INFO] [stdout] 2026-04-23T03:20:14.648914Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:59245 frame_count=1 bytes=21 [INFO] [stdout] 2026-04-23T03:20:14.648873Z 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: 5, sequence_number: 6, recv_next_sequence: 1 }, payload: b"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" } [INFO] [stdout] 2026-04-23T03:20:14.648971Z 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-04-23T03:20:14.648955Z 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: 5, sequence_number: 7, recv_next_sequence: 1 }, payload: b"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" } [INFO] [stdout] 2026-04-23T03:20:14.649087Z 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-04-23T03:20:14.649049Z 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: 5, sequence_number: 8, recv_next_sequence: 1 }, payload: b"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" } [INFO] [stdout] 2026-04-23T03:20:14.649122Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=34 state=Established [INFO] [stdout] 2026-04-23T03:20:14.649180Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=139 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.649194Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:59245 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.649271Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=436526837 [INFO] [stdout] 2026-04-23T03:20:14.649298Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.649316Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=436526837 remote_addr=127.0.0.1:60789 [INFO] [stdout] 2026-04-23T03:20:14.649333Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=39 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-04-23T03:20:14.649374Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.649375Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=3 slot_index=394 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.649402Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=3 entry_id=3 connection_id=436526837 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.649407Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.649431Z 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-04-23T03:20:14.649450Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=3858975973 frame=Fin { header: ShortHeader { command: Fin, connection_id: 3858975973, payload_length: 0, recv_window_size: 256, timestamp: 4064, sequence_number: 0, recv_next_sequence: 1 } } [INFO] [stdout] 2026-04-23T03:20:14.649484Z 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: 3858975973, payload_length: 0, recv_window_size: 256, timestamp: 4064, sequence_number: 0, recv_next_sequence: 1 } } [INFO] [stdout] 2026-04-23T03:20:14.649499Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.649503Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=3858975973 seq=0 state=Established [INFO] [stdout] 2026-04-23T03:20:14.649520Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Handling FIN in Established state cid=3858975973 seq=0 [INFO] [stdout] 2026-04-23T03:20:14.649520Z 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-04-23T03:20:14.649543Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=3858975973 remote_addr=127.0.0.1:59245 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 3299763639, 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-04-23T03:20:14.649617Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3858975973 [INFO] [stdout] 2026-04-23T03:20:14.646329Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=31 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 131, payload_length: 1200, recv_window_size: 256, timestamp: 2, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e" } [INFO] [stdout] 2026-04-23T03:20:14.649646Z 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: 56, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.649678Z 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: 56, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.649700Z 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-04-23T03:20:14.649720Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=1 [INFO] [stdout] 2026-04-23T03:20:14.649637Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=3858975973 current_state=Established target_state=FinWait [INFO] [stdout] 2026-04-23T03:20:14.649770Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=3858975973 from="Established" to="FinWait" [INFO] [stdout] 2026-04-23T03:20:14.649795Z TRACE kestrel_protocol::core::endpoint::core::event_loop: All data drained after FIN, closing user stream (sending EOF). cid=3858975973 [INFO] [stdout] 2026-04-23T03:20:14.649812Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3858975973 state=FinWait [INFO] [stdout] 2026-04-23T03:20:14.649674Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=31 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 131, payload_length: 640, recv_window_size: 256, timestamp: 2, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e" } [INFO] [stdout] 2026-04-23T03:20:14.645004Z 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-04-23T03:20:14.650241Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=136 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.650348Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=136 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.650372Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=136 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.650397Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.650408Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.650421Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=136 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.650435Z 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-04-23T03:20:14.650474Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=136 [INFO] [stdout] 2026-04-23T03:20:14.650492Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=136 state=Established [INFO] [stdout] 2026-04-23T03:20:14.650546Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=12 [INFO] [stdout] 2026-04-23T03:20:14.648981Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-04-23T03:20:14.650590Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=12 state=Established [INFO] [stdout] 2026-04-23T03:20:14.649902Z 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: 12, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.649959Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=38 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-04-23T03:20:14.650664Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=113 [INFO] [stdout] 2026-04-23T03:20:14.650676Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.650686Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=113 state=Established [INFO] [stdout] 2026-04-23T03:20:14.650724Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.650753Z 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-04-23T03:20:14.650818Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.650839Z 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] 2026-04-23T03:20:14.650894Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=13 [INFO] [stdout] 2026-04-23T03:20:14.650929Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=13 state=Established [INFO] [stdout] 2026-04-23T03:20:14.649558Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.651026Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=114 [INFO] [stdout] 2026-04-23T03:20:14.651047Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=114 state=Established [INFO] [stdout] 2026-04-23T03:20:14.651040Z 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: 55, sequence_number: 0, recv_next_sequence: 0 }, payload: b"packet-0" } [INFO] [stdout] 2026-04-23T03:20:14.651068Z TRACE kestrel_protocol::core::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: 55, sequence_number: 0, recv_next_sequence: 0 }, payload: b"packet-0" } [INFO] [stdout] 2026-04-23T03:20:14.651083Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=14 [INFO] [stdout] 2026-04-23T03:20:14.651088Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=0 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.651101Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=14 state=Established [INFO] [stdout] 2026-04-23T03:20:14.651106Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=0 payload_len=8 [INFO] [stdout] 2026-04-23T03:20:14.651136Z 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: 57, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.651170Z 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: 55, sequence_number: 1, recv_next_sequence: 0 }, payload: b"packet-1" } [INFO] [stdout] 2026-04-23T03:20:14.651186Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=115 [INFO] [stdout] 2026-04-23T03:20:14.651190Z TRACE kestrel_protocol::core::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: 55, sequence_number: 1, recv_next_sequence: 0 }, payload: b"packet-1" } [INFO] [stdout] 2026-04-23T03:20:14.651209Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=115 state=Established [INFO] [stdout] 2026-04-23T03:20:14.651220Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=1 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.651238Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=1 payload_len=8 [INFO] [stdout] 2026-04-23T03:20:14.651247Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=15 [INFO] [stdout] 2026-04-23T03:20:14.651268Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=15 state=Established [INFO] [stdout] 2026-04-23T03:20:14.651263Z 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: 57, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.651296Z 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: 55, sequence_number: 2, recv_next_sequence: 0 }, payload: b"packet-2" } [INFO] [stdout] 2026-04-23T03:20:14.651312Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=116 [INFO] [stdout] 2026-04-23T03:20:14.651318Z TRACE kestrel_protocol::core::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: 55, sequence_number: 2, recv_next_sequence: 0 }, payload: b"packet-2" } [INFO] [stdout] 2026-04-23T03:20:14.651331Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=116 state=Established [INFO] [stdout] 2026-04-23T03:20:14.651337Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=2 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.651354Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=2 payload_len=8 [INFO] [stdout] 2026-04-23T03:20:14.651377Z 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: 57, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.651386Z 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-04-23T03:20:14.651412Z 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: 55, sequence_number: 3, recv_next_sequence: 0 }, payload: b"packet-3" } [INFO] [stdout] 2026-04-23T03:20:14.651422Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=36 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.651435Z TRACE kestrel_protocol::core::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: 55, sequence_number: 3, recv_next_sequence: 0 }, payload: b"packet-3" } [INFO] [stdout] 2026-04-23T03:20:14.651443Z 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-04-23T03:20:14.651453Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=3 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.651472Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=3 payload_len=8 [INFO] [stdout] 2026-04-23T03:20:14.651472Z 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-04-23T03:20:14.651491Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=36 peer_cid=136 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.651495Z 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: 57, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.651526Z 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: 55, sequence_number: 4, recv_next_sequence: 0 }, payload: b"packet-4" } [INFO] [stdout] 2026-04-23T03:20:14.651541Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.651549Z TRACE kestrel_protocol::core::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: 55, sequence_number: 4, recv_next_sequence: 0 }, payload: b"packet-4" } [INFO] [stdout] 2026-04-23T03:20:14.651559Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.651585Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=4 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.651603Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=4 payload_len=8 [INFO] [stdout] 2026-04-23T03:20:14.651619Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.651631Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=36 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.651626Z 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: 57, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.651647Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=36 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.651657Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.651664Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=36 peer_cid=136 [INFO] [stdout] 2026-04-23T03:20:14.651674Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2 count=5 [INFO] [stdout] 2026-04-23T03:20:14.651703Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.651786Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.651815Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.651868Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.651886Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=1 [INFO] [stdout] 2026-04-23T03:20:14.651893Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.651908Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.651919Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.651929Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-04-23T03:20:14.651939Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-04-23T03:20:14.651953Z 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-04-23T03:20:14.651974Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2 [INFO] [stdout] 2026-04-23T03:20:14.651988Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.651681Z 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-04-23T03:20:14.652067Z TRACE kestrel_protocol::core::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-04-23T03:20:14.652088Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=36 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.646546Z 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: 2, sequence_number: 0, recv_next_sequence: 0 }, payload: b"ping" } [INFO] [stdout] 2026-04-23T03:20:14.652105Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=36 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.652117Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.652128Z TRACE kestrel_protocol::core::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: 2, sequence_number: 0, recv_next_sequence: 0 }, payload: b"ping" } [INFO] [stdout] 2026-04-23T03:20:14.652149Z 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-04-23T03:20:14.652159Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.652170Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=31 state=Established [INFO] [stdout] 2026-04-23T03:20:14.652178Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.652215Z 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: 10, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.652218Z 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: 12, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.652250Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=1 recv_next_seq=0 recv_window=255 payload_len=8 state=ValidatingPath { new_addr: 127.0.0.1:9999, challenge_data: 11643173311145864778, notifier: None } [INFO] [stdout] 2026-04-23T03:20:14.652257Z 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: 2, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.652279Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK during path validation cid=1 [INFO] [stdout] 2026-04-23T03:20:14.652281Z 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: 2, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.652295Z 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-04-23T03:20:14.652303Z 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-04-23T03:20:14.652325Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2 [INFO] [stdout] 2026-04-23T03:20:14.652325Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.652339Z 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-04-23T03:20:14.652343Z 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-04-23T03:20:14.652363Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=8 srtt_ms=8 rttvar_ms=4 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.652381Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.652380Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.652392Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.652397Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=117 [INFO] [stdout] 2026-04-23T03:20:14.652401Z 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-04-23T03:20:14.652412Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.652416Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=117 state=Established [INFO] [stdout] 2026-04-23T03:20:14.652421Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=9 srtt_ms=9 rttvar_ms=4 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.652438Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.652431Z 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: 11643173311145864778, 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-04-23T03:20:14.652450Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.652460Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=16 [INFO] [stdout] 2026-04-23T03:20:14.652473Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.652476Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=16 state=Established [INFO] [stdout] 2026-04-23T03:20:14.652488Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2 count=1 [INFO] [stdout] 2026-04-23T03:20:14.652482Z 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: 13, sequence_number: 1, recv_next_sequence: 0 }, challenge_data: 11643173311145864778 } [INFO] [stdout] 2026-04-23T03:20:14.652509Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=17 [INFO] [stdout] 2026-04-23T03:20:14.652509Z 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: 13, sequence_number: 1, recv_next_sequence: 0 }, challenge_data: 11643173311145864778 } [INFO] [stdout] 2026-04-23T03:20:14.652514Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.652526Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=17 state=Established [INFO] [stdout] 2026-04-23T03:20:14.652535Z DEBUG kestrel_protocol::core::endpoint::processing::processors::path: Processing PathChallenge frame cid=2 seq=1 challenge_data=11643173311145864778 src_addr=127.0.0.1:1234 state=Established [INFO] [stdout] 2026-04-23T03:20:14.652559Z TRACE kestrel_protocol::core::endpoint::processing::processors::path: Sending PathResponse cid=2 challenge_data=11643173311145864778 response_to=127.0.0.1:1234 [INFO] [stdout] 2026-04-23T03:20:14.652559Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=118 [INFO] [stdout] 2026-04-23T03:20:14.652603Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=118 state=Established [INFO] [stdout] 2026-04-23T03:20:14.652604Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.652643Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=18 [INFO] [stdout] 2026-04-23T03:20:14.652129Z 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-04-23T03:20:14.652712Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.652647Z 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: 10, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.652741Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=36 [INFO] [stdout] 2026-04-23T03:20:14.652746Z 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: 10, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.652758Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=36 count=1 [INFO] [stdout] 2026-04-23T03:20:14.652766Z 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-04-23T03:20:14.652785Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=1 [INFO] [stdout] 2026-04-23T03:20:14.652783Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=36 state=Established [INFO] [stdout] 2026-04-23T03:20:14.652798Z 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-04-23T03:20:14.652826Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.652823Z 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: 18, sequence_number: 1, recv_next_sequence: 0 }, challenge_data: 11643173311145864778 } [INFO] [stdout] 2026-04-23T03:20:14.652843Z 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-04-23T03:20:14.652851Z 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: 18, sequence_number: 1, recv_next_sequence: 0 }, challenge_data: 11643173311145864778 } [INFO] [stdout] 2026-04-23T03:20:14.652864Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=8 srtt_ms=8 rttvar_ms=4 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.652985Z DEBUG kestrel_protocol::core::endpoint::processing::processors::path: Processing PathResponse frame cid=1 seq=1 challenge_data=11643173311145864778 src_addr=127.0.0.1:5678 state=ValidatingPath { new_addr: 127.0.0.1:9999, challenge_data: 11643173311145864778, notifier: None } [INFO] [stdout] 2026-04-23T03:20:14.652878Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=36 [INFO] [stdout] 2026-04-23T03:20:14.653014Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.653031Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.653039Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.653050Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.653053Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.653065Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.653066Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.653076Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-04-23T03:20:14.653087Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-04-23T03:20:14.653088Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=1 current_state=Established [INFO] [stdout] 2026-04-23T03:20:14.653097Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-04-23T03:20:14.653103Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Established" to="Closing" [INFO] [stdout] 2026-04-23T03:20:14.653107Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-04-23T03:20:14.653118Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-04-23T03:20:14.653121Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.653129Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-04-23T03:20:14.653138Z  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=11643173311145864778 received_challenge=11643173311145864778 [INFO] [stdout] 2026-04-23T03:20:14.653147Z 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-04-23T03:20:14.653211Z 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: 11, sequence_number: 1, recv_next_sequence: 1 } } [INFO] [stdout] 2026-04-23T03:20:14.653143Z 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: 8, sequence_number: 0, recv_next_sequence: 1 }, payload: b"################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################" } [INFO] [stdout] 2026-04-23T03:20:14.653242Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.653261Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.653295Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=2 current_state=Established [INFO] [stdout] 2026-04-23T03:20:14.653309Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="Established" to="Closing" [INFO] [stdout] 2026-04-23T03:20:14.653326Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.653337Z 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-04-23T03:20:14.653354Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.653353Z 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: 11, sequence_number: 1, recv_next_sequence: 1 } } [INFO] [stdout] 2026-04-23T03:20:14.652904Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=18 state=Established [INFO] [stdout] 2026-04-23T03:20:14.653379Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.653387Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=141 remote_addr=127.0.0.1:9040 [INFO] [stdout] 2026-04-23T03:20:14.653396Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.653470Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.653508Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.653532Z 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-04-23T03:20:14.649735Z 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-04-23T03:20:14.653559Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.653610Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.653619Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=40 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-04-23T03:20:14.653631Z 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-04-23T03:20:14.653650Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=9 srtt_ms=9 rttvar_ms=4 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.653668Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.653676Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.653678Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.653699Z 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: 57, sequence_number: 0, recv_next_sequence: 1 }, payload: b"hello client!" } [INFO] [stdout] 2026-04-23T03:20:14.653716Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.653725Z TRACE kestrel_protocol::core::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: 57, sequence_number: 0, recv_next_sequence: 1 }, payload: b"hello client!" } [INFO] [stdout] 2026-04-23T03:20:14.653742Z 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-04-23T03:20:14.653744Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=1 seq=0 payload_len=13 state=Established [INFO] [stdout] 2026-04-23T03:20:14.653747Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.653762Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=1 seq=0 payload_len=13 [INFO] [stdout] 2026-04-23T03:20:14.653787Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=142 remote_addr=127.0.0.1:9041 [INFO] [stdout] 2026-04-23T03:20:14.653785Z 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: 65, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.653818Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.653812Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.653831Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=1 count=1 [INFO] [stdout] 2026-04-23T03:20:14.653836Z 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-04-23T03:20:14.653855Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.653880Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=140 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.653959Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=1 [INFO] [stdout] 2026-04-23T03:20:14.653982Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=140 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.654008Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=140 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.654052Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.654064Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.654108Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2 [INFO] [stdout] 2026-04-23T03:20:14.654151Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.654178Z 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-04-23T03:20:14.654190Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.654209Z TRACE kestrel_protocol::core::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-04-23T03:20:14.654231Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.654230Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=0 payload_len=10 state=Established [INFO] [stdout] 2026-04-23T03:20:14.654249Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.654248Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=0 payload_len=10 [INFO] [stdout] 2026-04-23T03:20:14.654268Z 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"rto test data" } [INFO] [stdout] 2026-04-23T03:20:14.654275Z 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: 53, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.654289Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=141 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.654303Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.654313Z 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-04-23T03:20:14.654330Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=108 [INFO] [stdout] 2026-04-23T03:20:14.654335Z TRACE kestrel_protocol::core::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-04-23T03:20:14.654350Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=108 state=Established [INFO] [stdout] 2026-04-23T03:20:14.654353Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=1 payload_len=10 state=Established [INFO] [stdout] 2026-04-23T03:20:14.654370Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=1 payload_len=10 [INFO] [stdout] 2026-04-23T03:20:14.649876Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:59245 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.654393Z 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: 54, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.654424Z 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-04-23T03:20:14.654433Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=4 slot_index=334 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.654452Z TRACE kestrel_protocol::core::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-04-23T03:20:14.654474Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.654467Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=4 entry_id=4 connection_id=436526837 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-04-23T03:20:14.654474Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=2 payload_len=10 state=Established [INFO] [stdout] 2026-04-23T03:20:14.654491Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=2 payload_len=10 [INFO] [stdout] 2026-04-23T03:20:14.654503Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=41 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-04-23T03:20:14.654514Z 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: 54, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.654528Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:59245 frame_count=1 bytes=29 [INFO] [stdout] 2026-04-23T03:20:14.654542Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.654546Z 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-04-23T03:20:14.654586Z TRACE kestrel_protocol::core::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-04-23T03:20:14.654591Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.654605Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=3 payload_len=10 state=Established [INFO] [stdout] 2026-04-23T03:20:14.654621Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=3 payload_len=10 [INFO] [stdout] 2026-04-23T03:20:14.654618Z 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-04-23T03:20:14.654627Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=436526837 addr=127.0.0.1:60789 [INFO] [stdout] 2026-04-23T03:20:14.654643Z 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: 54, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.654651Z DEBUG kestrel_protocol::socket::event_loop::routing: 相同地址存在旧连接,移除旧连接 | Old connection exists for same address, removing old connection old_cid=3299763639 new_cid=436526837 addr=127.0.0.1:60789 [INFO] [stdout] 2026-04-23T03:20:14.654674Z 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-04-23T03:20:14.654681Z DEBUG kestrel_protocol::socket::event_loop::routing: 移除连接的地址映射 | Removed address mapping for connection cid=3299763639 addr=127.0.0.1:60789 [INFO] [stdout] 2026-04-23T03:20:14.654685Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.654694Z TRACE kestrel_protocol::core::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-04-23T03:20:14.654704Z DEBUG kestrel_protocol::socket::event_loop::routing: 清理连接状态完成,CID现在处于 draining 状态 | Cleaned up connection state. CID is now in draining state. cid=3299763639 [INFO] [stdout] 2026-04-23T03:20:14.654704Z 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-04-23T03:20:14.654712Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=4 payload_len=10 state=Established [INFO] [stdout] 2026-04-23T03:20:14.654724Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=436526837 addr=127.0.0.1:60789 [INFO] [stdout] 2026-04-23T03:20:14.654728Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=4 payload_len=10 [INFO] [stdout] 2026-04-23T03:20:14.654756Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=8 [INFO] [stdout] 2026-04-23T03:20:14.653257Z 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: 8, sequence_number: 1, recv_next_sequence: 1 }, payload: b"################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################" } [INFO] [stdout] 2026-04-23T03:20:14.654771Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for outbound connection addr=127.0.0.1:60789 cid=436526837 [INFO] [stdout] 2026-04-23T03:20:14.654796Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.654796Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=436526837 remote_addr=127.0.0.1:60789 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 436526837 } } [INFO] [stdout] 2026-04-23T03:20:14.654825Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.654825Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=436526837 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.654848Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.654858Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:60789 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.654871Z 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-04-23T03:20:14.654792Z 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: 8, sequence_number: 2, recv_next_sequence: 1 }, payload: b"################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################" } [INFO] [stdout] 2026-04-23T03:20:14.654903Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:60789 frame_count=1 bytes=10 [INFO] [stdout] 2026-04-23T03:20:14.654930Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=16 slots_to_advance=1 max_advance=1 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.654978Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=16 slots_to_advance=1 max_advance=1 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.654907Z 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: 8, sequence_number: 3, recv_next_sequence: 1 }, payload: b"################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################" } [INFO] [stdout] 2026-04-23T03:20:14.655002Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:59245 frame_count=1 bytes=10 [INFO] [stdout] 2026-04-23T03:20:14.655032Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=109 [INFO] [stdout] 2026-04-23T03:20:14.655053Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=109 state=Established [INFO] [stdout] 2026-04-23T03:20:14.655057Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:60789 frame_count=1 bytes=29 [INFO] [stdout] 2026-04-23T03:20:14.655093Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=9 [INFO] [stdout] 2026-04-23T03:20:14.655102Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=436526837 [INFO] [stdout] 2026-04-23T03:20:14.655020Z 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: 8, sequence_number: 4, recv_next_sequence: 1 }, payload: b"################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################" } [INFO] [stdout] 2026-04-23T03:20:14.655114Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=9 state=Established [INFO] [stdout] 2026-04-23T03:20:14.655117Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=436526837 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.655145Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:59245 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.655158Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=110 [INFO] [stdout] 2026-04-23T03:20:14.655163Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:59245 [INFO] [stdout] 2026-04-23T03:20:14.655174Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=110 state=Established [INFO] [stdout] 2026-04-23T03:20:14.655178Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=2398198457 [INFO] [stdout] 2026-04-23T03:20:14.655219Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=10 [INFO] [stdout] 2026-04-23T03:20:14.655216Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2398198457 remote_addr=127.0.0.1:59245 [INFO] [stdout] 2026-04-23T03:20:14.655132Z 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: 8, sequence_number: 5, recv_next_sequence: 1 }, payload: b"################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################" } [INFO] [stdout] 2026-04-23T03:20:14.655237Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=10 state=Established [INFO] [stdout] 2026-04-23T03:20:14.655270Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:60789 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.655321Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=394 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.655254Z 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: 8, sequence_number: 6, recv_next_sequence: 1 }, payload: b"################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################" } [INFO] [stdout] 2026-04-23T03:20:14.655343Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=2398198457 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.655383Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=436526837 frame=Ack { header: ShortHeader { command: Ack, connection_id: 3299763639, 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-04-23T03:20:14.655402Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=111 [INFO] [stdout] 2026-04-23T03:20:14.655408Z 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: 3299763639, 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-04-23T03:20:14.655420Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=111 state=Established [INFO] [stdout] 2026-04-23T03:20:14.655427Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=436526837 recv_next_seq=0 recv_window=255 payload_len=8 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.655452Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=11 [INFO] [stdout] 2026-04-23T03:20:14.655450Z  WARN kestrel_protocol::core::endpoint::processing::processors::ack: Ignoring ACK frame in unexpected state cid=436526837 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.655363Z 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: 8, sequence_number: 7, recv_next_sequence: 1 }, payload: b"################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################" } [INFO] [stdout] 2026-04-23T03:20:14.655469Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=11 state=Established [INFO] [stdout] 2026-04-23T03:20:14.655475Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=436526837 [INFO] [stdout] 2026-04-23T03:20:14.655488Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=436526837 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.655503Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=112 [INFO] [stdout] 2026-04-23T03:20:14.655519Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=112 state=Established [INFO] [stdout] 2026-04-23T03:20:14.655488Z 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: 8, sequence_number: 8, recv_next_sequence: 1 }, payload: b"################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################" } [INFO] [stdout] 2026-04-23T03:20:14.655546Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=2398198457 addr=127.0.0.1:59245 [INFO] [stdout] 2026-04-23T03:20:14.655588Z DEBUG kestrel_protocol::socket::event_loop::routing: 相同地址存在旧连接,移除旧连接 | Old connection exists for same address, removing old connection old_cid=3858975973 new_cid=2398198457 addr=127.0.0.1:59245 [INFO] [stdout] 2026-04-23T03:20:14.655590Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=36 state=Established [INFO] [stdout] 2026-04-23T03:20:14.655602Z 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: 11, sequence_number: 1, recv_next_sequence: 1 } } [INFO] [stdout] 2026-04-23T03:20:14.655619Z DEBUG kestrel_protocol::socket::event_loop::routing: 移除连接的地址映射 | Removed address mapping for connection cid=3858975973 addr=127.0.0.1:59245 [INFO] [stdout] 2026-04-23T03:20:14.655624Z 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: 11, sequence_number: 1, recv_next_sequence: 1 } } [INFO] [stdout] 2026-04-23T03:20:14.655630Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=135 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.655640Z DEBUG kestrel_protocol::socket::event_loop::routing: 清理连接状态完成,CID现在处于 draining 状态 | Cleaned up connection state. CID is now in draining state. cid=3858975973 [INFO] [stdout] 2026-04-23T03:20:14.655645Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=1 seq=1 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.655651Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=135 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.655657Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=2398198457 addr=127.0.0.1:59245 [INFO] [stdout] 2026-04-23T03:20:14.655663Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Handling FIN in Closing state cid=1 seq=1 [INFO] [stdout] 2026-04-23T03:20:14.655674Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:59245 cid=2398198457 [INFO] [stdout] 2026-04-23T03:20:14.655686Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.655697Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.655689Z 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: 13, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.655708Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:59245 cid=2398198457 [INFO] [stdout] 2026-04-23T03:20:14.655710Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=135 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.655722Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=1 current_state=Closing target_state=ClosingWait [INFO] [stdout] 2026-04-23T03:20:14.655723Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=139 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.655728Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2398198457 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.655740Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Closing" to="ClosingWait" [INFO] [stdout] 2026-04-23T03:20:14.655741Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=139 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.655727Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=135 remote_addr=127.0.0.1:9034 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 35, source_cid: 135 } } [INFO] [stdout] 2026-04-23T03:20:14.655757Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.655764Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.655769Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=135 [INFO] [stdout] 2026-04-23T03:20:14.655773Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.655779Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2398198457 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.655791Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=135 state=Established [INFO] [stdout] 2026-04-23T03:20:14.655800Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=139 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.655798Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2398198457 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.655822Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.655813Z 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-04-23T03:20:14.654749Z 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: 54, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.655953Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] test core::tests::reliability::test_endpoint_fast_retransmission ... 2026-04-23T03:20:14.655984Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2 count=5 [INFO] [stdout] ok [INFO] [stdout] 2026-04-23T03:20:14.656015Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.656149Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.656173Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.656187Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.656198Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.656179Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.656219Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.656213Z 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: 55, sequence_number: 0, recv_next_sequence: 5 }, payload: b"s-packet-0" } [INFO] [stdout] 2026-04-23T03:20:14.656249Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.656253Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=143 remote_addr=127.0.0.1:9042 [INFO] [stdout] 2026-04-23T03:20:14.656281Z 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: 53, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.655772Z TRACE kestrel_protocol::core::endpoint::core::event_loop: All data drained after FIN, closing user stream (sending EOF). cid=1 [INFO] [stdout] 2026-04-23T03:20:14.654078Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=140 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.656327Z TRACE mio::poll: registering event source with poller: token=Token(128931093128448), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.656337Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=ClosingWait [INFO] [stdout] 2026-04-23T03:20:14.656336Z 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-04-23T03:20:14.656348Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=142 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.656357Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-04-23T03:20:14.656367Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=140 [INFO] [stdout] 2026-04-23T03:20:14.656374Z 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: 11, sequence_number: 1, recv_next_sequence: 1 } } [INFO] [stdout] 2026-04-23T03:20:14.656387Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=140 state=Established [INFO] [stdout] 2026-04-23T03:20:14.656393Z 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: 11, sequence_number: 1, recv_next_sequence: 1 } } [INFO] [stdout] 2026-04-23T03:20:14.656407Z TRACE mio::poll: registering event source with poller: token=Token(128931093128832), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.656411Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=2 seq=1 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.656425Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.656426Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Handling FIN in Closing state cid=2 seq=1 [INFO] [stdout] 2026-04-23T03:20:14.656449Z 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-04-23T03:20:14.656460Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.656482Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=Closing target_state=ClosingWait [INFO] [stdout] 2026-04-23T03:20:14.656484Z 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-04-23T03:20:14.656489Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.656501Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="Closing" to="ClosingWait" [INFO] [stdout] 2026-04-23T03:20:14.656520Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.656525Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=42 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-04-23T03:20:14.656536Z TRACE kestrel_protocol::core::endpoint::core::event_loop: All data drained after FIN, closing user stream (sending EOF). cid=2 [INFO] [stdout] 2026-04-23T03:20:14.656553Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=ClosingWait [INFO] [stdout] 2026-04-23T03:20:14.656550Z 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-04-23T03:20:14.656588Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.656600Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=40 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.656632Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.656643Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.656660Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-04-23T03:20:14.656656Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=1 [INFO] [stdout] 2026-04-23T03:20:14.656658Z 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-04-23T03:20:14.656670Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.656693Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:43015) [INFO] [stdout] 2026-04-23T03:20:14.656722Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.656732Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=138 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.656748Z TRACE mio::poll: registering event source with poller: token=Token(128931093139456), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.656746Z 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-04-23T03:20:14.656748Z 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"rto test data" } [INFO] [stdout] 2026-04-23T03:20:14.656758Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=138 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.656765Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2 [INFO] [stdout] 2026-04-23T03:20:14.656774Z TRACE kestrel_protocol::core::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"rto test data" } [INFO] [stdout] 2026-04-23T03:20:14.656784Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.656798Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.656797Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=0 payload_len=13 state=Established [INFO] [stdout] 2026-04-23T03:20:14.656817Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=0 payload_len=13 [INFO] [stdout] 2026-04-23T03:20:14.656830Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=138 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.656837Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=142 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.656845Z 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-04-23T03:20:14.656844Z 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-04-23T03:20:14.656857Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=142 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.656881Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.656879Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=138 [INFO] [stdout] 2026-04-23T03:20:14.656881Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.656890Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.656896Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2 count=1 [INFO] [stdout] 2026-04-23T03:20:14.656902Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=142 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.656902Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=138 state=Established [INFO] [stdout] 2026-04-23T03:20:14.656920Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.656915Z 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-04-23T03:20:14.656930Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.656944Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-04-23T03:20:14.656942Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=142 [INFO] [stdout] 2026-04-23T03:20:14.656953Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.656962Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=142 state=Established [INFO] [stdout] 2026-04-23T03:20:14.656303Z 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: 53, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.656976Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:50677) [INFO] [stdout] 2026-04-23T03:20:14.656995Z 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-04-23T03:20:14.657009Z  INFO kestrel_protocol::core::tests::state: [Client] Connecting... [INFO] [stdout] 2026-04-23T03:20:14.657017Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=1 [INFO] [stdout] 2026-04-23T03:20:14.657036Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-04-23T03:20:14.657031Z 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-04-23T03:20:14.657029Z 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-04-23T03:20:14.657053Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-04-23T03:20:14.657061Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.657061Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=42 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.657078Z 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-04-23T03:20:14.657086Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.657097Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=4 srtt_ms=4 rttvar_ms=2 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.657113Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.657124Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.657140Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-04-23T03:20:14.657144Z 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: 54, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.657168Z 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: 54, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.657188Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.657183Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-04-23T03:20:14.657188Z 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-04-23T03:20:14.657209Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=1 [INFO] [stdout] 2026-04-23T03:20:14.657212Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-04-23T03:20:14.657222Z 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-04-23T03:20:14.657238Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.657245Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-04-23T03:20:14.657258Z 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-04-23T03:20:14.657274Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=5 srtt_ms=4 rttvar_ms=1 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.657289Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.657299Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.657316Z 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: 54, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.657319Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=2554334189 [INFO] [stdout] 2026-04-23T03:20:14.657335Z 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: 54, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.657349Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=4089135908 [INFO] [stdout] 2026-04-23T03:20:14.657352Z 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-04-23T03:20:14.657368Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=1 [INFO] [stdout] 2026-04-23T03:20:14.657370Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2554334189 remote_addr=127.0.0.1:55636 [INFO] [stdout] 2026-04-23T03:20:14.657380Z 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-04-23T03:20:14.657388Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=4089135908 remote_addr=127.0.0.1:43015 [INFO] [stdout] 2026-04-23T03:20:14.657402Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-04-23T03:20:14.657417Z 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-04-23T03:20:14.657436Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.657434Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=5 srtt_ms=4 rttvar_ms=1 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.657448Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.657461Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-04-23T03:20:14.657472Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-04-23T03:20:14.657466Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=2554334189 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.657475Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=4089135908 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.657490Z 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: 54, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.657514Z 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: 54, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.657535Z 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-04-23T03:20:14.657544Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.657553Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=1 [INFO] [stdout] 2026-04-23T03:20:14.653185Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.657585Z 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-04-23T03:20:14.657612Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] 2026-04-23T03:20:14.657605Z 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: 11643173311145864778, 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-04-23T03:20:14.657625Z 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-04-23T03:20:14.657081Z 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-04-23T03:20:14.657644Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=5 srtt_ms=4 rttvar_ms=1 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.657660Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-04-23T03:20:14.657670Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-04-23T03:20:14.657667Z 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-04-23T03:20:14.655885Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=137 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.657689Z 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: 54, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.657693Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=42 peer_cid=142 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.657711Z 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: 54, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.657711Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=137 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.657729Z 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-04-23T03:20:14.657742Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.657748Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=1 [INFO] [stdout] 2026-04-23T03:20:14.657754Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.657754Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.657761Z 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-04-23T03:20:14.657767Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=137 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.657776Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.657785Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-04-23T03:20:14.657781Z 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-04-23T03:20:14.657799Z 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-04-23T03:20:14.657813Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=137 [INFO] [stdout] 2026-04-23T03:20:14.657815Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.657820Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=5 srtt_ms=4 rttvar_ms=1 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.657830Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=42 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.657834Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=137 state=Established [INFO] [stdout] 2026-04-23T03:20:14.657836Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-04-23T03:20:14.657849Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] 2026-04-23T03:20:14.657848Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=42 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.657865Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.657868Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=42 peer_cid=142 [INFO] [stdout] 2026-04-23T03:20:14.657882Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.657887Z 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: 3, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.657910Z TRACE kestrel_protocol::core::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: 3, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.657927Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=42 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.657943Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=42 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.657944Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=120 [INFO] [stdout] 2026-04-23T03:20:14.657969Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=120 state=Established [INFO] [stdout] 2026-04-23T03:20:14.657967Z 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: 1, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.657971Z 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: 55, sequence_number: 0, recv_next_sequence: 5 }, payload: b"s-packet-0" } [INFO] [stdout] 2026-04-23T03:20:14.657999Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=42 [INFO] [stdout] 2026-04-23T03:20:14.657997Z TRACE kestrel_protocol::core::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: 55, sequence_number: 0, recv_next_sequence: 5 }, payload: b"s-packet-0" } [INFO] [stdout] 2026-04-23T03:20:14.658011Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=20 [INFO] [stdout] 2026-04-23T03:20:14.658014Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=1 seq=0 payload_len=10 state=Established [INFO] [stdout] 2026-04-23T03:20:14.658027Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=42 count=1 [INFO] [stdout] 2026-04-23T03:20:14.658031Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=20 state=Established [INFO] [stdout] 2026-04-23T03:20:14.658031Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=1 seq=0 payload_len=10 [INFO] [stdout] 2026-04-23T03:20:14.658055Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=42 state=Established [INFO] [stdout] 2026-04-23T03:20:14.658055Z 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: 58, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.657557Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.658088Z 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: 55, sequence_number: 1, recv_next_sequence: 5 }, payload: b"s-packet-1" } [INFO] [stdout] 2026-04-23T03:20:14.658105Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=2554334189 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-04-23T03:20:14.658111Z TRACE kestrel_protocol::core::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: 55, sequence_number: 1, recv_next_sequence: 5 }, payload: b"s-packet-1" } [INFO] [stdout] 2026-04-23T03:20:14.658129Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=1 seq=1 payload_len=10 state=Established [INFO] [stdout] 2026-04-23T03:20:14.658145Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=1 seq=1 payload_len=10 [INFO] [stdout] 2026-04-23T03:20:14.658149Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=42 [INFO] [stdout] 2026-04-23T03:20:14.658163Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=2554334189 addr=127.0.0.1:55636 [INFO] [stdout] 2026-04-23T03:20:14.658166Z 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: 58, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.658177Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.658202Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.658198Z 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: 55, sequence_number: 2, recv_next_sequence: 5 }, payload: b"s-packet-2" } [INFO] [stdout] 2026-04-23T03:20:14.658195Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=2554334189 addr=127.0.0.1:55636 [INFO] [stdout] 2026-04-23T03:20:14.658214Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.658225Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-04-23T03:20:14.658219Z TRACE kestrel_protocol::core::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: 55, sequence_number: 2, recv_next_sequence: 5 }, payload: b"s-packet-2" } [INFO] [stdout] 2026-04-23T03:20:14.658236Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-04-23T03:20:14.658246Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-04-23T03:20:14.658240Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=1 seq=2 payload_len=10 state=Established [INFO] [stdout] 2026-04-23T03:20:14.658256Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-04-23T03:20:14.658258Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=1 seq=2 payload_len=10 [INFO] [stdout] 2026-04-23T03:20:14.658267Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-04-23T03:20:14.658263Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for outbound connection addr=127.0.0.1:55636 cid=2554334189 [INFO] [stdout] 2026-04-23T03:20:14.658277Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-04-23T03:20:14.658280Z 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: 58, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.658289Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2554334189 remote_addr=127.0.0.1:55636 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 2554334189 } } [INFO] [stdout] 2026-04-23T03:20:14.658310Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.658320Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2554334189 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.658325Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=1 count=3 [INFO] [stdout] 2026-04-23T03:20:14.658350Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.658356Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:55636 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.658293Z 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: 1, sequence_number: 0, recv_next_sequence: 1 }, payload: b"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))" } [INFO] [stdout] 2026-04-23T03:20:14.658405Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:55636 frame_count=1 bytes=10 [INFO] [stdout] 2026-04-23T03:20:14.658468Z  INFO kestrel_protocol::core::tests::state: First connection established. [INFO] [stdout] 2026-04-23T03:20:14.658427Z 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: 1, sequence_number: 1, recv_next_sequence: 1 }, payload: b"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))" } [INFO] [stdout] 2026-04-23T03:20:14.658547Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=1 [INFO] [stdout] 2026-04-23T03:20:14.658558Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:53259 frame_count=1 bytes=10 [INFO] [stdout] 2026-04-23T03:20:14.658619Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2 [INFO] [stdout] 2026-04-23T03:20:14.658639Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2554334189 [INFO] [stdout] 2026-04-23T03:20:14.658658Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2554334189 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.658546Z 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: 1, sequence_number: 2, recv_next_sequence: 1 }, payload: b"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))" } [INFO] [stdout] 2026-04-23T03:20:14.658695Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:53259 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.658713Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:53259 [INFO] [stdout] 2026-04-23T03:20:14.658725Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=1868885191 [INFO] [stdout] 2026-04-23T03:20:14.655834Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.658702Z 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: 1, sequence_number: 3, recv_next_sequence: 1 }, payload: b"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))" } [INFO] [stdout] 2026-04-23T03:20:14.658819Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=2398198457 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.658850Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=4089135908 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-04-23T03:20:14.658914Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=141 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.659314Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2398198457 remote_addr=127.0.0.1:59245 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 436526837, source_cid: 2398198457 } } [INFO] [stdout] 2026-04-23T03:20:14.658942Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=35 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: 35 } } [INFO] [stdout] 2026-04-23T03:20:14.659357Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2398198457 [INFO] [stdout] 2026-04-23T03:20:14.659353Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=141 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.659386Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.659383Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2398198457 state=Established [INFO] [stdout] 2026-04-23T03:20:14.659383Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=35 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.659397Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.659411Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=141 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.659415Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=35 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 35, source_cid: 135 } } [INFO] [stdout] 2026-04-23T03:20:14.659424Z 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-04-23T03:20:14.659427Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:59245 frame_count=2 [INFO] [stdout] 2026-04-23T03:20:14.658998Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=1868885191 remote_addr=127.0.0.1:53259 [INFO] [stdout] 2026-04-23T03:20:14.659458Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=141 [INFO] [stdout] 2026-04-23T03:20:14.659105Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.659478Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=141 state=Established [INFO] [stdout] 2026-04-23T03:20:14.659506Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=144 remote_addr=127.0.0.1:9043 [INFO] [stdout] 2026-04-23T03:20:14.659520Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.659536Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=119 [INFO] [stdout] 2026-04-23T03:20:14.659549Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=1868885191 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.659555Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=119 state=Established [INFO] [stdout] 2026-04-23T03:20:14.659625Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=19 [INFO] [stdout] 2026-04-23T03:20:14.659619Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:59245 frame_count=2 bytes=35 [INFO] [stdout] 2026-04-23T03:20:14.659645Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=19 state=Established [INFO] [stdout] 2026-04-23T03:20:14.659646Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=1868885191 addr=127.0.0.1:53259 [INFO] [stdout] 2026-04-23T03:20:14.659680Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=1868885191 addr=127.0.0.1:53259 [INFO] [stdout] 2026-04-23T03:20:14.659700Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:53259 cid=1868885191 [INFO] [stdout] 2026-04-23T03:20:14.659734Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:53259 cid=1868885191 [INFO] [stdout] 2026-04-23T03:20:14.659759Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:60789 frame_count=2 bytes=35 [INFO] [stdout] 2026-04-23T03:20:14.659775Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1868885191 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.659815Z  INFO kestrel_protocol::core::tests::state: Accepted first connection from 127.0.0.1:53259 [INFO] [stdout] 2026-04-23T03:20:14.659827Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:60789 frame_count=2 [INFO] [stdout] 2026-04-23T03:20:14.659848Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=1868885191 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.659851Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=4089135908 addr=127.0.0.1:43015 [INFO] [stdout] 2026-04-23T03:20:14.659868Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1868885191 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.659891Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.659888Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=4089135908 addr=127.0.0.1:43015 [INFO] [stdout] 2026-04-23T03:20:14.659889Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=436526837 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 436526837, source_cid: 2398198457 } } [INFO] [stdout] 2026-04-23T03:20:14.659901Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.659916Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=1868885191 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.659913Z 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: 436526837, source_cid: 2398198457 } } [INFO] [stdout] 2026-04-23T03:20:14.659931Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for outbound connection addr=127.0.0.1:43015 cid=4089135908 [INFO] [stdout] 2026-04-23T03:20:14.659930Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1868885191 remote_addr=127.0.0.1:53259 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 2554334189, source_cid: 1868885191 } } [INFO] [stdout] 2026-04-23T03:20:14.659934Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=436526837 peer_cid=2398198457 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.659963Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1868885191 [INFO] [stdout] 2026-04-23T03:20:14.659957Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=4089135908 remote_addr=127.0.0.1:43015 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 4089135908 } } [INFO] [stdout] 2026-04-23T03:20:14.659982Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1868885191 state=Established [INFO] [stdout] 2026-04-23T03:20:14.659985Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=4 [INFO] [stdout] 2026-04-23T03:20:14.659987Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4089135908 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.660005Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=4 [INFO] [stdout] 2026-04-23T03:20:14.660019Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:53259 frame_count=2 [INFO] [stdout] 2026-04-23T03:20:14.660020Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:43015 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.660042Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.660055Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=436526837 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.660056Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:53259 frame_count=2 bytes=35 [INFO] [stdout] 2026-04-23T03:20:14.660066Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:43015 frame_count=1 bytes=10 [INFO] [stdout] 2026-04-23T03:20:14.660073Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=436526837 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.660096Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.660115Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=436526837 remote_addr=127.0.0.1:60789 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 2398198457, payload_length: 4, recv_window_size: 256, timestamp: 32, sequence_number: 0, recv_next_sequence: 0 }, payload: b"ping" } [INFO] [stdout] 2026-04-23T03:20:14.660152Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=436526837 peer_cid=2398198457 [INFO] [stdout] 2026-04-23T03:20:14.660152Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:55636 frame_count=2 bytes=35 [INFO] [stdout] 2026-04-23T03:20:14.660172Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=436526837 frame=Push { header: ShortHeader { command: Push, connection_id: 436526837, payload_length: 4, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"pong" } [INFO] [stdout] 2026-04-23T03:20:14.660195Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 436526837, payload_length: 4, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"pong" } [INFO] [stdout] 2026-04-23T03:20:14.660204Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:50677 frame_count=1 bytes=10 [INFO] [stdout] 2026-04-23T03:20:14.660216Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=436526837 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.660220Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:55636 frame_count=2 [INFO] [stdout] 2026-04-23T03:20:14.660234Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=436526837 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.660265Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=4089135908 [INFO] [stdout] 2026-04-23T03:20:14.660259Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=436526837 remote_addr=127.0.0.1:60789 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 2398198457, 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-04-23T03:20:14.660271Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2554334189 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 2554334189, source_cid: 1868885191 } } [INFO] [stdout] 2026-04-23T03:20:14.660282Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4089135908 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.660291Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=436526837 [INFO] [stdout] 2026-04-23T03:20:14.660296Z 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: 2554334189, source_cid: 1868885191 } } [INFO] [stdout] 2026-04-23T03:20:14.660307Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=436526837 count=1 [INFO] [stdout] 2026-04-23T03:20:14.660315Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=2554334189 peer_cid=1868885191 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.660317Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:50677 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.660336Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:50677 [INFO] [stdout] 2026-04-23T03:20:14.660336Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=436526837 state=Established [INFO] [stdout] 2026-04-23T03:20:14.660350Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=4092213815 [INFO] [stdout] 2026-04-23T03:20:14.660358Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.660375Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.660375Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:60789 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.660386Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=4092213815 remote_addr=127.0.0.1:50677 [INFO] [stdout] 2026-04-23T03:20:14.660409Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.660413Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:60789 frame_count=1 bytes=25 [INFO] [stdout] 2026-04-23T03:20:14.660421Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2554334189 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.660438Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2554334189 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.660456Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=2554334189 peer_cid=1868885191 [INFO] [stdout] 2026-04-23T03:20:14.660453Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.660475Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2554334189 frame=Push { header: ShortHeader { command: Push, connection_id: 2554334189, payload_length: 4, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"ack1" } [INFO] [stdout] 2026-04-23T03:20:14.660480Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=4092213815 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.660482Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:60789 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.660500Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2554334189, payload_length: 4, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"ack1" } [INFO] [stdout] 2026-04-23T03:20:14.660519Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2554334189 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.660522Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:60789 frame_count=1 bytes=29 [INFO] [stdout] 2026-04-23T03:20:14.660535Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2554334189 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.660550Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=4092213815 addr=127.0.0.1:50677 [INFO] [stdout] 2026-04-23T03:20:14.660590Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2554334189 remote_addr=127.0.0.1:55636 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1868885191, 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-04-23T03:20:14.660601Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=4092213815 addr=127.0.0.1:50677 [INFO] [stdout] 2026-04-23T03:20:14.660624Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:50677 cid=4092213815 [INFO] [stdout] 2026-04-23T03:20:14.660628Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2554334189 [INFO] [stdout] 2026-04-23T03:20:14.660635Z  INFO kestrel_protocol::core::tests::state: [Client] Conn B verified. [INFO] [stdout] 2026-04-23T03:20:14.660644Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2554334189 count=1 [INFO] [stdout] 2026-04-23T03:20:14.660657Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:50677 cid=4092213815 [INFO] [stdout] 2026-04-23T03:20:14.660672Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2554334189 state=Established [INFO] [stdout] 2026-04-23T03:20:14.660676Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4092213815 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.660674Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:59245 frame_count=1 bytes=25 [INFO] [stdout] 2026-04-23T03:20:14.660713Z  INFO kestrel_protocol::core::tests::state: [Server] Accepted connection from 127.0.0.1:50677 [INFO] [stdout] 2026-04-23T03:20:14.660711Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:55636 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.660718Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:59245 frame_count=1 bytes=29 [INFO] [stdout] 2026-04-23T03:20:14.660744Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:55636 frame_count=1 bytes=29 [INFO] [stdout] 2026-04-23T03:20:14.660745Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=4092213815 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.660766Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=4092213815 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.660766Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:59245 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.660789Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.660797Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:59245 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.660800Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.660815Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=4092213815 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.660829Z  INFO kestrel_protocol::core::tests::state: Client read 4 bytes: [97, 99, 107, 49] [INFO] [stdout] 2026-04-23T03:20:14.660829Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=4092213815 remote_addr=127.0.0.1:50677 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 4089135908, source_cid: 4092213815 } } [INFO] [stdout] 2026-04-23T03:20:14.660834Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2398198457 frame=Push { header: ShortHeader { command: Push, connection_id: 2398198457, payload_length: 4, recv_window_size: 256, timestamp: 32, sequence_number: 0, recv_next_sequence: 0 }, payload: b"ping" } [INFO] [stdout] 2026-04-23T03:20:14.660848Z  INFO kestrel_protocol::core::tests::state: Received server ack for first connection [INFO] [stdout] 2026-04-23T03:20:14.660859Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=4092213815 [INFO] [stdout] 2026-04-23T03:20:14.660865Z  INFO kestrel_protocol::core::tests::state: First connection shut down from client side. [INFO] [stdout] 2026-04-23T03:20:14.660858Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2398198457, payload_length: 4, recv_window_size: 256, timestamp: 32, sequence_number: 0, recv_next_sequence: 0 }, payload: b"ping" } [INFO] [stdout] 2026-04-23T03:20:14.660877Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4092213815 state=Established [INFO] [stdout] 2026-04-23T03:20:14.660878Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2398198457 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.660895Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2398198457 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.660900Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:53259 frame_count=1 bytes=29 [INFO] [stdout] 2026-04-23T03:20:14.660910Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:50677 frame_count=2 [INFO] [stdout] 2026-04-23T03:20:14.660925Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2398198457 remote_addr=127.0.0.1:59245 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 436526837, 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-04-23T03:20:14.660951Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=2554334189 current_state=Established [INFO] [stdout] 2026-04-23T03:20:14.660958Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:50677 frame_count=2 bytes=43 [INFO] [stdout] 2026-04-23T03:20:14.660962Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2398198457 frame=Ack { header: ShortHeader { command: Ack, connection_id: 2398198457, 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-04-23T03:20:14.660972Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2554334189 from="Established" to="Closing" [INFO] [stdout] 2026-04-23T03:20:14.660981Z 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: 2398198457, 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-04-23T03:20:14.660994Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.661003Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=2398198457 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.661008Z 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-04-23T03:20:14.661023Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2398198457 [INFO] [stdout] 2026-04-23T03:20:14.661028Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2554334189 remote_addr=127.0.0.1:55636 frame_count=1 first_frame=Fin { header: ShortHeader { command: Fin, connection_id: 1868885191, payload_length: 0, recv_window_size: 256, timestamp: 564, sequence_number: 0, recv_next_sequence: 1 } } [INFO] [stdout] 2026-04-23T03:20:14.661037Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=2398198457 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-04-23T03:20:14.661053Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:43015 frame_count=2 bytes=43 [INFO] [stdout] 2026-04-23T03:20:14.661060Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2554334189 [INFO] [stdout] 2026-04-23T03:20:14.661070Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.661084Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2554334189 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.661088Z 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-04-23T03:20:14.661102Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:43015 frame_count=2 [INFO] [stdout] 2026-04-23T03:20:14.661107Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=32 srtt_ms=32 rttvar_ms=16 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.661124Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.661125Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:53259 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.661135Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.661152Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2398198457 [INFO] [stdout] 2026-04-23T03:20:14.661150Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=4089135908 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 4089135908, source_cid: 4092213815 } } [INFO] [stdout] 2026-04-23T03:20:14.661164Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2398198457 count=1 [INFO] [stdout] 2026-04-23T03:20:14.661170Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:55636 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.661172Z 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: 4089135908, source_cid: 4092213815 } } [INFO] [stdout] 2026-04-23T03:20:14.661193Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2398198457 state=Established [INFO] [stdout] 2026-04-23T03:20:14.661201Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=4089135908 peer_cid=4092213815 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.661217Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1868885191 frame=Ack { header: ShortHeader { command: Ack, connection_id: 1868885191, 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-04-23T03:20:14.661230Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:59245 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.661246Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.661244Z 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: 1868885191, 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-04-23T03:20:14.661264Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.661264Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=1868885191 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.661273Z  INFO kestrel_protocol::core::tests::state: [Server] Conn B verified [INFO] [stdout] 2026-04-23T03:20:14.661283Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=1868885191 [INFO] [stdout] 2026-04-23T03:20:14.661301Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.661299Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=1868885191 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-04-23T03:20:14.661313Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=4089135908 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.661329Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.661329Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=4089135908 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.661329Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:59245 frame_count=1 bytes=29 [INFO] [stdout] 2026-04-23T03:20:14.661347Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=4089135908 peer_cid=4092213815 [INFO] [stdout] 2026-04-23T03:20:14.661345Z 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-04-23T03:20:14.661364Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=514 srtt_ms=514 rttvar_ms=257 rto_ms=1542 [INFO] [stdout] 2026-04-23T03:20:14.661363Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=4089135908 frame=Push { header: ShortHeader { command: Push, connection_id: 4089135908, payload_length: 12, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"server_ready" } [INFO] [stdout] 2026-04-23T03:20:14.661380Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.661385Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 4089135908, payload_length: 12, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"server_ready" } [INFO] [stdout] 2026-04-23T03:20:14.661391Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.661409Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1868885191 [INFO] [stdout] 2026-04-23T03:20:14.661404Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=4089135908 seq=0 payload_len=12 state=Established [INFO] [stdout] 2026-04-23T03:20:14.661424Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=4089135908 seq=0 payload_len=12 [INFO] [stdout] 2026-04-23T03:20:14.661427Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1868885191 state=Established [INFO] [stdout] 2026-04-23T03:20:14.661447Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=4089135908 remote_addr=127.0.0.1:43015 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 4092213815, 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-04-23T03:20:14.661454Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:60789 frame_count=1 bytes=29 [INFO] [stdout] 2026-04-23T03:20:14.661480Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=4089135908 [INFO] [stdout] 2026-04-23T03:20:14.661482Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:55636 frame_count=1 bytes=21 [INFO] [stdout] 2026-04-23T03:20:14.661494Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=4089135908 count=1 [INFO] [stdout] 2026-04-23T03:20:14.661509Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:60789 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.661521Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4089135908 state=Established [INFO] [stdout] 2026-04-23T03:20:14.661556Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:43015 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.661559Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=436526837 frame=Ack { header: ShortHeader { command: Ack, connection_id: 436526837, 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-04-23T03:20:14.661592Z  INFO kestrel_protocol::core::tests::state: Connecting for the second time from the same local socket... [INFO] [stdout] 2026-04-23T03:20:14.661607Z 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: 436526837, 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-04-23T03:20:14.661614Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:43015 frame_count=1 bytes=29 [INFO] [stdout] 2026-04-23T03:20:14.661628Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=436526837 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.661638Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:53259 frame_count=1 bytes=21 [INFO] [stdout] 2026-04-23T03:20:14.661649Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=436526837 [INFO] [stdout] 2026-04-23T03:20:14.661663Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=436526837 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-04-23T03:20:14.661690Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.661698Z 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-04-23T03:20:14.661705Z 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-04-23T03:20:14.661716Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:50677 frame_count=1 bytes=29 [INFO] [stdout] 2026-04-23T03:20:14.661723Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=100 srtt_ms=100 rttvar_ms=50 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.661739Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.661749Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.661766Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=436526837 [INFO] [stdout] 2026-04-23T03:20:14.661774Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=4089135908 [INFO] [stdout] 2026-04-23T03:20:14.661785Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=436526837 state=Established [INFO] [stdout] 2026-04-23T03:20:14.661783Z 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-04-23T03:20:14.661796Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.661813Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=4089135908 remote_addr=127.0.0.1:43015 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 4092213815, payload_length: 12, recv_window_size: 256, timestamp: 64, sequence_number: 0, recv_next_sequence: 1 }, payload: b"hello_server" } [INFO] [stdout] 2026-04-23T03:20:14.661865Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=2066680257 [INFO] [stdout] 2026-04-23T03:20:14.661868Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4089135908 state=Established [INFO] [stdout] 2026-04-23T03:20:14.661907Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2066680257 remote_addr=127.0.0.1:55636 [INFO] [stdout] 2026-04-23T03:20:14.661911Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:50677 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.661955Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:43015 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.661964Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:53259 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.661990Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=4092213815 frame=Ack { header: ShortHeader { command: Ack, connection_id: 4092213815, 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-04-23T03:20:14.662015Z 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: 4092213815, 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-04-23T03:20:14.662028Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=3 slot_index=44 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.662034Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=4092213815 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.662052Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=4092213815 [INFO] [stdout] 2026-04-23T03:20:14.662050Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-04-23T03:20:14.662056Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=3 entry_id=3 connection_id=2066680257 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.662065Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=4092213815 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-04-23T03:20:14.662093Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.662105Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1868885191 frame=Fin { header: ShortHeader { command: Fin, connection_id: 1868885191, payload_length: 0, recv_window_size: 256, timestamp: 564, sequence_number: 0, recv_next_sequence: 1 } } [INFO] [stdout] 2026-04-23T03:20:14.662110Z 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-04-23T03:20:14.662129Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=14 srtt_ms=14 rttvar_ms=7 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.662130Z 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: 1868885191, payload_length: 0, recv_window_size: 256, timestamp: 564, sequence_number: 0, recv_next_sequence: 1 } } [INFO] [stdout] 2026-04-23T03:20:14.662146Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.662150Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=1868885191 seq=0 state=Established [INFO] [stdout] 2026-04-23T03:20:14.662156Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.662166Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Handling FIN in Established state cid=1868885191 seq=0 [INFO] [stdout] 2026-04-23T03:20:14.662173Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=4092213815 [INFO] [stdout] 2026-04-23T03:20:14.662175Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-04-23T03:20:14.662201Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4092213815 state=Established [INFO] [stdout] 2026-04-23T03:20:14.662189Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1868885191 remote_addr=127.0.0.1:53259 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 2554334189, 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-04-23T03:20:14.662235Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1868885191 [INFO] [stdout] 2026-04-23T03:20:14.662251Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=1868885191 current_state=Established target_state=FinWait [INFO] [stdout] 2026-04-23T03:20:14.662253Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:43015 frame_count=1 bytes=33 [INFO] [stdout] 2026-04-23T03:20:14.659685Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=143 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.662902Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.662938Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=43 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-04-23T03:20:14.662988Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.663028Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.663053Z 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-04-23T03:20:14.663121Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.663145Z 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-04-23T03:20:14.663197Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.663229Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.663252Z 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-04-23T03:20:14.663517Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=128 [INFO] [stdout] 2026-04-23T03:20:14.663544Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=128 state=Established [INFO] [stdout] test core::tests::lifecycle::test_connect_and_send_data ... ok [INFO] [stdout] test core::tests::shutdown::test_simultaneous_close ... ok [INFO] [stdout] 2026-04-23T03:20:14.663742Z 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-04-23T03:20:14.663780Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=38 state=Connecting [INFO] [stdout] test core::tests::reliability::test_data_flow_with_acks ... ok [INFO] [stdout] 2026-04-23T03:20:14.663800Z 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-04-23T03:20:14.663820Z 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] test core::tests::state::test_address_reuse_after_cid_drained ... ok [INFO] [stdout] 2026-04-23T03:20:14.663840Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=38 peer_cid=138 state=Connecting [INFO] [stdout] test packet::tests::test_ack_frame_roundtrip ... ok [INFO] [stdout] 2026-04-23T03:20:14.663886Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.663905Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.663943Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.663955Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=38 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.663973Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=38 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.663990Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=38 peer_cid=138 [INFO] [stdout] test packet::tests::test_ping_frame_roundtrip ... ok [INFO] [stdout] 2026-04-23T03:20:14.664009Z 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: 11, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.664032Z TRACE kestrel_protocol::core::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: 11, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.664050Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=38 seq=0 payload_len=4 state=Established [INFO] [stdout] test packet::tests::test_fin_frame_roundtrip ... ok [INFO] [stdout] 2026-04-23T03:20:14.664067Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=38 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.664091Z 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: 13, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.664122Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=38 [INFO] [stdout] 2026-04-23T03:20:14.664136Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=38 count=1 [INFO] [stdout] test packet::tests::test_coalesced_frames_decode ... ok2026-04-23T03:20:14.664165Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=38 state=Established [INFO] [stdout] [INFO] [stdout] test packet::tests::test_push_frame_roundtrip ... ok [INFO] [stdout] 2026-04-23T03:20:14.664285Z 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-04-23T03:20:14.664323Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=41 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.664344Z 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-04-23T03:20:14.664362Z 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-04-23T03:20:14.664379Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=41 peer_cid=141 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.664390Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.664426Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.664456Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.664497Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.664510Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=41 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.664529Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=41 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.664547Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=41 peer_cid=141 [INFO] [stdout] 2026-04-23T03:20:14.664561Z TRACE kestrel_protocol::socket::event_loop::draining: Cleaned up expired draining CIDs. cleaned_count=2 [INFO] [stdout] 2026-04-23T03:20:14.664586Z 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: 5, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.664611Z TRACE kestrel_protocol::core::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: 5, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.664632Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=41 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.664637Z TRACE kestrel_protocol::socket::event_loop::draining: Cleaned up expired draining CIDs. cleaned_count=1 [INFO] [stdout] 2026-04-23T03:20:14.664649Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=41 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.664672Z 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: 10, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.664703Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=41 [INFO] [stdout] 2026-04-23T03:20:14.664726Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=41 count=1 [INFO] [stdout] 2026-04-23T03:20:14.664753Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=41 state=Established [INFO] [stdout] test packet::tests::test_syn_ack_frame_roundtrip ... ok [INFO] [stdout] test socket::event_loop::draining::tests::test_draining_pool_cleanup ... ok [INFO] [stdout] 2026-04-23T03:20:14.664977Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.664977Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.665013Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=145 remote_addr=127.0.0.1:9044 [INFO] [stdout] 2026-04-23T03:20:14.665007Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.665048Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.662267Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1868885191 from="Established" to="FinWait" [INFO] [stdout] 2026-04-23T03:20:14.665064Z 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-04-23T03:20:14.659436Z 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: 35, source_cid: 135 } } [INFO] [stdout] test packet::tests::test_syn_frame_roundtrip ... 2026-04-23T03:20:14.659140Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=139 [INFO] [stdout] 2026-04-23T03:20:14.665096Z TRACE kestrel_protocol::core::endpoint::core::event_loop: All data drained after FIN, closing user stream (sending EOF). cid=1868885191 [INFO] [stdout] 2026-04-23T03:20:14.665083Z DEBUG kestrel_protocol::socket::event_loop::routing: 早到帧已缓存 | Early arrival frame cached cid=999 addr=127.0.0.1:8080 cache_key=999 [INFO] [stdout] ok [INFO] [stdout] 2026-04-23T03:20:14.665135Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1868885191 state=FinWait [INFO] [stdout] 2026-04-23T03:20:14.665140Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=139 state=Established [INFO] [stdout] test socket::event_loop::draining::tests::test_draining_pool_insert_and_contains ... ok [INFO] [stdout] 2026-04-23T03:20:14.665283Z 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-04-23T03:20:14.665315Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:50677 frame_count=1 bytes=33 [INFO] [stdout] 2026-04-23T03:20:14.665324Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=39 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.665331Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.665388Z 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-04-23T03:20:14.665408Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.665406Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=144 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.665419Z 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-04-23T03:20:14.665435Z 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-04-23T03:20:14.665439Z 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-04-23T03:20:14.665460Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=555 addr=127.0.0.1:8080 [INFO] [stdout] 2026-04-23T03:20:14.665492Z DEBUG kestrel_protocol::socket::event_loop::routing: 成功转发缓存的早到帧 | Successfully forwarded cached early arrival frames cid=555 cache_key=555 count=1 [INFO] [stdout] 2026-04-23T03:20:14.665501Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:50677 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.665508Z 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-04-23T03:20:14.665560Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.665557Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=4092213815 frame=Push { header: ShortHeader { command: Push, connection_id: 4092213815, payload_length: 12, recv_window_size: 256, timestamp: 64, sequence_number: 0, recv_next_sequence: 1 }, payload: b"hello_server" } [INFO] [stdout] 2026-04-23T03:20:14.665608Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 4092213815, payload_length: 12, recv_window_size: 256, timestamp: 64, sequence_number: 0, recv_next_sequence: 1 }, payload: b"hello_server" } [INFO] [stdout] 2026-04-23T03:20:14.665614Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=44 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-04-23T03:20:14.665636Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=4092213815 seq=0 payload_len=12 state=Established [INFO] [stdout] 2026-04-23T03:20:14.665641Z DEBUG kestrel_protocol::socket::event_loop::routing: 清理超时的早到帧缓存 | Cleaned up expired early arrival frame cache cache_key=999 [INFO] [stdout] 2026-04-23T03:20:14.662462Z 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: 1, sequence_number: 4, recv_next_sequence: 1 }, payload: b"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))" } [INFO] [stdout] 2026-04-23T03:20:14.665653Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=4092213815 seq=0 payload_len=12 [INFO] [stdout] 2026-04-23T03:20:14.665695Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=4092213815 remote_addr=127.0.0.1:50677 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 4089135908, 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-04-23T03:20:14.665732Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=4092213815 [INFO] [stdout] 2026-04-23T03:20:14.665745Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=4092213815 count=1 [INFO] [stdout] 2026-04-23T03:20:14.665767Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4092213815 state=Established [INFO] [stdout] 2026-04-23T03:20:14.665688Z 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: 1, sequence_number: 5, recv_next_sequence: 1 }, payload: b"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))" } [INFO] [stdout] test socket::event_loop::routing::tests::test_forward_cached_frames_success ... ok [INFO] [stdout] 2026-04-23T03:20:14.665876Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:53259 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.665813Z 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: 1, sequence_number: 6, recv_next_sequence: 1 }, payload: b"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))" } [INFO] [stdout] 2026-04-23T03:20:14.665998Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.665948Z 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: 1, sequence_number: 7, recv_next_sequence: 1 }, payload: b"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))" } [INFO] [stdout] 2026-04-23T03:20:14.666083Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.666099Z 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-04-23T03:20:14.666118Z 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-04-23T03:20:14.666070Z 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: 1, sequence_number: 8, recv_next_sequence: 1 }, payload: b"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))" } [INFO] [stdout] 2026-04-23T03:20:14.666142Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=123 addr=127.0.0.1:8080 [INFO] [stdout] 2026-04-23T03:20:14.666158Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=42 state=Established [INFO] [stdout] 2026-04-23T03:20:14.666172Z DEBUG kestrel_protocol::socket::event_loop::routing: 成功转发缓存的早到帧 | Successfully forwarded cached early arrival frames cid=123 cache_key=123 count=1 [INFO] [stdout] 2026-04-23T03:20:14.666191Z 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-04-23T03:20:14.666256Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.665915Z  INFO kestrel_protocol::core::tests::state: First connection terminated on server. [INFO] [stdout] 2026-04-23T03:20:14.666390Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.666384Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=4 slot_index=496 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.666416Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=4 entry_id=4 connection_id=2066680257 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-04-23T03:20:14.666429Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.666455Z 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-04-23T03:20:14.666444Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=143 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.666482Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:53259 frame_count=1 bytes=29 [INFO] [stdout] 2026-04-23T03:20:14.666507Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=143 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.666535Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.666545Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.666525Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.666559Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=143 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.666585Z 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-04-23T03:20:14.666588Z 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-04-23T03:20:14.665802Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:50677 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.666586Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=2066680257 addr=127.0.0.1:55636 [INFO] [stdout] 2026-04-23T03:20:14.666638Z DEBUG kestrel_protocol::socket::event_loop::routing: 相同地址存在旧连接,移除旧连接 | Old connection exists for same address, removing old connection old_cid=2554334189 new_cid=2066680257 addr=127.0.0.1:55636 [INFO] [stdout] 2026-04-23T03:20:14.666649Z  INFO kestrel_protocol::core::tests::state: [Server] Received client message [INFO] [stdout] 2026-04-23T03:20:14.666662Z DEBUG kestrel_protocol::socket::event_loop::routing: 移除连接的地址映射 | Removed address mapping for connection cid=2554334189 addr=127.0.0.1:55636 [INFO] [stdout] 2026-04-23T03:20:14.666679Z DEBUG kestrel_protocol::socket::event_loop::routing: 清理连接状态完成,CID现在处于 draining 状态 | Cleaned up connection state. CID is now in draining state. cid=2554334189 [INFO] [stdout] 2026-04-23T03:20:14.666681Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:50677 frame_count=1 bytes=29 [INFO] [stdout] 2026-04-23T03:20:14.666695Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=2066680257 addr=127.0.0.1:55636 [INFO] [stdout] 2026-04-23T03:20:14.666740Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for outbound connection addr=127.0.0.1:55636 cid=2066680257 [INFO] [stdout] 2026-04-23T03:20:14.666742Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=4092213815 [INFO] [stdout] 2026-04-23T03:20:14.666779Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.666773Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2066680257 remote_addr=127.0.0.1:55636 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 2066680257 } } [INFO] [stdout] 2026-04-23T03:20:14.666801Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2066680257 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.666799Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=4092213815 remote_addr=127.0.0.1:50677 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 4089135908, payload_length: 12, recv_window_size: 256, timestamp: 50, sequence_number: 1, recv_next_sequence: 1 }, payload: b"hello_client" } [INFO] [stdout] 2026-04-23T03:20:14.666833Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4092213815 state=Established [INFO] [stdout] 2026-04-23T03:20:14.666836Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:55636 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.666849Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=144 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.666872Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:50677 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.666875Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:55636 frame_count=1 bytes=10 [INFO] [stdout] 2026-04-23T03:20:14.666876Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=144 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.666905Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.666909Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:50677 frame_count=1 bytes=33 [INFO] [stdout] 2026-04-23T03:20:14.666916Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.666935Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=144 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.666955Z  INFO kestrel_protocol::core::tests::state: Second connection established. [INFO] [stdout] 2026-04-23T03:20:14.666948Z 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-04-23T03:20:14.666984Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:53259 frame_count=1 bytes=10 [INFO] [stdout] 2026-04-23T03:20:14.666988Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=144 [INFO] [stdout] 2026-04-23T03:20:14.667003Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:43015 frame_count=1 bytes=29 [INFO] [stdout] 2026-04-23T03:20:14.667011Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=144 state=Established [INFO] [stdout] 2026-04-23T03:20:14.667031Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:55636 frame_count=1 bytes=29 [INFO] [stdout] 2026-04-23T03:20:14.667049Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:43015 frame_count=1 bytes=33 [INFO] [stdout] 2026-04-23T03:20:14.667076Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:53259 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.667097Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:53259 [INFO] [stdout] 2026-04-23T03:20:14.667099Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.667105Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=4089135908 [INFO] [stdout] 2026-04-23T03:20:14.667097Z 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-04-23T03:20:14.667114Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=2837016166 [INFO] [stdout] 2026-04-23T03:20:14.667128Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4089135908 state=Established [INFO] [stdout] 2026-04-23T03:20:14.667135Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=44 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.667150Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2837016166 remote_addr=127.0.0.1:53259 [INFO] [stdout] 2026-04-23T03:20:14.667164Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:43015 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.667169Z 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-04-23T03:20:14.667181Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.667190Z 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-04-23T03:20:14.667207Z 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-04-23T03:20:14.667203Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:55636 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.667218Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=44 peer_cid=144 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.667227Z 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-04-23T03:20:14.667244Z 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-04-23T03:20:14.667260Z 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-04-23T03:20:14.667266Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.667275Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=44 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.667286Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.667306Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=2837016166 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.667324Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.667337Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=44 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.667365Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2066680257 frame=Ack { header: ShortHeader { command: Ack, connection_id: 2554334189, 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-04-23T03:20:14.667377Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=44 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.667392Z 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: 2554334189, 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-04-23T03:20:14.667397Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=44 peer_cid=144 [INFO] [stdout] 2026-04-23T03:20:14.667413Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=2066680257 recv_next_seq=0 recv_window=255 payload_len=8 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.667417Z 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: 7, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.667432Z  WARN kestrel_protocol::core::endpoint::processing::processors::ack: Ignoring ACK frame in unexpected state cid=2066680257 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.667440Z TRACE kestrel_protocol::core::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: 7, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.667455Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2066680257 [INFO] [stdout] 2026-04-23T03:20:14.667460Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=44 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.667471Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2066680257 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.667476Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=44 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.667501Z 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: 1, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.667527Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=2837016166 addr=127.0.0.1:53259 [INFO] [stdout] 2026-04-23T03:20:14.667538Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=44 [INFO] [stdout] 2026-04-23T03:20:14.667547Z DEBUG kestrel_protocol::socket::event_loop::routing: 相同地址存在旧连接,移除旧连接 | Old connection exists for same address, removing old connection old_cid=1868885191 new_cid=2837016166 addr=127.0.0.1:53259 [INFO] [stdout] 2026-04-23T03:20:14.667553Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=44 count=1 [INFO] [stdout] 2026-04-23T03:20:14.667588Z DEBUG kestrel_protocol::socket::event_loop::routing: 移除连接的地址映射 | Removed address mapping for connection cid=1868885191 addr=127.0.0.1:53259 [INFO] [stdout] 2026-04-23T03:20:14.667602Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=44 state=Established [INFO] [stdout] 2026-04-23T03:20:14.667606Z DEBUG kestrel_protocol::socket::event_loop::routing: 清理连接状态完成,CID现在处于 draining 状态 | Cleaned up connection state. CID is now in draining state. cid=1868885191 [INFO] [stdout] 2026-04-23T03:20:14.667628Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=2837016166 addr=127.0.0.1:53259 [INFO] [stdout] 2026-04-23T03:20:14.667645Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:53259 cid=2837016166 [INFO] [stdout] 2026-04-23T03:20:14.667676Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:53259 cid=2837016166 [INFO] [stdout] 2026-04-23T03:20:14.667692Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2837016166 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.667720Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=44 [INFO] [stdout] 2026-04-23T03:20:14.667728Z  INFO kestrel_protocol::core::tests::state: Accepted second connection from 127.0.0.1:53259 [INFO] [stdout] 2026-04-23T03:20:14.667749Z  INFO kestrel_protocol::core::tests::state: Sent ack to trigger SYN-ACK for connection B. [INFO] [stdout] 2026-04-23T03:20:14.667749Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.666316Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.667803Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=143 [INFO] [stdout] 2026-04-23T03:20:14.667807Z 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-04-23T03:20:14.667825Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=143 state=Established [INFO] [stdout] 2026-04-23T03:20:14.667881Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=121 [INFO] [stdout] 2026-04-23T03:20:14.667899Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=121 state=Established [INFO] [stdout] 2026-04-23T03:20:14.667906Z 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-04-23T03:20:14.667929Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=21 [INFO] [stdout] 2026-04-23T03:20:14.667946Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=21 state=Established [INFO] [stdout] 2026-04-23T03:20:14.667945Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=37 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.667968Z 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-04-23T03:20:14.667987Z 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-04-23T03:20:14.667998Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=14 slots_to_advance=1 max_advance=1 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.668005Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=37 peer_cid=137 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.668045Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=122 [INFO] [stdout] 2026-04-23T03:20:14.668055Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.668064Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=122 state=Established [INFO] [stdout] 2026-04-23T03:20:14.668075Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.668097Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=22 [INFO] [stdout] 2026-04-23T03:20:14.668112Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.668116Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=22 state=Established [INFO] [stdout] 2026-04-23T03:20:14.668125Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=37 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.668144Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=37 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.668149Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=123 [INFO] [stdout] 2026-04-23T03:20:14.668162Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=37 peer_cid=137 [INFO] [stdout] 2026-04-23T03:20:14.668166Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=123 state=Established [INFO] [stdout] 2026-04-23T03:20:14.668180Z 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: 13, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.668212Z TRACE kestrel_protocol::core::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: 13, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.668226Z 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-04-23T03:20:14.668232Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=37 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.668250Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=37 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.668251Z 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-04-23T03:20:14.668270Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=40 peer_cid=140 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.668274Z 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: 22, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.668309Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=37 [INFO] [stdout] 2026-04-23T03:20:14.668316Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.668323Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=37 count=1 [INFO] [stdout] 2026-04-23T03:20:14.668334Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.668349Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=37 state=Established [INFO] [stdout] 2026-04-23T03:20:14.668368Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.668380Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=40 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.668398Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=40 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.668414Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=40 peer_cid=140 [INFO] [stdout] 2026-04-23T03:20:14.668430Z 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: 6, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.668461Z TRACE kestrel_protocol::core::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: 6, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.668480Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=40 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.668495Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=40 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.668519Z 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: 14, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.668550Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=40 [INFO] [stdout] 2026-04-23T03:20:14.668587Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=40 count=1 [INFO] [stdout] 2026-04-23T03:20:14.668558Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.668608Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.668614Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=40 state=Established [INFO] [stdout] 2026-04-23T03:20:14.668621Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-04-23T03:20:14.668632Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-04-23T03:20:14.668642Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-04-23T03:20:14.668653Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-04-23T03:20:14.668663Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-04-23T03:20:14.668662Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=12 slots_to_advance=1 max_advance=1 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.668674Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-04-23T03:20:14.668712Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=12 slots_to_advance=1 max_advance=1 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.668747Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=145 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.668782Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=23 [INFO] [stdout] 2026-04-23T03:20:14.668689Z 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: 2, sequence_number: 0, recv_next_sequence: 1 }, payload: b"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" } [INFO] [stdout] 2026-04-23T03:20:14.668800Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=23 state=Established [INFO] [stdout] 2026-04-23T03:20:14.668816Z 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: 2, sequence_number: 1, recv_next_sequence: 1 }, payload: b"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" } [INFO] [stdout] 2026-04-23T03:20:14.668947Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.668984Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=45 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-04-23T03:20:14.669040Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.668945Z 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: 2, sequence_number: 2, recv_next_sequence: 1 }, payload: b"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" } [INFO] [stdout] 2026-04-23T03:20:14.669077Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.669103Z 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-04-23T03:20:14.669066Z 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: 2, sequence_number: 3, recv_next_sequence: 1 }, payload: b"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" } [INFO] [stdout] 2026-04-23T03:20:14.669164Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.669187Z 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] 2026-04-23T03:20:14.669256Z 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-04-23T03:20:14.669278Z 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-04-23T03:20:14.669294Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=39 peer_cid=139 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.669187Z 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: 2, sequence_number: 4, recv_next_sequence: 1 }, payload: b"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" } [INFO] [stdout] 2026-04-23T03:20:14.669333Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.669350Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.669380Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.669392Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=39 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.669407Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=39 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.669320Z 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: 2, sequence_number: 5, recv_next_sequence: 1 }, payload: b"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" } [INFO] [stdout] 2026-04-23T03:20:14.669423Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=39 peer_cid=139 [INFO] [stdout] 2026-04-23T03:20:14.669441Z 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-04-23T03:20:14.669473Z TRACE kestrel_protocol::core::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-04-23T03:20:14.669490Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=39 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.669507Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=39 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.669528Z 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: 20, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.669444Z 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: 2, sequence_number: 6, recv_next_sequence: 1 }, payload: b"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" } [INFO] [stdout] 2026-04-23T03:20:14.667770Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2837016166 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.669596Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2837016166 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.669623Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.669632Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.669646Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=2837016166 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.669658Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2837016166 remote_addr=127.0.0.1:53259 frame_count=2 first_frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 2066680257, source_cid: 2837016166 } } [INFO] [stdout] 2026-04-23T03:20:14.669689Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2837016166 [INFO] [stdout] 2026-04-23T03:20:14.669593Z 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: 2, sequence_number: 7, recv_next_sequence: 1 }, payload: b"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" } [INFO] [stdout] 2026-04-23T03:20:14.669709Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2837016166 state=Established [INFO] [stdout] 2026-04-23T03:20:14.669746Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:53259 frame_count=2 [INFO] [stdout] 2026-04-23T03:20:14.669715Z 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: 2, sequence_number: 8, recv_next_sequence: 1 }, payload: b"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" } [INFO] [stdout] 2026-04-23T03:20:14.669792Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:53259 frame_count=2 bytes=35 [INFO] [stdout] 2026-04-23T03:20:14.669810Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=44 state=Established [INFO] [stdout] 2026-04-23T03:20:14.669897Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:55636 frame_count=2 bytes=35 [INFO] [stdout] 2026-04-23T03:20:14.670051Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=35 peer_cid=135 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.670146Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.667203Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:43015 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.670159Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:55636 frame_count=2 [INFO] [stdout] 2026-04-23T03:20:14.670167Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.670224Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.670220Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2066680257 frame=SynAck { header: LongHeader { command: SynAck, protocol_version: 1, destination_cid: 2066680257, source_cid: 2837016166 } } [INFO] [stdout] 2026-04-23T03:20:14.670239Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=35 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.670246Z 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: 2066680257, source_cid: 2837016166 } } [INFO] [stdout] 2026-04-23T03:20:14.670238Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=4089135908 frame=Ack { header: ShortHeader { command: Ack, connection_id: 4089135908, 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-04-23T03:20:14.670258Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=35 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.670263Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=2066680257 peer_cid=2837016166 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.670276Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=35 peer_cid=135 [INFO] [stdout] 2026-04-23T03:20:14.670272Z 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: 4089135908, 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-04-23T03:20:14.670295Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=35 frame=Push { header: ShortHeader { command: Push, connection_id: 35, payload_length: 4, recv_window_size: 256, timestamp: 14, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.670296Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=4089135908 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.670307Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=4 [INFO] [stdout] 2026-04-23T03:20:14.670320Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=4089135908 [INFO] [stdout] 2026-04-23T03:20:14.670324Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=4 [INFO] [stdout] 2026-04-23T03:20:14.670320Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 35, payload_length: 4, recv_window_size: 256, timestamp: 14, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.670336Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=4089135908 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-04-23T03:20:14.670339Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=35 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.670359Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.670356Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=35 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.670370Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2066680257 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.670374Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.670387Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2066680257 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.670382Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=35 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 135, payload_length: 8, recv_window_size: 255, timestamp: 26, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.670394Z 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-04-23T03:20:14.670404Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=2066680257 peer_cid=2837016166 [INFO] [stdout] 2026-04-23T03:20:14.670414Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=35 [INFO] [stdout] 2026-04-23T03:20:14.670417Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=50 srtt_ms=50 rttvar_ms=25 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.670421Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2066680257 frame=Push { header: ShortHeader { command: Push, connection_id: 2066680257, payload_length: 4, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"ack2" } [INFO] [stdout] 2026-04-23T03:20:14.670429Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=35 count=1 [INFO] [stdout] 2026-04-23T03:20:14.670437Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.670442Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2066680257, payload_length: 4, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"ack2" } [INFO] [stdout] 2026-04-23T03:20:14.670455Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=35 state=Established [INFO] [stdout] 2026-04-23T03:20:14.670459Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.670469Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2066680257 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.670485Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2066680257 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.670482Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=4089135908 frame=Push { header: ShortHeader { command: Push, connection_id: 4089135908, payload_length: 12, recv_window_size: 256, timestamp: 50, sequence_number: 1, recv_next_sequence: 1 }, payload: b"hello_client" } [INFO] [stdout] 2026-04-23T03:20:14.670507Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 4089135908, payload_length: 12, recv_window_size: 256, timestamp: 50, sequence_number: 1, recv_next_sequence: 1 }, payload: b"hello_client" } [INFO] [stdout] 2026-04-23T03:20:14.670507Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2066680257 remote_addr=127.0.0.1:55636 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 2837016166, 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-04-23T03:20:14.670525Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=4089135908 seq=1 payload_len=12 state=Established [INFO] [stdout] 2026-04-23T03:20:14.669903Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=124 [INFO] [stdout] 2026-04-23T03:20:14.670540Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2066680257 [INFO] [stdout] 2026-04-23T03:20:14.670542Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=4089135908 seq=1 payload_len=12 [INFO] [stdout] 2026-04-23T03:20:14.670588Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=4089135908 remote_addr=127.0.0.1:43015 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 4092213815, 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-04-23T03:20:14.670628Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=4089135908 [INFO] [stdout] 2026-04-23T03:20:14.670644Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=4089135908 count=1 [INFO] [stdout] 2026-04-23T03:20:14.670672Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4089135908 state=Established [INFO] [stdout] 2026-04-23T03:20:14.670710Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:43015 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.670723Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=35 [INFO] [stdout] 2026-04-23T03:20:14.670725Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.670750Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.670748Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:43015 frame_count=1 bytes=29 [INFO] [stdout] 2026-04-23T03:20:14.670755Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=146 remote_addr=127.0.0.1:9045 [INFO] [stdout] 2026-04-23T03:20:14.670764Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.670777Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.670788Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-04-23T03:20:14.670802Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] test socket::event_loop::routing::tests::test_cleanup_expired_frames ... ok [INFO] [stdout] 2026-04-23T03:20:14.670813Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-04-23T03:20:14.670826Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-04-23T03:20:14.670837Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-04-23T03:20:14.670847Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-04-23T03:20:14.670850Z  INFO kestrel_protocol::core::tests::state: [Client] Received server response [INFO] [stdout] test socket::event_loop::routing::tests::test_early_frame_caching ... ok [INFO] [stdout] test socket::event_loop::routing::tests::test_multiple_clients_zero_rtt_isolation ... ok [INFO] [stdout] 2026-04-23T03:20:14.670896Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:50677 frame_count=1 bytes=29 [INFO] [stdout] test packet::tests::test_frame_decode_no_header_pollution ... ok [INFO] [stdout] 2026-04-23T03:20:14.670958Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=4089135908 [INFO] [stdout] 2026-04-23T03:20:14.670960Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.670979Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.670555Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2066680257 count=1 [INFO] [stdout] 2026-04-23T03:20:14.670999Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=4089135908 remote_addr=127.0.0.1:43015 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 4092213815, payload_length: 14, recv_window_size: 256, timestamp: 114, sequence_number: 1, recv_next_sequence: 2 }, payload: b"goodbye_server" } [INFO] [stdout] 2026-04-23T03:20:14.670862Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=35 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 135, payload_length: 1200, recv_window_size: 256, timestamp: 27, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"" } [INFO] [stdout] 2026-04-23T03:20:14.671054Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.671056Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=39 [INFO] [stdout] 2026-04-23T03:20:14.671073Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=39 count=1 [INFO] [stdout] 2026-04-23T03:20:14.671076Z 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-04-23T03:20:14.671096Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=39 state=Established [INFO] [stdout] 2026-04-23T03:20:14.671096Z 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-04-23T03:20:14.671115Z 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-04-23T03:20:14.671129Z 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-04-23T03:20:14.671140Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.671168Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.671214Z 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-04-23T03:20:14.671076Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=35 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 135, payload_length: 1200, recv_window_size: 256, timestamp: 27, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"" } [INFO] [stdout] 2026-04-23T03:20:14.671250Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.671296Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.671400Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.671414Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.671441Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=147 remote_addr=127.0.0.1:9046 [INFO] [stdout] 2026-04-23T03:20:14.671291Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=35 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 135, payload_length: 1200, recv_window_size: 256, timestamp: 27, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"" } [INFO] [stdout] 2026-04-23T03:20:14.671463Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.671484Z 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-04-23T03:20:14.671508Z 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-04-23T03:20:14.671535Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=123 addr=127.0.0.1:8080 [INFO] [stdout] 2026-04-23T03:20:14.671558Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=146 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.671585Z DEBUG kestrel_protocol::socket::event_loop::routing: 成功转发缓存的早到帧 | Successfully forwarded cached early arrival frames cid=123 cache_key=9681000149947289835 count=1 [INFO] [stdout] 2026-04-23T03:20:14.671607Z 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-04-23T03:20:14.671626Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.671658Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.671684Z 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-04-23T03:20:14.671711Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.671749Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=46 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-04-23T03:20:14.671757Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.671781Z 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-04-23T03:20:14.671795Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.671823Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.671847Z 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-04-23T03:20:14.671859Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.671855Z TRACE mio::poll: registering event source with poller: token=Token(128929818029312), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.671892Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=148 remote_addr=127.0.0.1:9047 [INFO] [stdout] 2026-04-23T03:20:14.671918Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.671944Z 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-04-23T03:20:14.671996Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=37 [INFO] [stdout] 2026-04-23T03:20:14.672022Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.672025Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-04-23T03:20:14.672035Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-04-23T03:20:14.672044Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.672058Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.672068Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-04-23T03:20:14.672071Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.672072Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.672079Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-04-23T03:20:14.672085Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-04-23T03:20:14.672090Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-04-23T03:20:14.672096Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.672101Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-04-23T03:20:14.671033Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4089135908 state=Established [INFO] [stdout] 2026-04-23T03:20:14.672113Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-04-23T03:20:14.672114Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:44937) [INFO] [stdout] 2026-04-23T03:20:14.672124Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-04-23T03:20:14.672156Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:50677 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.672235Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:43015 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.672139Z 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: 26, sequence_number: 0, recv_next_sequence: 1 }, payload: b"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" } [INFO] [stdout] 2026-04-23T03:20:14.672270Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=4092213815 frame=Ack { header: ShortHeader { command: Ack, connection_id: 4092213815, 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-04-23T03:20:14.672294Z 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: 4092213815, 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-04-23T03:20:14.672315Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=4092213815 recv_next_seq=1 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.672323Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=147 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.672342Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=4092213815 [INFO] [stdout] 2026-04-23T03:20:14.672356Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=4092213815 recv_next_seq=1 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-04-23T03:20:14.672392Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-04-23T03:20:14.672298Z 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: 26, sequence_number: 1, recv_next_sequence: 1 }, payload: b"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" } [INFO] [stdout] test socket::event_loop::routing::tests::test_multiple_early_frames_caching ... ok2026-04-23T03:20:14.672441Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.672408Z 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] [INFO] [stdout] 2026-04-23T03:20:14.672473Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=14 srtt_ms=14 rttvar_ms=5 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.672486Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] test socket::event_loop::routing::tests::test_zero_rtt_early_frames_caching ... ok [INFO] [stdout] 2026-04-23T03:20:14.672491Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.672540Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] test socket::event_loop::routing::tests::test_non_push_frames_not_cached ... ok [INFO] [stdout] 2026-04-23T03:20:14.672453Z 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: 26, sequence_number: 2, recv_next_sequence: 1 }, payload: b"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" } [INFO] [stdout] 2026-04-23T03:20:14.672558Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=4092213815 [INFO] [stdout] 2026-04-23T03:20:14.672621Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4092213815 state=Established [INFO] [stdout] 2026-04-23T03:20:14.672660Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:43015 frame_count=1 bytes=35 [INFO] [stdout] 2026-04-23T03:20:14.672688Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.671021Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2066680257 state=Established [INFO] [stdout] 2026-04-23T03:20:14.672755Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:50677 frame_count=1 bytes=35 [INFO] [stdout] 2026-04-23T03:20:14.672796Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:55636 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.672803Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:50677 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.672847Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:55636 frame_count=1 bytes=29 [INFO] [stdout] 2026-04-23T03:20:14.672854Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=4092213815 frame=Push { header: ShortHeader { command: Push, connection_id: 4092213815, payload_length: 14, recv_window_size: 256, timestamp: 114, sequence_number: 1, recv_next_sequence: 2 }, payload: b"goodbye_server" } [INFO] [stdout] 2026-04-23T03:20:14.672880Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 4092213815, payload_length: 14, recv_window_size: 256, timestamp: 114, sequence_number: 1, recv_next_sequence: 2 }, payload: b"goodbye_server" } [INFO] [stdout] 2026-04-23T03:20:14.672897Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=4092213815 seq=1 payload_len=14 state=Established [INFO] [stdout] 2026-04-23T03:20:14.672912Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=4092213815 seq=1 payload_len=14 [INFO] [stdout] 2026-04-23T03:20:14.672934Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=4092213815 remote_addr=127.0.0.1:50677 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 4089135908, 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-04-23T03:20:14.672951Z  INFO kestrel_protocol::core::tests::state: Received server ack for second connection [INFO] [stdout] 2026-04-23T03:20:14.672965Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=4092213815 [INFO] [stdout] 2026-04-23T03:20:14.672978Z  INFO kestrel_protocol::core::tests::state: Data sent on second connection. [INFO] [stdout] 2026-04-23T03:20:14.672978Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=4092213815 count=1 [INFO] [stdout] 2026-04-23T03:20:14.672999Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4092213815 state=Established [INFO] [stdout] 2026-04-23T03:20:14.673015Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:53259 frame_count=1 bytes=29 [INFO] [stdout] 2026-04-23T03:20:14.673030Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:50677 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.673051Z TRACE mio::poll: registering event source with poller: token=Token(128929817980160), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.673066Z  INFO kestrel_protocol::core::tests::state: [Server] Received second client message [INFO] [stdout] 2026-04-23T03:20:14.673075Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2066680257 [INFO] [stdout] 2026-04-23T03:20:14.673099Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.673104Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:50677 frame_count=1 bytes=29 [INFO] [stdout] 2026-04-23T03:20:14.673120Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2066680257 remote_addr=127.0.0.1:55636 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 2837016166, 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-04-23T03:20:14.673155Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=4092213815 [INFO] [stdout] 2026-04-23T03:20:14.673159Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2066680257 state=Established [INFO] [stdout] 2026-04-23T03:20:14.673174Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.673191Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=4092213815 remote_addr=127.0.0.1:50677 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 4089135908, payload_length: 14, recv_window_size: 256, timestamp: 78, sequence_number: 2, recv_next_sequence: 2 }, payload: b"goodbye_client" } [INFO] [stdout] 2026-04-23T03:20:14.673213Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:53259 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.673222Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4092213815 state=Established [INFO] [stdout] 2026-04-23T03:20:14.673255Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:50677 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.673263Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:55636 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.673284Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:50677 frame_count=1 bytes=35 [INFO] [stdout] 2026-04-23T03:20:14.673302Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2837016166 frame=Ack { header: ShortHeader { command: Ack, connection_id: 2837016166, 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-04-23T03:20:14.673329Z 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: 2837016166, 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-04-23T03:20:14.673352Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=2837016166 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.673365Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:43015 frame_count=1 bytes=29 [INFO] [stdout] 2026-04-23T03:20:14.673375Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2837016166 [INFO] [stdout] 2026-04-23T03:20:14.673392Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=2837016166 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-04-23T03:20:14.673401Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:43015 frame_count=1 bytes=35 [INFO] [stdout] 2026-04-23T03:20:14.673424Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.673442Z 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-04-23T03:20:14.673455Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=4089135908 [INFO] [stdout] 2026-04-23T03:20:14.673462Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=12 srtt_ms=12 rttvar_ms=6 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.673474Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4089135908 state=Established [INFO] [stdout] 2026-04-23T03:20:14.673480Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.673491Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.673509Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2837016166 [INFO] [stdout] 2026-04-23T03:20:14.673507Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:43015 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.673528Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2837016166 state=Established [INFO] [stdout] 2026-04-23T03:20:14.673534Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:43015 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.673590Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:55636 frame_count=1 bytes=40 [INFO] [stdout] 2026-04-23T03:20:14.673590Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=4089135908 frame=Ack { header: ShortHeader { command: Ack, connection_id: 4089135908, 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-04-23T03:20:14.673663Z 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: 4089135908, 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-04-23T03:20:14.673689Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:53259 frame_count=1 bytes=40 [INFO] [stdout] 2026-04-23T03:20:14.673694Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=4089135908 recv_next_seq=1 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.673732Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=4089135908 [INFO] [stdout] 2026-04-23T03:20:14.673746Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=4089135908 recv_next_seq=1 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-04-23T03:20:14.673751Z 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-04-23T03:20:14.673775Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-04-23T03:20:14.673791Z 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-04-23T03:20:14.673800Z 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-04-23T03:20:14.673810Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=50 srtt_ms=50 rttvar_ms=18 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.673826Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.673837Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.673842Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:53259 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.673838Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.673857Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=4089135908 frame=Push { header: ShortHeader { command: Push, connection_id: 4089135908, payload_length: 14, recv_window_size: 256, timestamp: 78, sequence_number: 2, recv_next_sequence: 2 }, payload: b"goodbye_client" } [INFO] [stdout] 2026-04-23T03:20:14.673881Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 4089135908, payload_length: 14, recv_window_size: 256, timestamp: 78, sequence_number: 2, recv_next_sequence: 2 }, payload: b"goodbye_client" } [INFO] [stdout] 2026-04-23T03:20:14.673893Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2837016166 frame=Push { header: ShortHeader { command: Push, connection_id: 2837016166, 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-04-23T03:20:14.673902Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=4089135908 seq=2 payload_len=14 state=Established [INFO] [stdout] 2026-04-23T03:20:14.673920Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=4089135908 seq=2 payload_len=14 [INFO] [stdout] 2026-04-23T03:20:14.673922Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 2837016166, 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-04-23T03:20:14.673944Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2837016166 seq=0 payload_len=19 state=Established [INFO] [stdout] 2026-04-23T03:20:14.673943Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=4089135908 remote_addr=127.0.0.1:43015 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 4092213815, 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-04-23T03:20:14.673962Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2837016166 seq=0 payload_len=19 [INFO] [stdout] 2026-04-23T03:20:14.673974Z TRACE mio::poll: registering event source with poller: token=Token(128929616758400), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.673980Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=4089135908 [INFO] [stdout] 2026-04-23T03:20:14.673994Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=4089135908 count=1 [INFO] [stdout] 2026-04-23T03:20:14.673988Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2837016166 remote_addr=127.0.0.1:53259 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 2066680257, 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-04-23T03:20:14.674020Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4089135908 state=Established [INFO] [stdout] 2026-04-23T03:20:14.674023Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2837016166 [INFO] [stdout] 2026-04-23T03:20:14.674043Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2837016166 count=1 [INFO] [stdout] 2026-04-23T03:20:14.674060Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:43015 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.674068Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2837016166 state=Established [INFO] [stdout] 2026-04-23T03:20:14.674096Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:43015 frame_count=1 bytes=29 [INFO] [stdout] 2026-04-23T03:20:14.674107Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:53259 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.674149Z  INFO kestrel_protocol::core::tests::state: Second connection on server verified. [INFO] [stdout] 2026-04-23T03:20:14.674173Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.674190Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-04-23T03:20:14.674195Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:53259 frame_count=1 bytes=29 [INFO] [stdout] 2026-04-23T03:20:14.674222Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.674192Z  INFO kestrel_protocol::core::tests::state: [Client] Communication test completed successfully [INFO] [stdout] 2026-04-23T03:20:14.674241Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:41206) [INFO] [stdout] 2026-04-23T03:20:14.674276Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-04-23T03:20:14.674272Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:50677 frame_count=1 bytes=29 [INFO] [stdout] 2026-04-23T03:20:14.674292Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-04-23T03:20:14.674320Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.674325Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:50677 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.674326Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:55636 frame_count=1 bytes=29 [INFO] [stdout] 2026-04-23T03:20:14.674378Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=4092213815 frame=Ack { header: ShortHeader { command: Ack, connection_id: 4092213815, 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-04-23T03:20:14.670639Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=124 state=Established [INFO] [stdout] 2026-04-23T03:20:14.674435Z TRACE mio::poll: registering event source with poller: token=Token(128929616745600), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.674426Z 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: 4092213815, 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-04-23T03:20:14.674461Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=4092213815 recv_next_seq=2 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.674487Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=4092213815 [INFO] [stdout] 2026-04-23T03:20:14.674500Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=4092213815 recv_next_seq=2 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-04-23T03:20:14.674527Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-04-23T03:20:14.672608Z 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: 26, sequence_number: 3, recv_next_sequence: 1 }, payload: b"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" } [INFO] [stdout] 2026-04-23T03:20:14.674542Z 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] 2026-04-23T03:20:14.674586Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=136 srtt_ms=29 rttvar_ms=34 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.674610Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-04-23T03:20:14.674622Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-04-23T03:20:14.674644Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=4092213815 [INFO] [stdout] 2026-04-23T03:20:14.674664Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4092213815 state=Established [INFO] [stdout] 2026-04-23T03:20:14.674667Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.674554Z 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: 26, sequence_number: 4, recv_next_sequence: 1 }, payload: b"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" } [INFO] [stdout] 2026-04-23T03:20:14.674682Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-04-23T03:20:14.674692Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.674704Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:36049) [INFO] [stdout] 2026-04-23T03:20:14.674739Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-04-23T03:20:14.674765Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-04-23T03:20:14.674774Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.674697Z 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: 26, sequence_number: 5, recv_next_sequence: 1 }, payload: b"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" } [INFO] [stdout] 2026-04-23T03:20:14.674863Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.674802Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.674893Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=47 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-04-23T03:20:14.674900Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=4089135908 [INFO] [stdout] 2026-04-23T03:20:14.674843Z 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: 26, sequence_number: 6, recv_next_sequence: 1 }, payload: b"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" } [INFO] [stdout] 2026-04-23T03:20:14.674956Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.674994Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.675018Z 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] 2026-04-23T03:20:14.675043Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=4092213815 [INFO] [stdout] 2026-04-23T03:20:14.674964Z 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: 26, sequence_number: 7, recv_next_sequence: 1 }, payload: b"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" } [INFO] [stdout] 2026-04-23T03:20:14.675082Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.675112Z 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-04-23T03:20:14.675117Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-04-23T03:20:14.675086Z 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: 26, sequence_number: 8, recv_next_sequence: 1 }, payload: b"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" } [INFO] [stdout] 2026-04-23T03:20:14.675173Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-04-23T03:20:14.675170Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=37 state=Established [INFO] [stdout] 2026-04-23T03:20:14.675192Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=127 [INFO] [stdout] 2026-04-23T03:20:14.675224Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=127 state=Established [INFO] [stdout] 2026-04-23T03:20:14.675259Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=27 [INFO] [stdout] 2026-04-23T03:20:14.675274Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=27 state=Established [INFO] [stdout] 2026-04-23T03:20:14.675297Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=146 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.675336Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=146 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.675343Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=38 [INFO] [stdout] 2026-04-23T03:20:14.675363Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.675367Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.675374Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.675380Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.675388Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=146 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.675394Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.675405Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-04-23T03:20:14.675403Z 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-04-23T03:20:14.675415Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-04-23T03:20:14.675426Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-04-23T03:20:14.675435Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-04-23T03:20:14.675435Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=146 [INFO] [stdout] 2026-04-23T03:20:14.675447Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-04-23T03:20:14.675459Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-04-23T03:20:14.675457Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=146 state=Established [INFO] [stdout] 2026-04-23T03:20:14.675525Z 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-04-23T03:20:14.675472Z 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: 24, sequence_number: 0, recv_next_sequence: 1 }, payload: b"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" } [INFO] [stdout] 2026-04-23T03:20:14.675561Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=46 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.675604Z 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-04-23T03:20:14.675622Z 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-04-23T03:20:14.675639Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=46 peer_cid=146 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.675688Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.675605Z 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: 24, sequence_number: 1, recv_next_sequence: 1 }, payload: b"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" } [INFO] [stdout] 2026-04-23T03:20:14.675707Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.675745Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.675758Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=46 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.675776Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=46 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.675711Z 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: 24, sequence_number: 2, recv_next_sequence: 1 }, payload: b"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" } [INFO] [stdout] 2026-04-23T03:20:14.675795Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=46 peer_cid=146 [INFO] [stdout] 2026-04-23T03:20:14.675814Z 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: 4, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.675836Z TRACE kestrel_protocol::core::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: 4, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.675855Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=46 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.675871Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=46 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.675810Z 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: 24, sequence_number: 3, recv_next_sequence: 1 }, payload: b"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" } [INFO] [stdout] 2026-04-23T03:20:14.675895Z 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: 4, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.675927Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=46 [INFO] [stdout] 2026-04-23T03:20:14.675941Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=46 count=1 [INFO] [stdout] 2026-04-23T03:20:14.675966Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=46 state=Established [INFO] [stdout] 2026-04-23T03:20:14.675910Z 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: 24, sequence_number: 4, recv_next_sequence: 1 }, payload: b"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" } [INFO] [stdout] 2026-04-23T03:20:14.676008Z 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: 24, sequence_number: 5, recv_next_sequence: 1 }, payload: b"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" } [INFO] [stdout] 2026-04-23T03:20:14.676130Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=46 [INFO] [stdout] 2026-04-23T03:20:14.676158Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.676172Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.676184Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.676106Z 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: 24, sequence_number: 6, recv_next_sequence: 1 }, payload: b"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" } [INFO] [stdout] 2026-04-23T03:20:14.676196Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-04-23T03:20:14.676217Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-04-23T03:20:14.676229Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-04-23T03:20:14.676240Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-04-23T03:20:14.676250Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-04-23T03:20:14.676261Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-04-23T03:20:14.676218Z 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: 24, sequence_number: 7, recv_next_sequence: 1 }, payload: b"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" } [INFO] [stdout] 2026-04-23T03:20:14.676275Z 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: 4, sequence_number: 0, recv_next_sequence: 1 }, payload: b"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" } [INFO] [stdout] 2026-04-23T03:20:14.676325Z 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: 24, sequence_number: 8, recv_next_sequence: 1 }, payload: b"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" } [INFO] [stdout] 2026-04-23T03:20:14.676402Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=38 state=Established [INFO] [stdout] 2026-04-23T03:20:14.676484Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=41 [INFO] [stdout] 2026-04-23T03:20:14.676407Z 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: 4, sequence_number: 1, recv_next_sequence: 1 }, payload: b"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" } [INFO] [stdout] 2026-04-23T03:20:14.676523Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.676537Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.676549Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.676560Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-04-23T03:20:14.676592Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-04-23T03:20:14.676603Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-04-23T03:20:14.676616Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-04-23T03:20:14.676627Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-04-23T03:20:14.676638Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-04-23T03:20:14.671485Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=35 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 135, payload_length: 1200, recv_window_size: 256, timestamp: 27, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"" } [INFO] [stdout] 2026-04-23T03:20:14.676652Z 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: 21, sequence_number: 0, recv_next_sequence: 1 }, payload: b"((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((" } [INFO] [stdout] 2026-04-23T03:20:14.676765Z 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: 21, sequence_number: 1, recv_next_sequence: 1 }, payload: b"((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((" } [INFO] [stdout] 2026-04-23T03:20:14.676709Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=35 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 135, payload_length: 1200, recv_window_size: 256, timestamp: 27, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"" } [INFO] [stdout] 2026-04-23T03:20:14.676879Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.676902Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=FinWait [INFO] [stdout] 2026-04-23T03:20:14.676868Z 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: 21, sequence_number: 2, recv_next_sequence: 1 }, payload: b"((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((" } [INFO] [stdout] 2026-04-23T03:20:14.676975Z 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: 21, sequence_number: 3, recv_next_sequence: 1 }, payload: b"((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((" } [INFO] [stdout] 2026-04-23T03:20:14.676900Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=35 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 135, payload_length: 1200, recv_window_size: 256, timestamp: 27, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"" } [INFO] [stdout] 2026-04-23T03:20:14.677082Z 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: 21, sequence_number: 4, recv_next_sequence: 1 }, payload: b"((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((" } [INFO] [stdout] 2026-04-23T03:20:14.677095Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=35 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 135, payload_length: 1200, recv_window_size: 256, timestamp: 27, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"" } [INFO] [stdout] 2026-04-23T03:20:14.674441Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.677474Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.677505Z 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-04-23T03:20:14.677600Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=24 [INFO] [stdout] 2026-04-23T03:20:14.677627Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=24 state=Established [INFO] [stdout] 2026-04-23T03:20:14.677681Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=125 [INFO] [stdout] 2026-04-23T03:20:14.677713Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=125 state=Established [INFO] [stdout] 2026-04-23T03:20:14.677752Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=25 [INFO] [stdout] 2026-04-23T03:20:14.677770Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=25 state=Established [INFO] [stdout] 2026-04-23T03:20:14.677933Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=126 [INFO] [stdout] 2026-04-23T03:20:14.677959Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=126 state=Established [INFO] [stdout] 2026-04-23T03:20:14.678013Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=26 [INFO] [stdout] 2026-04-23T03:20:14.678032Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=26 state=Established [INFO] [stdout] 2026-04-23T03:20:14.678111Z 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-04-23T03:20:14.678159Z 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-04-23T03:20:14.678250Z 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-04-23T03:20:14.678297Z 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-04-23T03:20:14.678373Z 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-04-23T03:20:14.678409Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=43 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.678429Z 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-04-23T03:20:14.678448Z 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-04-23T03:20:14.678465Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=43 peer_cid=143 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.678513Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.678532Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.678607Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.678623Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=43 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.678641Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=43 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.678659Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=43 peer_cid=143 [INFO] [stdout] 2026-04-23T03:20:14.678677Z 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: 10, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.678699Z TRACE kestrel_protocol::core::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: 10, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.678717Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=43 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.678734Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=43 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.678758Z 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: 15, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.678789Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=43 [INFO] [stdout] 2026-04-23T03:20:14.678803Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=43 count=1 [INFO] [stdout] 2026-04-23T03:20:14.678830Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=43 state=Established [INFO] [stdout] test core::tests::state::test_transport_bidirectional_communication ... ok [INFO] [stdout] 2026-04-23T03:20:14.679011Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.679031Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-04-23T03:20:14.679044Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.679060Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:59159) [INFO] [stdout] 2026-04-23T03:20:14.677673Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-04-23T03:20:14.679144Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.679163Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.679187Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=149 remote_addr=127.0.0.1:9048 [INFO] [stdout] 2026-04-23T03:20:14.674385Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:55636 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.679303Z  INFO kestrel_protocol::socket::tests::rebind: 服务器地址: 127.0.0.1:44937 [INFO] [stdout] 2026-04-23T03:20:14.679306Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2066680257 frame=Ack { header: ShortHeader { command: Ack, connection_id: 2066680257, 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-04-23T03:20:14.679322Z  INFO kestrel_protocol::socket::tests::rebind: 客户端原始地址: 127.0.0.1:59159 [INFO] [stdout] 2026-04-23T03:20:14.679337Z 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: 2066680257, 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-04-23T03:20:14.679357Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=2066680257 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.679376Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2066680257 [INFO] [stdout] 2026-04-23T03:20:14.679402Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=2066680257 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-04-23T03:20:14.679432Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.679448Z 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-04-23T03:20:14.679468Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=124 srtt_ms=124 rttvar_ms=62 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.679487Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.679498Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.679516Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2066680257 [INFO] [stdout] 2026-04-23T03:20:14.679535Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2066680257 state=Established [INFO] [stdout] 2026-04-23T03:20:14.679597Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-04-23T03:20:14.679636Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=1367191249 [INFO] [stdout] 2026-04-23T03:20:14.679675Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=1367191249 remote_addr=127.0.0.1:44937 [INFO] [stdout] 2026-04-23T03:20:14.679726Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.679749Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=1367191249 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.679753Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2554334189 [INFO] [stdout] 2026-04-23T03:20:14.679797Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2066680257 [INFO] [stdout] 2026-04-23T03:20:14.679812Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.679836Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=1367191249 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-04-23T03:20:14.679892Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=1367191249 addr=127.0.0.1:44937 [INFO] [stdout] 2026-04-23T03:20:14.679918Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-04-23T03:20:14.679922Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=1367191249 addr=127.0.0.1:44937 [INFO] [stdout] 2026-04-23T03:20:14.679970Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-04-23T03:20:14.680010Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for outbound connection addr=127.0.0.1:44937 cid=1367191249 [INFO] [stdout] 2026-04-23T03:20:14.680043Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1367191249 remote_addr=127.0.0.1:44937 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 1367191249 } } [INFO] [stdout] 2026-04-23T03:20:14.680080Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1367191249 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.680117Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:44937 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.680160Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:44937 frame_count=1 bytes=10 [INFO] [stdout] 2026-04-23T03:20:14.677191Z 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: 21, sequence_number: 5, recv_next_sequence: 1 }, payload: b"((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((" } [INFO] [stdout] 2026-04-23T03:20:14.674816Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] test core::tests::state::test_address_reuse_after_connection_close ... ok [INFO] [stdout] 2026-04-23T03:20:14.676530Z 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: 4, sequence_number: 2, recv_next_sequence: 1 }, payload: b"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" } [INFO] [stdout] 2026-04-23T03:20:14.680543Z TRACE mio::poll: registering event source with poller: token=Token(128929281119744), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.680597Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=1395186885 [INFO] [stdout] 2026-04-23T03:20:14.680511Z 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: 4, sequence_number: 3, recv_next_sequence: 1 }, payload: b"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" } [INFO] [stdout] 2026-04-23T03:20:14.680662Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=1395186885 remote_addr=127.0.0.1:41206 [INFO] [stdout] 2026-04-23T03:20:14.680740Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.680657Z 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: 4, sequence_number: 4, recv_next_sequence: 1 }, payload: b"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" } [INFO] [stdout] 2026-04-23T03:20:14.680776Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=1395186885 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.680848Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.680870Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=1395186885 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-04-23T03:20:14.680779Z 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: 4, sequence_number: 5, recv_next_sequence: 1 }, payload: b"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" } [INFO] [stdout] 2026-04-23T03:20:14.680935Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=1395186885 addr=127.0.0.1:41206 [INFO] [stdout] 2026-04-23T03:20:14.680942Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-04-23T03:20:14.680971Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=1395186885 addr=127.0.0.1:41206 [INFO] [stdout] 2026-04-23T03:20:14.680806Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-04-23T03:20:14.680907Z 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: 4, sequence_number: 6, recv_next_sequence: 1 }, payload: b"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" } [INFO] [stdout] 2026-04-23T03:20:14.681009Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for outbound connection addr=127.0.0.1:41206 cid=1395186885 [INFO] [stdout] 2026-04-23T03:20:14.681042Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1395186885 remote_addr=127.0.0.1:41206 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 1395186885 } } [INFO] [stdout] 2026-04-23T03:20:14.681078Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.681106Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-04-23T03:20:14.681105Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.681117Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.681022Z 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: 4, sequence_number: 7, recv_next_sequence: 1 }, payload: b"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" } [INFO] [stdout] 2026-04-23T03:20:14.681136Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:56422) [INFO] [stdout] 2026-04-23T03:20:14.681137Z 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: 4, sequence_number: 8, recv_next_sequence: 1 }, payload: b"----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" } [INFO] [stdout] 2026-04-23T03:20:14.681229Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=46 state=Established [INFO] [stdout] 2026-04-23T03:20:14.681226Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:59159 frame_count=1 bytes=10 [INFO] [stdout] 2026-04-23T03:20:14.681304Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:59159 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.681319Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=148 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.681342Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:59159 [INFO] [stdout] 2026-04-23T03:20:14.681344Z TRACE mio::poll: registering event source with poller: token=Token(128929281231872), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.681419Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=2846786072 [INFO] [stdout] 2026-04-23T03:20:14.681451Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2846786072 remote_addr=127.0.0.1:59159 [INFO] [stdout] 2026-04-23T03:20:14.681454Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.681492Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=48 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-04-23T03:20:14.681515Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.681538Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.681544Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=2846786072 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.681626Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.681627Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-04-23T03:20:14.681641Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=2846786072 addr=127.0.0.1:59159 [INFO] [stdout] 2026-04-23T03:20:14.681658Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.681672Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=2846786072 addr=127.0.0.1:59159 [INFO] [stdout] 2026-04-23T03:20:14.681684Z 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-04-23T03:20:14.681695Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:59159 cid=2846786072 [INFO] [stdout] 2026-04-23T03:20:14.681758Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:59159 cid=2846786072 [INFO] [stdout] 2026-04-23T03:20:14.681777Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.681781Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2846786072 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.681793Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-04-23T03:20:14.681802Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.681816Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:41330) [INFO] [stdout] 2026-04-23T03:20:14.681866Z  INFO kestrel_protocol::socket::tests::rebind: 连接建立,服务器看到的客户端地址: 127.0.0.1:59159 [INFO] [stdout] 2026-04-23T03:20:14.681870Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.681905Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.681920Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=150 remote_addr=127.0.0.1:9049 [INFO] [stdout] 2026-04-23T03:20:14.681972Z DEBUG kestrel_protocol::socket::transport::manager: 传输管理器重绑定地址 | Transport manager rebinding address new_addr=127.0.0.1:0 [INFO] [stdout] 2026-04-23T03:20:14.682002Z  INFO kestrel_protocol::socket::tests::rebind: 服务器地址: 127.0.0.1:56422 [INFO] [stdout] 2026-04-23T03:20:14.682019Z  INFO kestrel_protocol::socket::tests::rebind: 客户端地址: 127.0.0.1:41330 [INFO] [stdout] 2026-04-23T03:20:14.682032Z TRACE mio::poll: registering event source with poller: token=Token(128931025960192), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.681980Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=35 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 135, payload_length: 1200, recv_window_size: 256, timestamp: 27, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"" } [INFO] [stdout] 2026-04-23T03:20:14.682217Z DEBUG kestrel_protocol::socket::transport::manager: 传输管理器重绑定完成 | Transport manager rebind completed actual_addr=127.0.0.1:49418 [INFO] [stdout] 2026-04-23T03:20:14.682223Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-04-23T03:20:14.682250Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-04-23T03:20:14.682278Z DEBUG kestrel_protocol::socket::transport::sender: Transport sender task is swapping to a new transport [INFO] [stdout] 2026-04-23T03:20:14.682177Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=35 remote_addr=127.0.0.1:8000 frame_count=1 first_frame=Push { header: ShortHeader { command: Push, connection_id: 135, payload_length: 640, recv_window_size: 256, timestamp: 27, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"" } [INFO] [stdout] 2026-04-23T03:20:14.682344Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor has shut down [INFO] [stdout] 2026-04-23T03:20:14.682353Z DEBUG kestrel_protocol::socket::transport::udp: Receiver task received shutdown signal [INFO] [stdout] 2026-04-23T03:20:14.682368Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task has shut down [INFO] [stdout] 2026-04-23T03:20:14.682397Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-04-23T03:20:14.682316Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=35 state=Established [INFO] [stdout] 2026-04-23T03:20:14.681874Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-04-23T03:20:14.682445Z 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: 21, sequence_number: 6, recv_next_sequence: 1 }, payload: b"((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((" } [INFO] [stdout] 2026-04-23T03:20:14.682604Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=3616125308 [INFO] [stdout] 2026-04-23T03:20:14.682639Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=3616125308 remote_addr=127.0.0.1:56422 [INFO] [stdout] 2026-04-23T03:20:14.682607Z 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: 21, sequence_number: 7, recv_next_sequence: 1 }, payload: b"((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((" } [INFO] [stdout] 2026-04-23T03:20:14.682695Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.682723Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=3616125308 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.682719Z 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: 21, sequence_number: 8, recv_next_sequence: 1 }, payload: b"((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((" } [INFO] [stdout] 2026-04-23T03:20:14.682798Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=41 state=Established [INFO] [stdout] 2026-04-23T03:20:14.682800Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.681081Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1395186885 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.682825Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=3616125308 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-04-23T03:20:14.682897Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:41206 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.682902Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=3616125308 addr=127.0.0.1:56422 [INFO] [stdout] 2026-04-23T03:20:14.682932Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=3616125308 addr=127.0.0.1:56422 [INFO] [stdout] 2026-04-23T03:20:14.682943Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:41206 frame_count=1 bytes=10 [INFO] [stdout] 2026-04-23T03:20:14.683031Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for outbound connection addr=127.0.0.1:56422 cid=3616125308 [INFO] [stdout] 2026-04-23T03:20:14.683064Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=3616125308 remote_addr=127.0.0.1:56422 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 3616125308 } } [INFO] [stdout] 2026-04-23T03:20:14.683074Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:36049 frame_count=1 bytes=10 [INFO] [stdout] 2026-04-23T03:20:14.683097Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3616125308 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.683134Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:56422 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.683169Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:56422 frame_count=1 bytes=10 [INFO] [stdout] 2026-04-23T03:20:14.683177Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:36049 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.683212Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:36049 [INFO] [stdout] 2026-04-23T03:20:14.683226Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=2730084988 [INFO] [stdout] 2026-04-23T03:20:14.683290Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.683321Z 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-04-23T03:20:14.683322Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:41330 frame_count=1 bytes=10 [INFO] [stdout] 2026-04-23T03:20:14.683397Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:41330 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.683400Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=149 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.683431Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:41330 [INFO] [stdout] 2026-04-23T03:20:14.683446Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.683480Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.683493Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.683505Z 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-04-23T03:20:14.683519Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=1391485104 [INFO] [stdout] 2026-04-23T03:20:14.683532Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=49 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-04-23T03:20:14.683552Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=1391485104 remote_addr=127.0.0.1:41330 [INFO] [stdout] 2026-04-23T03:20:14.683599Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.684246Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.684274Z 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-04-23T03:20:14.684341Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.684365Z 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-04-23T03:20:14.683684Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=150 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.683845Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.684613Z  INFO kestrel_protocol::socket::tests::rebind: 客户端从 127.0.0.1:59159 rebind到 127.0.0.1:49418 [INFO] [stdout] 2026-04-23T03:20:14.684609Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=50 remote_addr=127.0.0.1:8000 [INFO] [stdout] 2026-04-23T03:20:14.684665Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.684694Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.684718Z 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-04-23T03:20:14.684787Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.684811Z 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-04-23T03:20:14.685259Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=145 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.685286Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=145 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.685311Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.685320Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.685335Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=145 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.685347Z 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-04-23T03:20:14.685375Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=145 [INFO] [stdout] 2026-04-23T03:20:14.685392Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=145 state=Established [INFO] [stdout] 2026-04-23T03:20:14.685448Z 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-04-23T03:20:14.685469Z 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-04-23T03:20:14.685486Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=101 peer_cid=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.685505Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=101 state=Established [INFO] [stdout] 2026-04-23T03:20:14.685520Z 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: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.685540Z 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: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.685557Z 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-04-23T03:20:14.685602Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=101 [INFO] [stdout] 2026-04-23T03:20:14.685615Z 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-04-23T03:20:14.685655Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.685670Z 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-04-23T03:20:14.685688Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=108 srtt_ms=108 rttvar_ms=54 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.685704Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.685713Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.685731Z 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: 0, 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-04-23T03:20:14.685888Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.686048Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=101 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.686069Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=101 seq=0 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.686096Z 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: 109, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.686134Z 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: 0, 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-04-23T03:20:14.686299Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.686457Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=101 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.686477Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=101 seq=1 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.686509Z 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: 110, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.686655Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=149 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.686679Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=149 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.686705Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.686714Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.686726Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=149 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.686740Z 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-04-23T03:20:14.686770Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=149 [INFO] [stdout] 2026-04-23T03:20:14.686788Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=149 state=Established [INFO] [stdout] 2026-04-23T03:20:14.686847Z 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-04-23T03:20:14.686869Z 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-04-23T03:20:14.686885Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=102 peer_cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.686900Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=102 state=Established [INFO] [stdout] 2026-04-23T03:20:14.686915Z 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-04-23T03:20:14.686936Z 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-04-23T03:20:14.686954Z 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-04-23T03:20:14.686970Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=102 [INFO] [stdout] 2026-04-23T03:20:14.686983Z 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-04-23T03:20:14.687026Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.687042Z 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-04-23T03:20:14.687059Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=109 srtt_ms=109 rttvar_ms=54 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.687076Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.687086Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.687106Z 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-04-23T03:20:14.683865Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2730084988 remote_addr=127.0.0.1:36049 [INFO] [stdout] 2026-04-23T03:20:14.687656Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2 [INFO] [stdout] 2026-04-23T03:20:14.687661Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.687687Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=2730084988 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.687683Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=1367191249 current_state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.687722Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1367191249 from="Connecting" to="Closing" [INFO] [stdout] 2026-04-23T03:20:14.687755Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=1 [INFO] [stdout] 2026-04-23T03:20:14.687761Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.687760Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=2730084988 addr=127.0.0.1:36049 [INFO] [stdout] 2026-04-23T03:20:14.687786Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.687789Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=2730084988 addr=127.0.0.1:36049 [INFO] [stdout] 2026-04-23T03:20:14.687799Z 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-04-23T03:20:14.687809Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:36049 cid=2730084988 [INFO] [stdout] 2026-04-23T03:20:14.687823Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1367191249 remote_addr=127.0.0.1:44937 frame_count=2 first_frame=Push { header: ShortHeader { command: Push, connection_id: 0, payload_length: 24, recv_window_size: 256, timestamp: 8, sequence_number: 0, recv_next_sequence: 0 }, payload: b"test after client rebind" } [INFO] [stdout] 2026-04-23T03:20:14.687843Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:36049 cid=2730084988 [INFO] [stdout] 2026-04-23T03:20:14.687866Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1367191249 [INFO] [stdout] 2026-04-23T03:20:14.687866Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2730084988 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.687890Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1367191249 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.687931Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:44937 frame_count=2 [INFO] [stdout] 2026-04-23T03:20:14.687974Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=1395186885 current_state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.687979Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:44937 frame_count=2 bytes=66 [INFO] [stdout] 2026-04-23T03:20:14.687999Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1395186885 from="Connecting" to="Closing" [INFO] [stdout] 2026-04-23T03:20:14.688022Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.688038Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=1 [INFO] [stdout] test core::tests::shutdown::test_shutdown_from_fin_wait ... ok [INFO] [stdout] 2026-04-23T03:20:14.688077Z 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-04-23T03:20:14.688097Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1395186885 remote_addr=127.0.0.1:41206 frame_count=2 first_frame=Push { header: ShortHeader { command: Push, connection_id: 0, payload_length: 13, recv_window_size: 256, timestamp: 7, sequence_number: 0, recv_next_sequence: 0 }, payload: b"before rebind" } [INFO] [stdout] 2026-04-23T03:20:14.688131Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1395186885 [INFO] [stdout] 2026-04-23T03:20:14.688154Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1395186885 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.688190Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:41206 frame_count=2 [INFO] [stdout] 2026-04-23T03:20:14.688213Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.688240Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:41206 frame_count=2 bytes=55 [INFO] [stdout] 2026-04-23T03:20:14.688339Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:36049 frame_count=2 bytes=55 [INFO] [stdout] 2026-04-23T03:20:14.688392Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:36049 frame_count=2 [INFO] [stdout] 2026-04-23T03:20:14.688451Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2730084988 frame=Push { header: ShortHeader { command: Push, connection_id: 0, payload_length: 13, recv_window_size: 256, timestamp: 7, sequence_number: 0, recv_next_sequence: 0 }, payload: b"before rebind" } [INFO] [stdout] 2026-04-23T03:20:14.688483Z TRACE kestrel_protocol::core::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: 7, sequence_number: 0, recv_next_sequence: 0 }, payload: b"before rebind" } [INFO] [stdout] 2026-04-23T03:20:14.688504Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2730084988 seq=0 payload_len=13 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.688522Z DEBUG kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in SynReceived state (0-RTT data) cid=2730084988 seq=0 [INFO] [stdout] 2026-04-23T03:20:14.688540Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=2730084988 frame=Fin { header: ShortHeader { command: Fin, connection_id: 0, payload_length: 0, recv_window_size: 256, timestamp: 7, sequence_number: 1, recv_next_sequence: 0 } } [INFO] [stdout] 2026-04-23T03:20:14.688558Z 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: 7, sequence_number: 1, recv_next_sequence: 0 } } [INFO] [stdout] 2026-04-23T03:20:14.688595Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=2730084988 seq=1 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.688608Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-04-23T03:20:14.688611Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Handling FIN in SynReceived state (0-RTT close) cid=2730084988 seq=1 [INFO] [stdout] 2026-04-23T03:20:14.688626Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.688638Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2730084988 remote_addr=127.0.0.1:36049 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 1395186885, 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-04-23T03:20:14.688664Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=2 current_state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.688688Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.688691Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="SynReceived" to="Closing" [INFO] [stdout] 2026-04-23T03:20:14.688716Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.688734Z 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-04-23T03:20:14.688753Z 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: 60, sequence_number: 0, recv_next_sequence: 0 } } [INFO] [stdout] 2026-04-23T03:20:14.688783Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.688803Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.688805Z 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-04-23T03:20:14.688813Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.688835Z 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] 2026-04-23T03:20:14.688854Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=103 peer_cid=3 state=Established [INFO] [stdout] 2026-04-23T03:20:14.688869Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=103 state=Established [INFO] [stdout] 2026-04-23T03:20:14.688885Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2 [INFO] [stdout] 2026-04-23T03:20:14.688886Z 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: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.688895Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:3001 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.688908Z 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: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.688930Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:3001 [INFO] [stdout] 2026-04-23T03:20:14.688929Z 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-04-23T03:20:14.688951Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=103 [INFO] [stdout] 2026-04-23T03:20:14.688967Z 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-04-23T03:20:14.689006Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=883724750 [INFO] [stdout] 2026-04-23T03:20:14.689009Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.689026Z 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-04-23T03:20:14.689044Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=883724750 remote_addr=127.0.0.1:3001 [INFO] [stdout] 2026-04-23T03:20:14.689045Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=110 srtt_ms=110 rttvar_ms=55 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.689062Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.689074Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.689227Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] test core::tests::shutdown::test_shutdown_when_syn_received ... ok [INFO] [stdout] 2026-04-23T03:20:14.689277Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=883724750 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.689356Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=883724750 addr=127.0.0.1:3001 [INFO] [stdout] 2026-04-23T03:20:14.689094Z 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: 0, 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-04-23T03:20:14.689386Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=883724750 addr=127.0.0.1:3001 [INFO] [stdout] 2026-04-23T03:20:14.689390Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.689416Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:3001 cid=883724750 [INFO] [stdout] 2026-04-23T03:20:14.689443Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:3002 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.689466Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:3002 [INFO] [stdout] 2026-04-23T03:20:14.689481Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=2773065075 [INFO] [stdout] 2026-04-23T03:20:14.689501Z TRACE mio::poll: registering event source with poller: token=Token(128930489074944), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.689513Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2773065075 remote_addr=127.0.0.1:3002 [INFO] [stdout] 2026-04-23T03:20:14.689585Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.689611Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=2773065075 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.689656Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:3001 cid=883724750 [INFO] [stdout] 2026-04-23T03:20:14.689676Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=883724750 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.689412Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.690192Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=103 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.690221Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=103 seq=0 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.690247Z 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: 112, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.689727Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.690311Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-04-23T03:20:14.690322Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.690339Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:40446) [INFO] [stdout] 2026-04-23T03:20:14.690387Z TRACE mio::poll: registering event source with poller: token=Token(128930489065472), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.690284Z 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: 0, 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-04-23T03:20:14.690596Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.690610Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-04-23T03:20:14.690618Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.690629Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:55988) [INFO] [stdout] 2026-04-23T03:20:14.690656Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-04-23T03:20:14.690670Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-04-23T03:20:14.690666Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:49418 frame_count=2 bytes=66 [INFO] [stdout] 2026-04-23T03:20:14.690693Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.690745Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-04-23T03:20:14.690757Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-04-23T03:20:14.690750Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:49418 frame_count=2 [INFO] [stdout] 2026-04-23T03:20:14.690774Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.690783Z DEBUG kestrel_protocol::socket::event_loop::routing: 缓存早到的PUSH帧 127.0.0.1:49418 CID 0 | Cached early arrival PUSH frame from 127.0.0.1:49418 with CID 0 [INFO] [stdout] 2026-04-23T03:20:14.690811Z DEBUG kestrel_protocol::socket::event_loop::routing: 早到帧已缓存 | Early arrival frame cached cid=0 addr=127.0.0.1:49418 cache_key=15655493248008873154 [INFO] [stdout] 2026-04-23T03:20:14.690833Z DEBUG kestrel_protocol::socket::event_loop::routing: 忽略来自未知源的非SYN数据包 127.0.0.1:49418 不可路由CID 0: Fin { header: ShortHeader { command: Fin, connection_id: 0, payload_length: 0, recv_window_size: 256, timestamp: 8, sequence_number: 1, recv_next_sequence: 0 } } | Ignoring non-SYN packet from unknown source 127.0.0.1:49418 with unroutable CID 0: Fin { header: ShortHeader { command: Fin, connection_id: 0, payload_length: 0, recv_window_size: 256, timestamp: 8, sequence_number: 1, recv_next_sequence: 0 } } [INFO] [stdout] 2026-04-23T03:20:14.690601Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.690984Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=103 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.691006Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=103 seq=1 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.691033Z 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: 113, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.691063Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-04-23T03:20:14.691121Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-04-23T03:20:14.689727Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=2773065075 addr=127.0.0.1:3002 [INFO] [stdout] 2026-04-23T03:20:14.689794Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.691286Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=1391485104 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.691068Z 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: 0, 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-04-23T03:20:14.691377Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=1391485104 addr=127.0.0.1:41330 [INFO] [stdout] 2026-04-23T03:20:14.691404Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=1391485104 addr=127.0.0.1:41330 [INFO] [stdout] 2026-04-23T03:20:14.691421Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:41330 cid=1391485104 [INFO] [stdout] 2026-04-23T03:20:14.691461Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:41330 cid=1391485104 [INFO] [stdout] 2026-04-23T03:20:14.691479Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1391485104 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.687415Z TRACE kestrel_protocol::core::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-04-23T03:20:14.688673Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2730084988 current_state=SynReceived target_state=FinWait [INFO] [stdout] 2026-04-23T03:20:14.683994Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.690014Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=883724750 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.693067Z 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-04-23T03:20:14.693086Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=883724750 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.693128Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.693139Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.693145Z 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-04-23T03:20:14.693153Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=883724750 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.693166Z 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-04-23T03:20:14.693168Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=883724750 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: 883724750 } } [INFO] [stdout] 2026-04-23T03:20:14.693182Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=104 peer_cid=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.693198Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=883724750 [INFO] [stdout] 2026-04-23T03:20:14.693197Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=104 state=Established [INFO] [stdout] 2026-04-23T03:20:14.693218Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=883724750 state=Established [INFO] [stdout] 2026-04-23T03:20:14.693220Z 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-04-23T03:20:14.693240Z 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-04-23T03:20:14.693258Z 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-04-23T03:20:14.693274Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=104 [INFO] [stdout] 2026-04-23T03:20:14.693287Z 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-04-23T03:20:14.693326Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.693340Z 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-04-23T03:20:14.693357Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=113 srtt_ms=113 rttvar_ms=56 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.686546Z 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: 0, 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-04-23T03:20:14.691579Z  INFO kestrel_protocol::socket::tests::rebind: 连接建立成功 | Connection established successfully [INFO] [stdout] 2026-04-23T03:20:14.693391Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2730084988 from="SynReceived" to="FinWait" [INFO] [stdout] 2026-04-23T03:20:14.693407Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2730084988 [INFO] [stdout] 2026-04-23T03:20:14.691606Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=2773065075 addr=127.0.0.1:3002 [INFO] [stdout] 2026-04-23T03:20:14.693421Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2730084988 count=1 [INFO] [stdout] 2026-04-23T03:20:14.693445Z TRACE kestrel_protocol::core::endpoint::core::event_loop: All data drained after FIN, closing user stream (sending EOF). cid=2730084988 [INFO] [stdout] 2026-04-23T03:20:14.693458Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2730084988 state=FinWait [INFO] [stdout] 2026-04-23T03:20:14.693445Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:3002 cid=2773065075 [INFO] [stdout] 2026-04-23T03:20:14.693492Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:36049 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.693535Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:36049 frame_count=1 bytes=29 [INFO] [stdout] test socket::tests::test_socket_local_addr ... ok [INFO] [stdout] 2026-04-23T03:20:14.693661Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:41206 frame_count=1 bytes=29 [INFO] [stdout] 2026-04-23T03:20:14.693735Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:41206 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.693779Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1395186885 frame=Ack { header: ShortHeader { command: Ack, connection_id: 1395186885, 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-04-23T03:20:14.693801Z 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: 1395186885, 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-04-23T03:20:14.693676Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.693819Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=1395186885 recv_next_seq=0 recv_window=254 payload_len=8 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.693837Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Closing state cid=1395186885 [INFO] [stdout] 2026-04-23T03:20:14.693838Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=101 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.693849Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=1395186885 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=254 [INFO] [stdout] 2026-04-23T03:20:14.693858Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=101 seq=2 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.693874Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.693890Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Packet acknowledged by SACK seq=1 [INFO] [stdout] 2026-04-23T03:20:14.693887Z 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: 117, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.693902Z 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-04-23T03:20:14.693919Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=5 srtt_ms=5 rttvar_ms=2 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.693934Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.693944Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.693958Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1395186885 [INFO] [stdout] 2026-04-23T03:20:14.693973Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.693985Z 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-04-23T03:20:14.694000Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1395186885 remote_addr=127.0.0.1:41206 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-04-23T03:20:14.694029Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1395186885 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.694060Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:41206 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.693923Z 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: 0, 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-04-23T03:20:14.694087Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:41206 frame_count=1 bytes=21 [INFO] [stdout] 2026-04-23T03:20:14.694176Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:36049 frame_count=1 bytes=21 [INFO] [stdout] 2026-04-23T03:20:14.694081Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.694232Z DEBUG kestrel_protocol::socket::transport::manager: 传输管理器重绑定地址 | Transport manager rebinding address new_addr=127.0.0.1:0 [INFO] [stdout] 2026-04-23T03:20:14.694231Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=101 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.694249Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=101 seq=3 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.694272Z TRACE mio::poll: registering event source with poller: token=Token(128929616937344), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.694272Z 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: 118, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.694424Z DEBUG kestrel_protocol::socket::transport::manager: 传输管理器重绑定完成 | Transport manager rebind completed actual_addr=127.0.0.1:59759 [INFO] [stdout] 2026-04-23T03:20:14.694304Z 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: 0, 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-04-23T03:20:14.694458Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-04-23T03:20:14.694471Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-04-23T03:20:14.694494Z DEBUG kestrel_protocol::socket::transport::sender: Transport sender task is swapping to a new transport [INFO] [stdout] 2026-04-23T03:20:14.694523Z DEBUG kestrel_protocol::socket::transport::udp: Receiver task received shutdown signal [INFO] [stdout] 2026-04-23T03:20:14.694531Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task has shut down [INFO] [stdout] 2026-04-23T03:20:14.694554Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor has shut down [INFO] [stdout] 2026-04-23T03:20:14.694595Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-04-23T03:20:14.694465Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.694744Z TRACE mio::poll: registering event source with poller: token=Token(128929616758400), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.694644Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=101 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.694767Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=101 seq=4 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.694796Z 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: 118, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.694908Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.694920Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-04-23T03:20:14.694928Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.694939Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:36312) [INFO] [stdout] 2026-04-23T03:20:14.694833Z 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: 0, 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-04-23T03:20:14.694991Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-04-23T03:20:14.695005Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-04-23T03:20:14.695041Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.694983Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.695135Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=101 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.695152Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=101 seq=5 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.695154Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=102 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.695174Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=102 seq=0 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.695174Z 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: 118, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.695198Z 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: 118, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.695204Z 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: 0, 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-04-23T03:20:14.695356Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.695241Z 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-04-23T03:20:14.695512Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=101 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.693372Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.695933Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.695954Z 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-04-23T03:20:14.696267Z TRACE kestrel_protocol::core::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-04-23T03:20:14.696594Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=104 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.696612Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=104 seq=0 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.696646Z 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: 118, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.696679Z 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-04-23T03:20:14.696970Z TRACE kestrel_protocol::core::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-04-23T03:20:14.697286Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=104 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.697302Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=104 seq=1 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.697322Z 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: 119, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.697350Z 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-04-23T03:20:14.697659Z TRACE kestrel_protocol::core::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-04-23T03:20:14.697953Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=104 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.697968Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=104 seq=2 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.697987Z 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: 119, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.698014Z 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-04-23T03:20:14.698311Z TRACE kestrel_protocol::core::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-04-23T03:20:14.698618Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=104 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.698635Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=104 seq=3 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.698655Z 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: 120, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.698683Z 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-04-23T03:20:14.698974Z TRACE kestrel_protocol::core::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-04-23T03:20:14.699275Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=104 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.699291Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=104 seq=4 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.699311Z 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: 121, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.695528Z TRACE kestrel_protocol::core::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-04-23T03:20:14.700587Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=102 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.700611Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=102 seq=1 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.700636Z 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: 124, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.700668Z 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-04-23T03:20:14.691385Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.700959Z TRACE kestrel_protocol::core::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-04-23T03:20:14.699649Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=1 current_state=ValidatingPath { new_addr: 127.0.0.1:9999, challenge_data: 11643173311145864778, 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-04-23T03:20:14.701266Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=103 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.701277Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="ValidatingPath" to="Closing" [INFO] [stdout] 2026-04-23T03:20:14.701287Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=103 seq=2 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.701306Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.701319Z 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-04-23T03:20:14.701311Z 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: 124, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.701337Z 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: 67, sequence_number: 2, recv_next_sequence: 0 } } [INFO] [stdout] 2026-04-23T03:20:14.701376Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.701394Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.701581Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=1 [INFO] [stdout] 2026-04-23T03:20:14.701629Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2 [INFO] [stdout] 2026-04-23T03:20:14.701344Z 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: 0, 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-04-23T03:20:14.699681Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=101 seq=6 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.701816Z 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: 125, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.701671Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.701976Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=103 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.701852Z 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: 0, 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-04-23T03:20:14.701994Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=103 seq=3 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.702015Z 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: 124, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.702001Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.702151Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=101 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.702166Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=101 seq=7 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.702184Z 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: 125, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.702216Z 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: 0, 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-04-23T03:20:14.702041Z 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: 0, 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-04-23T03:20:14.702304Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.702391Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=101 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-04-23T03:20:14.702406Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=101 seq=8 payload_len=640 [INFO] [stdout] 2026-04-23T03:20:14.702423Z 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: 126, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.702447Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=101 [INFO] [stdout] 2026-04-23T03:20:14.702463Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=101 count=9 [INFO] [stdout] 2026-04-23T03:20:14.702486Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=101 state=Established [INFO] [stdout] 2026-04-23T03:20:14.702331Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.702658Z 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-04-23T03:20:14.702809Z 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-04-23T03:20:14.702828Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=105 peer_cid=5 state=Established [INFO] [stdout] 2026-04-23T03:20:14.702841Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=105 state=Established [INFO] [stdout] 2026-04-23T03:20:14.702847Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:3002 cid=2773065075 [INFO] [stdout] 2026-04-23T03:20:14.702858Z 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-04-23T03:20:14.702874Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2773065075 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.702878Z 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-04-23T03:20:14.702897Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2773065075 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.702895Z 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-04-23T03:20:14.702914Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=105 [INFO] [stdout] 2026-04-23T03:20:14.702915Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2773065075 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.702927Z 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-04-23T03:20:14.702937Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.702948Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.702954Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.702960Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=2773065075 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.702968Z 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-04-23T03:20:14.702985Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=119 srtt_ms=119 rttvar_ms=59 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.703000Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.703010Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.702973Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2773065075 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: 2773065075 } } [INFO] [stdout] 2026-04-23T03:20:14.703026Z 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-04-23T03:20:14.703313Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=883724750 [INFO] [stdout] 2026-04-23T03:20:14.703328Z TRACE kestrel_protocol::core::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-04-23T03:20:14.703650Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=105 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.703668Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=105 seq=0 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.703664Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2773065075 [INFO] [stdout] 2026-04-23T03:20:14.703696Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2773065075 state=Established [INFO] [stdout] 2026-04-23T03:20:14.703689Z 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: 125, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.703730Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2773065075 [INFO] [stdout] 2026-04-23T03:20:14.703724Z 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-04-23T03:20:14.704027Z TRACE kestrel_protocol::core::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-04-23T03:20:14.704324Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=105 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.704339Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=105 seq=1 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.704359Z 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: 125, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.704386Z 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-04-23T03:20:14.699338Z 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-04-23T03:20:14.704819Z TRACE kestrel_protocol::core::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-04-23T03:20:14.705114Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=104 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.705131Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=104 seq=5 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.705153Z 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: 127, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.705183Z 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-04-23T03:20:14.705479Z TRACE kestrel_protocol::core::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-04-23T03:20:14.705788Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=104 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.705804Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=104 seq=6 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.705825Z 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: 127, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.705853Z 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-04-23T03:20:14.706141Z TRACE kestrel_protocol::core::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-04-23T03:20:14.706442Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=104 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.706459Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=104 seq=7 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.706479Z 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: 128, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.706506Z 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] 2026-04-23T03:20:14.706684Z TRACE kestrel_protocol::core::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-04-23T03:20:14.706848Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=104 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-04-23T03:20:14.706863Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=104 seq=8 payload_len=640 [INFO] [stdout] 2026-04-23T03:20:14.706882Z 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: 128, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.706907Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=104 [INFO] [stdout] 2026-04-23T03:20:14.706923Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=104 count=9 [INFO] [stdout] 2026-04-23T03:20:14.706947Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=104 state=Established [INFO] [stdout] 2026-04-23T03:20:14.707042Z 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-04-23T03:20:14.707100Z 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-04-23T03:20:14.707119Z 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-04-23T03:20:14.707134Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=106 peer_cid=6 state=Established [INFO] [stdout] 2026-04-23T03:20:14.707147Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=106 state=Established [INFO] [stdout] 2026-04-23T03:20:14.707161Z 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-04-23T03:20:14.707179Z 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-04-23T03:20:14.707196Z 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-04-23T03:20:14.707222Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=106 [INFO] [stdout] 2026-04-23T03:20:14.707234Z 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-04-23T03:20:14.707259Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.707272Z 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-04-23T03:20:14.707291Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=121 srtt_ms=121 rttvar_ms=60 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.707307Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.707316Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.707332Z 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-04-23T03:20:14.707642Z TRACE kestrel_protocol::core::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-04-23T03:20:14.708328Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=106 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.708346Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=106 seq=0 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.708383Z 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: 125, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.708417Z 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-04-23T03:20:14.708728Z TRACE kestrel_protocol::core::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-04-23T03:20:14.709022Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=106 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.709037Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=106 seq=1 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.709057Z 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: 126, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.709084Z 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-04-23T03:20:14.709380Z TRACE kestrel_protocol::core::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-04-23T03:20:14.709689Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=106 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.709705Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=106 seq=2 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.709725Z 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: 126, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.709753Z 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-04-23T03:20:14.710044Z TRACE kestrel_protocol::core::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-04-23T03:20:14.710368Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=106 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.710384Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=106 seq=3 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.710404Z 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: 127, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.710432Z 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-04-23T03:20:14.710739Z TRACE kestrel_protocol::core::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-04-23T03:20:14.711033Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=106 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.711048Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=106 seq=4 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.711068Z 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: 128, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.711097Z 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-04-23T03:20:14.702734Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=102 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.711591Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=102 seq=2 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.711613Z 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: 135, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.711641Z 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] test core::tests::shutdown::test_shutdown_when_validating_path ... ok [INFO] [stdout] test socket::tests::test_actor_with_true_concurrent_handlers ... ok [INFO] [stdout] 2026-04-23T03:20:14.704701Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=103 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.695834Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=2422477034 [INFO] [stdout] 2026-04-23T03:20:14.712651Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2422477034 remote_addr=127.0.0.1:59759 [INFO] [stdout] 2026-04-23T03:20:14.712724Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=3960476323 [INFO] [stdout] 2026-04-23T03:20:14.712719Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.712718Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.707947Z TRACE kestrel_protocol::core::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-04-23T03:20:14.702756Z 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-04-23T03:20:14.712794Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=105 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.712811Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=105 seq=2 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.712835Z 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: 134, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.712861Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=111 slots_to_advance=11 max_advance=11 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.712895Z TRACE mio::poll: registering event source with poller: token=Token(128929012671360), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.712973Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.712999Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.713029Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.713042Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.713067Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-04-23T03:20:14.712758Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=3960476323 remote_addr=127.0.0.1:59759 [INFO] [stdout] 2026-04-23T03:20:14.713104Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-04-23T03:20:14.712867Z 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-04-23T03:20:14.713150Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.713183Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=2422477034 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.713232Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-04-23T03:20:14.713237Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=3 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.713257Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=3 entry_id=3 connection_id=3960476323 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.713328Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.713348Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=2422477034 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-04-23T03:20:14.713385Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=4 slot_index=440 delay_ms=30000 [INFO] [stdout] test socket::transport::udp::tests::test_local_addr_methods ... 2026-04-23T03:20:14.713413Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=4 entry_id=4 connection_id=3960476323 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] ok [INFO] [stdout] 2026-04-23T03:20:14.713156Z TRACE kestrel_protocol::core::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-04-23T03:20:14.713461Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=2422477034 addr=127.0.0.1:59759 [INFO] [stdout] 2026-04-23T03:20:14.713464Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=105 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.713484Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=105 seq=3 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.713495Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=2422477034 addr=127.0.0.1:59759 [INFO] [stdout] 2026-04-23T03:20:14.713504Z 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: 134, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.713593Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=3960476323 addr=127.0.0.1:59759 [INFO] [stdout] 2026-04-23T03:20:14.713594Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.713620Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=3960476323 addr=127.0.0.1:59759 [INFO] [stdout] 2026-04-23T03:20:14.713653Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for outbound connection addr=127.0.0.1:59759 cid=2422477034 [INFO] [stdout] 2026-04-23T03:20:14.713681Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2422477034 remote_addr=127.0.0.1:59759 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 2422477034 } } [INFO] [stdout] 2026-04-23T03:20:14.713713Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2422477034 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.713738Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for outbound connection addr=127.0.0.1:59759 cid=3960476323 [INFO] [stdout] 2026-04-23T03:20:14.713754Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=3960476323 remote_addr=127.0.0.1:59759 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 3960476323 } } [INFO] [stdout] 2026-04-23T03:20:14.713776Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3960476323 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.713821Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:59759 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.713825Z TRACE mio::poll: registering event source with poller: token=Token(128929012676864), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.713536Z 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-04-23T03:20:14.713846Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:59759 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.713853Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=103 seq=4 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.714383Z 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: 137, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.714324Z TRACE kestrel_protocol::core::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-04-23T03:20:14.714641Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=105 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.714658Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=105 seq=4 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.714681Z 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: 136, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.714430Z 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: 0, 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-04-23T03:20:14.714711Z 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-04-23T03:20:14.714754Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.715022Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=103 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.715042Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=103 seq=5 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.715061Z 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: 137, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.715000Z TRACE kestrel_protocol::core::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-04-23T03:20:14.715292Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=105 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.715308Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=105 seq=5 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.715328Z 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: 136, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.715088Z 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: 0, 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-04-23T03:20:14.715354Z 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-04-23T03:20:14.715376Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.715659Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=103 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.716713Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=103 seq=6 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.716748Z 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: 139, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.716786Z 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: 0, 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-04-23T03:20:14.717082Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.717382Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=103 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.717397Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=103 seq=7 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.717418Z 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: 140, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.717447Z 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: 0, 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-04-23T03:20:14.717631Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-04-23T03:20:14.717679Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-04-23T03:20:14.717626Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.717791Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=103 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-04-23T03:20:14.717806Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=103 seq=8 payload_len=640 [INFO] [stdout] 2026-04-23T03:20:14.717826Z 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: 140, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.717854Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=103 [INFO] [stdout] 2026-04-23T03:20:14.717872Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=103 count=9 [INFO] [stdout] 2026-04-23T03:20:14.717898Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=103 state=Established [INFO] [stdout] 2026-04-23T03:20:14.718018Z 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-04-23T03:20:14.718038Z 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-04-23T03:20:14.718054Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=107 peer_cid=7 state=Established [INFO] [stdout] 2026-04-23T03:20:14.718068Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=107 state=Established [INFO] [stdout] 2026-04-23T03:20:14.718082Z 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-04-23T03:20:14.718099Z 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-04-23T03:20:14.718116Z 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-04-23T03:20:14.718133Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=107 [INFO] [stdout] 2026-04-23T03:20:14.718133Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=104 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.718147Z 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-04-23T03:20:14.718175Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.718189Z 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-04-23T03:20:14.718216Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=130 srtt_ms=130 rttvar_ms=65 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.718231Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.718241Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.718258Z 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-04-23T03:20:14.718550Z TRACE kestrel_protocol::core::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-04-23T03:20:14.718855Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=107 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.718872Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=107 seq=0 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.718894Z 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: 133, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.718925Z 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-04-23T03:20:14.719387Z 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-04-23T03:20:14.719222Z TRACE kestrel_protocol::core::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-04-23T03:20:14.719512Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=107 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.719529Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=107 seq=1 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.719548Z 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: 134, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.719591Z 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-04-23T03:20:14.719884Z TRACE kestrel_protocol::core::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-04-23T03:20:14.721329Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=107 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.721356Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=107 seq=2 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.721385Z 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: 136, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.721423Z 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-04-23T03:20:14.721768Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.721931Z TRACE mio::poll: registering event source with poller: token=Token(128928542908928), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.721745Z TRACE kestrel_protocol::core::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-04-23T03:20:14.722050Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=107 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.722074Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=107 seq=3 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.722102Z 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: 137, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.722145Z 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-04-23T03:20:14.722181Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.722215Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-04-23T03:20:14.722227Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.722255Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:50546) [INFO] [stdout] 2026-04-23T03:20:14.722328Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-04-23T03:20:14.722353Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-04-23T03:20:14.722416Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.722137Z 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-04-23T03:20:14.722588Z TRACE mio::poll: registering event source with poller: token=Token(128928543024512), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.722445Z TRACE kestrel_protocol::core::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-04-23T03:20:14.722759Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=107 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.722779Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=107 seq=4 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.722805Z 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: 137, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.722876Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.722894Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-04-23T03:20:14.722905Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.722920Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:54807) [INFO] [stdout] 2026-04-23T03:20:14.722987Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-04-23T03:20:14.723008Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-04-23T03:20:14.723059Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.722840Z 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-04-23T03:20:14.723217Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=637621022 [INFO] [stdout] 2026-04-23T03:20:14.723285Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=637621022 remote_addr=127.0.0.1:50546 [INFO] [stdout] 2026-04-23T03:20:14.723372Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.723133Z TRACE kestrel_protocol::core::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-04-23T03:20:14.723408Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=637621022 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.711396Z TRACE kestrel_protocol::core::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-04-23T03:20:14.723452Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=106 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.723470Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=106 seq=5 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.723494Z 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: 140, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.723552Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.723525Z 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-04-23T03:20:14.723964Z TRACE kestrel_protocol::core::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] 2026-04-23T03:20:14.724281Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=106 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.724299Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=106 seq=6 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.724322Z 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: 141, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.724353Z 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] test core::endpoint::timing::tests::test_global_timer_integration ... ok [INFO] [stdout] 2026-04-23T03:20:14.724660Z TRACE kestrel_protocol::core::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-04-23T03:20:14.724973Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2 [INFO] [stdout] 2026-04-23T03:20:14.715952Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.716031Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=3616125308 current_state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.724987Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.713882Z TRACE kestrel_protocol::core::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-04-23T03:20:14.725017Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=102 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.725035Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=102 seq=3 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.725062Z 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: 148, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.725089Z TRACE mio::poll: registering event source with poller: token=Token(128930824646784), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.716093Z TRACE mio::poll: registering event source with poller: token=Token(128929012750464), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.725243Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-04-23T03:20:14.725266Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-04-23T03:20:14.725328Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-04-23T03:20:14.725347Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.725096Z 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-04-23T03:20:14.715658Z TRACE kestrel_protocol::core::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-04-23T03:20:14.725407Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=105 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.725424Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.725413Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-04-23T03:20:14.725425Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=105 seq=6 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.723913Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.725466Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-04-23T03:20:14.723918Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-04-23T03:20:14.725464Z 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: 146, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.725476Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.725496Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.725592Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:4001 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.725615Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.725632Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:4001 [INFO] [stdout] 2026-04-23T03:20:14.725396Z TRACE kestrel_protocol::core::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-04-23T03:20:14.725713Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.725702Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=1074925438 [INFO] [stdout] 2026-04-23T03:20:14.725736Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.725735Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=102 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.725753Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=102 seq=4 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.725765Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=1074925438 remote_addr=127.0.0.1:4001 [INFO] [stdout] 2026-04-23T03:20:14.725774Z 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: 149, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.725495Z 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-04-23T03:20:14.725822Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.725843Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.725850Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=1074925438 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.725914Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=1074925438 addr=127.0.0.1:4001 [INFO] [stdout] 2026-04-23T03:20:14.725946Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=1074925438 addr=127.0.0.1:4001 [INFO] [stdout] 2026-04-23T03:20:14.725949Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.726012Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:4001 cid=1074925438 [INFO] [stdout] 2026-04-23T03:20:14.726023Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:2001 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.726049Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:4001 cid=1074925438 [INFO] [stdout] 2026-04-23T03:20:14.726059Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:2001 [INFO] [stdout] 2026-04-23T03:20:14.726068Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1074925438 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.725803Z 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-04-23T03:20:14.725803Z TRACE kestrel_protocol::core::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-04-23T03:20:14.726286Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=105 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.726314Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=105 seq=7 payload_len=1200 [INFO] [stdout] test core::tests::shutdown::test_retransmission_after_fin_is_ignored ... ok [INFO] [stdout] 2026-04-23T03:20:14.726341Z 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: 147, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.726376Z 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] test timer::event::lockfree_ring::tests::test_optimized_dispatcher ... ok [INFO] [stdout] test timer::event::lockfree_ring::tests::test_ring_buffer_basic_operations ... ok [INFO] [stdout] 2026-04-23T03:20:14.726551Z TRACE kestrel_protocol::core::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-04-23T03:20:14.726745Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=105 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-04-23T03:20:14.726765Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=105 seq=8 payload_len=640 [INFO] [stdout] test timer::event::lockfree_ring::tests::test_ring_buffer_batch_operations ... ok [INFO] [stdout] 2026-04-23T03:20:14.726792Z 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: 148, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.726826Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=105 [INFO] [stdout] 2026-04-23T03:20:14.726847Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=105 count=9 [INFO] [stdout] 2026-04-23T03:20:14.726876Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=105 state=Established [INFO] [stdout] test timer::event::lockfree_ring::tests::test_ring_buffer_capacity_behavior ... ok [INFO] [stdout] 2026-04-23T03:20:14.726992Z 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-04-23T03:20:14.727019Z 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-04-23T03:20:14.727035Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=108 peer_cid=8 state=Established [INFO] [stdout] test timer::event::memory_pool::tests::test_optimized_batch_processor ... ok [INFO] [stdout] 2026-04-23T03:20:14.727050Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=108 state=Established [INFO] [stdout] 2026-04-23T03:20:14.727067Z 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-04-23T03:20:14.727088Z 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-04-23T03:20:14.727107Z 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-04-23T03:20:14.727124Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=108 [INFO] [stdout] 2026-04-23T03:20:14.727137Z 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-04-23T03:20:14.727164Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.727180Z 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-04-23T03:20:14.727201Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=137 srtt_ms=137 rttvar_ms=68 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.727229Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.727240Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.727258Z 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-04-23T03:20:14.727582Z TRACE kestrel_protocol::core::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-04-23T03:20:14.727893Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=108 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.727914Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=108 seq=0 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.727941Z 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: 141, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.727980Z 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-04-23T03:20:14.728333Z TRACE kestrel_protocol::core::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-04-23T03:20:14.728659Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=108 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.728682Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=108 seq=1 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.728708Z 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: 142, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.728743Z 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-04-23T03:20:14.729051Z TRACE kestrel_protocol::core::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-04-23T03:20:14.729374Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=108 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.729397Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=108 seq=2 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.729425Z 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: 143, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.723850Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=107 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.714175Z TRACE mio::poll: registering event source with poller: token=Token(128929348213376), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.729603Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=107 seq=5 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.726090Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=1074925438 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.729634Z 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: 144, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.726107Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=3616125308 from="Connecting" to="Closing" [INFO] [stdout] 2026-04-23T03:20:14.729703Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.729736Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.726129Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=2514340911 [INFO] [stdout] 2026-04-23T03:20:14.730638Z 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-04-23T03:20:14.730680Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=3616125308 remote_addr=127.0.0.1:56422 frame_count=2 first_frame=Push { header: ShortHeader { command: Push, connection_id: 0, payload_length: 19, recv_window_size: 256, timestamp: 47, sequence_number: 0, recv_next_sequence: 0 }, payload: b"hello before rebind" } [INFO] [stdout] 2026-04-23T03:20:14.730684Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=2514340911 remote_addr=127.0.0.1:2001 [INFO] [stdout] 2026-04-23T03:20:14.730721Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3616125308 [INFO] [stdout] 2026-04-23T03:20:14.730748Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3616125308 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.730782Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.730791Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:56422 frame_count=2 [INFO] [stdout] 2026-04-23T03:20:14.730820Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=2514340911 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.730835Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:56422 frame_count=2 bytes=61 [INFO] [stdout] 2026-04-23T03:20:14.730912Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=2514340911 addr=127.0.0.1:2001 [INFO] [stdout] 2026-04-23T03:20:14.730954Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=2514340911 addr=127.0.0.1:2001 [INFO] [stdout] 2026-04-23T03:20:14.731004Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:2001 cid=2514340911 [INFO] [stdout] 2026-04-23T03:20:14.731059Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:2002 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.731090Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:2002 [INFO] [stdout] 2026-04-23T03:20:14.731108Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=323757557 [INFO] [stdout] 2026-04-23T03:20:14.731149Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=323757557 remote_addr=127.0.0.1:2002 [INFO] [stdout] 2026-04-23T03:20:14.731233Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.731273Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=323757557 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.731324Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:2001 cid=2514340911 [INFO] [stdout] 2026-04-23T03:20:14.731360Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2514340911 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.731426Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=323757557 addr=127.0.0.1:2002 [INFO] [stdout] 2026-04-23T03:20:14.731470Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=323757557 addr=127.0.0.1:2002 [INFO] [stdout] 2026-04-23T03:20:14.731489Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:2002 cid=323757557 [INFO] [stdout] 2026-04-23T03:20:14.731535Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:2002 cid=323757557 [INFO] [stdout] 2026-04-23T03:20:14.726186Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:42578 frame_count=1 bytes=28 [INFO] [stdout] 2026-04-23T03:20:14.731749Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:38018 frame_count=1 bytes=28 [INFO] [stdout] 2026-04-23T03:20:14.731798Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:38018 frame_count=1 bytes=28 [INFO] [stdout] 2026-04-23T03:20:14.731885Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:42578 frame_count=1 bytes=28 [INFO] [stdout] 2026-04-23T03:20:14.732005Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2514340911 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.732048Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2514340911 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.732086Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.732091Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-04-23T03:20:14.732109Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.732132Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=2514340911 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.732158Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=2514340911 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: 2514340911 } } [INFO] [stdout] 2026-04-23T03:20:14.732230Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2514340911 [INFO] [stdout] 2026-04-23T03:20:14.732267Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2514340911 state=Established [INFO] [stdout] 2026-04-23T03:20:14.729757Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1074925438 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.729805Z TRACE mio::poll: registering event source with poller: token=Token(128929348244224), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.732403Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.732420Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.729805Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-04-23T03:20:14.724969Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=106 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.729859Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-04-23T03:20:14.729670Z 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-04-23T03:20:14.729460Z 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-04-23T03:20:14.732271Z DEBUG kestrel_protocol::socket::transport::udp: Receiver task received shutdown signal [INFO] [stdout] 2026-04-23T03:20:14.732435Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=1074925438 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.729977Z TRACE kestrel_protocol::core::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-04-23T03:20:14.732560Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=102 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.732601Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=102 seq=5 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.715778Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:59759 frame_count=1 bytes=10 [INFO] [stdout] 2026-04-23T03:20:14.732638Z 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: 156, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.732669Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:59759 frame_count=1 bytes=10 [INFO] [stdout] 2026-04-23T03:20:14.732700Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-04-23T03:20:14.732722Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-04-23T03:20:14.732783Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:56881 frame_count=1 bytes=27 [INFO] [stdout] 2026-04-23T03:20:14.732499Z TRACE kestrel_protocol::core::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-04-23T03:20:14.732537Z TRACE kestrel_protocol::core::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-04-23T03:20:14.732829Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=107 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.732851Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=107 seq=6 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.732853Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=108 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.732868Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=1395186885 [INFO] [stdout] 2026-04-23T03:20:14.732873Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=108 seq=3 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.732881Z 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: 147, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.732901Z 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: 146, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.732950Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=3960476323 [INFO] [stdout] 2026-04-23T03:20:14.732677Z 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-04-23T03:20:14.732977Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:52784 frame_count=1 bytes=27 [INFO] [stdout] 2026-04-23T03:20:14.733044Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-04-23T03:20:14.733117Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-04-23T03:20:14.732921Z 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-04-23T03:20:14.732938Z 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-04-23T03:20:14.732990Z TRACE kestrel_protocol::core::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-04-23T03:20:14.733277Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-04-23T03:20:14.733292Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=102 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.733308Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=102 seq=6 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.733331Z 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: 156, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.733435Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2730084988 [INFO] [stdout] 2026-04-23T03:20:14.733234Z TRACE kestrel_protocol::core::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-04-23T03:20:14.733247Z TRACE kestrel_protocol::core::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-04-23T03:20:14.733529Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2422477034 [INFO] [stdout] 2026-04-23T03:20:14.733584Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=106 seq=7 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.733618Z 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: 150, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.733360Z 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-04-23T03:20:14.733677Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:41330 frame_count=2 bytes=61 [INFO] [stdout] 2026-04-23T03:20:14.733723Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.733753Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=637621022 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-04-23T03:20:14.733765Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:41330 frame_count=2 [INFO] [stdout] 2026-04-23T03:20:14.733658Z 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-04-23T03:20:14.733845Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1391485104 frame=Push { header: ShortHeader { command: Push, connection_id: 0, payload_length: 19, recv_window_size: 256, timestamp: 47, sequence_number: 0, recv_next_sequence: 0 }, payload: b"hello before rebind" } [INFO] [stdout] 2026-04-23T03:20:14.733892Z TRACE kestrel_protocol::core::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: 47, sequence_number: 0, recv_next_sequence: 0 }, payload: b"hello before rebind" } [INFO] [stdout] 2026-04-23T03:20:14.733919Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=1391485104 seq=0 payload_len=19 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.733935Z DEBUG kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in SynReceived state (0-RTT data) cid=1391485104 seq=0 [INFO] [stdout] 2026-04-23T03:20:14.733956Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=1391485104 frame=Fin { header: ShortHeader { command: Fin, connection_id: 0, payload_length: 0, recv_window_size: 256, timestamp: 47, sequence_number: 1, recv_next_sequence: 0 } } [INFO] [stdout] 2026-04-23T03:20:14.733678Z TRACE kestrel_protocol::core::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-04-23T03:20:14.733975Z 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: 47, sequence_number: 1, recv_next_sequence: 0 } } [INFO] [stdout] 2026-04-23T03:20:14.733991Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=102 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.733995Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=1391485104 seq=1 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.733848Z TRACE kestrel_protocol::core::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] 2026-04-23T03:20:14.733995Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=108 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.734008Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=102 seq=7 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.734010Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Handling FIN in SynReceived state (0-RTT close) cid=1391485104 seq=1 [INFO] [stdout] 2026-04-23T03:20:14.734022Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=108 seq=4 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.734020Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=106 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-04-23T03:20:14.734041Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=106 seq=8 payload_len=640 [INFO] [stdout] 2026-04-23T03:20:14.734033Z 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: 157, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.734040Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1391485104 remote_addr=127.0.0.1:41330 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 3616125308, payload_length: 8, recv_window_size: 254, timestamp: 44, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.734051Z 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: 147, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.734072Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=1391485104 current_state=SynReceived target_state=FinWait [INFO] [stdout] 2026-04-23T03:20:14.734066Z 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: 151, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.734089Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1391485104 from="SynReceived" to="FinWait" [INFO] [stdout] 2026-04-23T03:20:14.734098Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=106 [INFO] [stdout] 2026-04-23T03:20:14.734107Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1391485104 [INFO] [stdout] 2026-04-23T03:20:14.734120Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=106 count=9 [INFO] [stdout] 2026-04-23T03:20:14.734122Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=1391485104 count=1 [INFO] [stdout] 2026-04-23T03:20:14.734152Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=106 state=Established [INFO] [stdout] 2026-04-23T03:20:14.734065Z 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-04-23T03:20:14.734284Z 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-04-23T03:20:14.734310Z 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-04-23T03:20:14.734331Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=109 peer_cid=9 state=Established [INFO] [stdout] 2026-04-23T03:20:14.734348Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=109 state=Established [INFO] [stdout] 2026-04-23T03:20:14.734364Z 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-04-23T03:20:14.734085Z 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-04-23T03:20:14.723911Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.735259Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-04-23T03:20:14.735278Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.735348Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] test socket::tests::rebind::test_rebind_impact_on_existing_connection_data ... ok [INFO] [stdout] test timer::event::performance_bench::bench_tests::test_lightweight_benchmark ... ok [INFO] [stdout] test timer::event::pool::tests::test_batch_operations ... ok [INFO] [stdout] test timer::event::pool::tests::test_pool_clone_ref ... ok [INFO] [stdout] 2026-04-23T03:20:14.735557Z TRACE kestrel_protocol::core::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-04-23T03:20:14.735872Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=108 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.735893Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=108 seq=5 payload_len=1200 [INFO] [stdout] test timer::event::pool::tests::test_pool_with_capacity ... ok [INFO] [stdout] 2026-04-23T03:20:14.735919Z 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: 149, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] test timer::event::pool::tests::test_timer_event_pool_basic_operations ... ok [INFO] [stdout] test timer::event::traits::tests::test_batch_creation_clone_type ... ok [INFO] [stdout] test timer::event::traits::tests::test_batch_creation_copy_type ... ok [INFO] [stdout] 2026-04-23T03:20:14.735951Z 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] test timer::event::traits::tests::test_clone_type_strategy_selection ... 2026-04-23T03:20:14.733538Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=107 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.734387Z 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-04-23T03:20:14.734440Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=637621022 addr=127.0.0.1:50546 [INFO] [stdout] 2026-04-23T03:20:14.736282Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=107 seq=7 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.734469Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2846786072 [INFO] [stdout] 2026-04-23T03:20:14.736327Z 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: 151, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.736332Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2846786072 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.734493Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1074925438 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: 1074925438 } } [INFO] [stdout] 2026-04-23T03:20:14.736448Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1074925438 [INFO] [stdout] 2026-04-23T03:20:14.736475Z DEBUG kestrel_protocol::socket::transport::udp: Receiver task received shutdown signal [INFO] [stdout] 2026-04-23T03:20:14.736503Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task has shut down [INFO] [stdout] 2026-04-23T03:20:14.736370Z 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-04-23T03:20:14.736523Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=637621022 addr=127.0.0.1:50546 [INFO] [stdout] 2026-04-23T03:20:14.736264Z TRACE kestrel_protocol::core::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-04-23T03:20:14.736551Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=108 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.736586Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=108 seq=6 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.736613Z 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: 150, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.736689Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-04-23T03:20:14.736694Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for outbound connection addr=127.0.0.1:50546 cid=637621022 [INFO] [stdout] 2026-04-23T03:20:14.736543Z TRACE kestrel_protocol::core::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-04-23T03:20:14.731557Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=323757557 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.736478Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1074925438 state=Established [INFO] [stdout] 2026-04-23T03:20:14.737736Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=107 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-04-23T03:20:14.737761Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=107 seq=8 payload_len=640 [INFO] [stdout] 2026-04-23T03:20:14.737752Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:1001 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.737788Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=1074925438 [INFO] [stdout] 2026-04-23T03:20:14.737791Z 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: 152, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.737805Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:1001 [INFO] [stdout] 2026-04-23T03:20:14.737824Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=107 [INFO] [stdout] 2026-04-23T03:20:14.737843Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=107 count=9 [INFO] [stdout] 2026-04-23T03:20:14.737869Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=107 state=Established [INFO] [stdout] 2026-04-23T03:20:14.737881Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=3473445975 [INFO] [stdout] 2026-04-23T03:20:14.737917Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=3473445975 remote_addr=127.0.0.1:1001 [INFO] [stdout] 2026-04-23T03:20:14.737953Z 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-04-23T03:20:14.734241Z TRACE kestrel_protocol::core::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-04-23T03:20:14.737988Z 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-04-23T03:20:14.736729Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=637621022 remote_addr=127.0.0.1:50546 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 637621022 } } [INFO] [stdout] 2026-04-23T03:20:14.738015Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=110 peer_cid=10 state=Established [INFO] [stdout] 2026-04-23T03:20:14.738017Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=102 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-04-23T03:20:14.738031Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=110 state=Established [INFO] [stdout] 2026-04-23T03:20:14.734593Z TRACE kestrel_protocol::core::endpoint::core::event_loop: All data drained after FIN, closing user stream (sending EOF). cid=1391485104 [INFO] [stdout] 2026-04-23T03:20:14.738047Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=102 seq=8 payload_len=640 [INFO] [stdout] 2026-04-23T03:20:14.738054Z 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-04-23T03:20:14.738061Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=637621022 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.738075Z 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-04-23T03:20:14.738075Z 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: 161, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.738098Z  INFO kestrel_protocol::socket::tests::rebind: rebind前数据传输正常 [INFO] [stdout] 2026-04-23T03:20:14.738093Z 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-04-23T03:20:14.738110Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=102 [INFO] [stdout] 2026-04-23T03:20:14.738113Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=110 [INFO] [stdout] 2026-04-23T03:20:14.738128Z 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-04-23T03:20:14.738133Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=102 count=9 [INFO] [stdout] 2026-04-23T03:20:14.738137Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:50546 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.738155Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.738164Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=102 state=Established [INFO] [stdout] 2026-04-23T03:20:14.738171Z 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-04-23T03:20:14.738183Z DEBUG kestrel_protocol::socket::transport::manager: 传输管理器重绑定地址 | Transport manager rebinding address new_addr=127.0.0.1:0 [INFO] [stdout] 2026-04-23T03:20:14.738189Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=147 srtt_ms=147 rttvar_ms=73 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.738184Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:50546 frame_count=1 bytes=10 [INFO] [stdout] 2026-04-23T03:20:14.738215Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.738225Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.738246Z TRACE mio::poll: registering event source with poller: token=Token(128929079762304), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.738315Z 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-04-23T03:20:14.738337Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=16 slots_to_advance=1 max_advance=1 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.738350Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=49 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.738243Z 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-04-23T03:20:14.738369Z 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-04-23T03:20:14.738389Z 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-04-23T03:20:14.738408Z DEBUG kestrel_protocol::socket::transport::manager: 传输管理器重绑定完成 | Transport manager rebind completed actual_addr=127.0.0.1:33254 [INFO] [stdout] 2026-04-23T03:20:14.738410Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=49 peer_cid=149 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.738416Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=15 slots_to_advance=1 max_advance=1 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.738461Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.738467Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-04-23T03:20:14.738483Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.738495Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-04-23T03:20:14.738388Z TRACE kestrel_protocol::core::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-04-23T03:20:14.738524Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.738525Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:54807 frame_count=1 bytes=10 [INFO] [stdout] 2026-04-23T03:20:14.738538Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=110 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.738540Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=49 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.738549Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1391485104 state=FinWait [INFO] [stdout] 2026-04-23T03:20:14.738556Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=110 seq=0 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.738581Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=49 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.738604Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=49 peer_cid=149 [INFO] [stdout] 2026-04-23T03:20:14.738605Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:41330 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.738601Z 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: 148, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.738607Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:54807 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.738621Z 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: 7, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.738631Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Accepting new connection attempt addr=127.0.0.1:54807 [INFO] [stdout] 2026-04-23T03:20:14.738646Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=314894720 [INFO] [stdout] 2026-04-23T03:20:14.738646Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:41330 frame_count=1 bytes=29 [INFO] [stdout] 2026-04-23T03:20:14.738646Z TRACE kestrel_protocol::core::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: 7, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.738664Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=49 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.738683Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=49 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.736647Z 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-04-23T03:20:14.738709Z 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: 55, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] ok [INFO] [stdout] 2026-04-23T03:20:14.738742Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=49 [INFO] [stdout] 2026-04-23T03:20:14.738756Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=49 count=1 [INFO] [stdout] 2026-04-23T03:20:14.738637Z 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] test timer::event::traits::tests::test_copy_type_strategy_selection ... ok2026-04-23T03:20:14.738778Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=49 state=Established [INFO] [stdout] [INFO] [stdout] test socket::transport::udp::tests::test_shutdown_stops_receiver ... ok [INFO] [stdout] 2026-04-23T03:20:14.738798Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.738828Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=323757557 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.738839Z 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-04-23T03:20:14.738854Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=323757557 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.738857Z 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-04-23T03:20:14.738885Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.738898Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.738785Z TRACE kestrel_protocol::core::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-04-23T03:20:14.738914Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=323757557 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.738916Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.734516Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task has shut down [INFO] [stdout] 2026-04-23T03:20:14.738928Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=110 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.738931Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=323757557 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: 323757557 } } [INFO] [stdout] 2026-04-23T03:20:14.738946Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=110 seq=1 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.738950Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=3473445975 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.738974Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=323757557 [INFO] [stdout] 2026-04-23T03:20:14.738968Z 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: 149, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.738971Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-04-23T03:20:14.738998Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=323757557 state=Established [INFO] [stdout] test socket::tests::test_transport_layer_integration ... ok [INFO] [stdout] 2026-04-23T03:20:14.738743Z TRACE kestrel_protocol::core::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] test timer::event::traits::tests::test_pool_usage_clone_type ... ok [INFO] [stdout] 2026-04-23T03:20:14.739044Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=3473445975 addr=127.0.0.1:1001 [INFO] [stdout] 2026-04-23T03:20:14.739047Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=108 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.739070Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=108 seq=7 payload_len=1200 [INFO] [stdout] test timer::event::traits::tests::test_pool_usage_copy_type ... 2026-04-23T03:20:14.739074Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=3473445975 addr=127.0.0.1:1001 [INFO] [stdout] ok [INFO] [stdout] 2026-04-23T03:20:14.739101Z 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: 153, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.739000Z 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-04-23T03:20:14.736770Z 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-04-23T03:20:14.739277Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=323757557 [INFO] [stdout] 2026-04-23T03:20:14.739145Z 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-04-23T03:20:14.739288Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=109 [INFO] [stdout] 2026-04-23T03:20:14.739327Z 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-04-23T03:20:14.739235Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2514340911 [INFO] [stdout] test timer::event::traits::tests::test_strategy_traits_copy ... ok [INFO] [stdout] 2026-04-23T03:20:14.739405Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=111 peer_cid=11 state=Established [INFO] [stdout] 2026-04-23T03:20:14.739423Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=111 state=Established [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_event_factory_batch_creation ... ok [INFO] [stdout] 2026-04-23T03:20:14.739443Z 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-04-23T03:20:14.739465Z 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] test socket::transport::udp::tests::test_send_and_recv_decoupled ... ok [INFO] [stdout] 2026-04-23T03:20:14.739326Z TRACE kestrel_protocol::core::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-04-23T03:20:14.739512Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=108 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-04-23T03:20:14.739377Z TRACE kestrel_protocol::core::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-04-23T03:20:14.739530Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=108 seq=8 payload_len=640 [INFO] [stdout] 2026-04-23T03:20:14.739540Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=110 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.739558Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=110 seq=2 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.739556Z 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: 153, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.739490Z 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-04-23T03:20:14.739598Z 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: 149, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.739611Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=108 [INFO] [stdout] 2026-04-23T03:20:14.739613Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=111 [INFO] [stdout] 2026-04-23T03:20:14.739614Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1367191249 [INFO] [stdout] 2026-04-23T03:20:14.739631Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=108 count=9 [INFO] [stdout] 2026-04-23T03:20:14.739629Z 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-04-23T03:20:14.739646Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1367191249 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.739658Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=108 state=Established [INFO] [stdout] 2026-04-23T03:20:14.739665Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.739244Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.739683Z 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-04-23T03:20:14.739355Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.739704Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=147 srtt_ms=147 rttvar_ms=73 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.739723Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.739721Z 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-04-23T03:20:14.739736Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.739745Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=144 srtt_ms=144 rttvar_ms=72 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.739745Z 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-04-23T03:20:14.739763Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.739632Z 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-04-23T03:20:14.739766Z 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-04-23T03:20:14.739774Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.739783Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=112 peer_cid=12 state=Established [INFO] [stdout] 2026-04-23T03:20:14.739797Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=112 state=Established [INFO] [stdout] 2026-04-23T03:20:14.739810Z 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-04-23T03:20:14.739828Z 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-04-23T03:20:14.739844Z 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-04-23T03:20:14.739861Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=112 [INFO] [stdout] 2026-04-23T03:20:14.739874Z 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-04-23T03:20:14.739760Z 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-04-23T03:20:14.739900Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] test timer::event::traits::tests::test_strategy_traits_clone ... ok [INFO] [stdout] 2026-04-23T03:20:14.739784Z TRACE kestrel_protocol::core::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-04-23T03:20:14.739915Z 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-04-23T03:20:14.739914Z 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-04-23T03:20:14.739935Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=110 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.739936Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=147 srtt_ms=147 rttvar_ms=73 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.739954Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.739952Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=110 seq=3 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.739966Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.739977Z 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: 150, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.739799Z 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-04-23T03:20:14.739912Z TRACE kestrel_protocol::core::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-04-23T03:20:14.740005Z 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-04-23T03:20:14.740151Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=111 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.740170Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=111 seq=0 payload_len=1200 [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_fast_event_slot_creation ... 2026-04-23T03:20:14.740192Z 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: 149, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] ok [INFO] [stdout] 2026-04-23T03:20:14.739981Z 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-04-23T03:20:14.740156Z TRACE kestrel_protocol::core::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-04-23T03:20:14.740311Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=110 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.738693Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=314894720 remote_addr=127.0.0.1:54807 [INFO] [stdout] 2026-04-23T03:20:14.740281Z TRACE kestrel_protocol::core::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] test timer::event::zero_copy_tests::tests::test_event_factory_performance ... 2026-04-23T03:20:14.740233Z 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-04-23T03:20:14.740594Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=112 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.740613Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=112 seq=0 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.740636Z 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: 149, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.740544Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=110 seq=4 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.740701Z 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: 151, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.739715Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:1001 cid=3473445975 [INFO] [stdout] 2026-04-23T03:20:14.740792Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=501 delay_ms=5000 [INFO] [stdout] ok [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_event_factory_copy_strategy ... ok [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_fast_event_slot_non_power_of_two ... ok [INFO] [stdout] test socket::tests::test_actor_concurrent_write_sends_to_correct_addresses ... ok [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_fast_event_slot_concurrent_writes ... ok2026-04-23T03:20:14.740923Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:1001 cid=3473445975 [INFO] [stdout] [INFO] [stdout] 2026-04-23T03:20:14.741034Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:56422 frame_count=1 bytes=29 [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_fast_event_slot_write_multiple ... ok [INFO] [stdout] 2026-04-23T03:20:14.741094Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3473445975 state=SynReceived [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_fast_event_slot_write_single ... 2026-04-23T03:20:14.741099Z DEBUG kestrel_protocol::socket::event_loop: Received frame batch from transport addr=127.0.0.1:56422 frame_count=1 [INFO] [stdout] ok [INFO] [stdout] 2026-04-23T03:20:14.740108Z TRACE kestrel_protocol::core::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] test timer::event::zero_copy_tests::tests::test_complete_zero_copy_workflow ... 2026-04-23T03:20:14.741166Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=3616125308 frame=Ack { header: ShortHeader { command: Ack, connection_id: 3616125308, payload_length: 8, recv_window_size: 254, timestamp: 44, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] ok [INFO] [stdout] 2026-04-23T03:20:14.741147Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=109 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.741193Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=3473445975 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.741194Z 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: 3616125308, payload_length: 8, recv_window_size: 254, timestamp: 44, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.741209Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=109 seq=0 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.741219Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=3473445975 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.741222Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=3616125308 recv_next_seq=0 recv_window=254 payload_len=8 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.741242Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Closing state cid=3616125308 [INFO] [stdout] 2026-04-23T03:20:14.741239Z 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: 152, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.741257Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=3616125308 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=254 [INFO] [stdout] 2026-04-23T03:20:14.741285Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.741286Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.741300Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.741306Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Packet acknowledged by SACK seq=1 [INFO] [stdout] 2026-04-23T03:20:14.741315Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=3473445975 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.741318Z 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-04-23T03:20:14.741336Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=11 srtt_ms=11 rttvar_ms=5 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.741351Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.741361Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.741330Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=3473445975 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: 3473445975 } } [INFO] [stdout] 2026-04-23T03:20:14.741379Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3616125308 [INFO] [stdout] 2026-04-23T03:20:14.741398Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.741416Z 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-04-23T03:20:14.741435Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=3616125308 remote_addr=127.0.0.1:56422 frame_count=1 first_frame=Fin { header: ShortHeader { command: Fin, connection_id: 0, payload_length: 0, recv_window_size: 256, timestamp: 58, sequence_number: 2, recv_next_sequence: 0 } } [INFO] [stdout] 2026-04-23T03:20:14.740615Z TRACE kestrel_protocol::core::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-04-23T03:20:14.741490Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3616125308 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.741504Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=111 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.741524Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:56422 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.741525Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=111 seq=1 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.741280Z 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-04-23T03:20:14.741619Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:56422 frame_count=1 bytes=21 [INFO] [stdout] 2026-04-23T03:20:14.741705Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:41330 frame_count=1 bytes=21 [INFO] [stdout] 2026-04-23T03:20:14.741619Z 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-04-23T03:20:14.741872Z  INFO kestrel_protocol::socket::tests::rebind: 服务器从 127.0.0.1:56422 rebind到 127.0.0.1:33254 [INFO] [stdout] 2026-04-23T03:20:14.741619Z TRACE kestrel_protocol::core::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-04-23T03:20:14.741774Z TRACE kestrel_protocol::core::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-04-23T03:20:14.741926Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=109 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.741930Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=110 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.740672Z 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-04-23T03:20:14.741951Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=109 seq=1 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.741953Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=110 seq=5 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.741981Z 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: 153, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.741552Z 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: 150, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.742025Z 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-04-23T03:20:14.741968Z TRACE kestrel_protocol::core::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-04-23T03:20:14.742263Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=112 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.742279Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=112 seq=1 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.742299Z 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: 150, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.742174Z TRACE kestrel_protocol::core::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-04-23T03:20:14.742028Z 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-04-23T03:20:14.742331Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=111 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.742347Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=111 seq=2 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.742365Z 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: 151, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.742389Z 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-04-23T03:20:14.742326Z 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-04-23T03:20:14.742343Z TRACE kestrel_protocol::core::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-04-23T03:20:14.742667Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=109 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.742538Z TRACE kestrel_protocol::core::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-04-23T03:20:14.742689Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=109 seq=2 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.742702Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=111 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.742717Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=111 seq=3 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.742715Z 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: 153, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.742736Z 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: 152, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.742761Z 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-04-23T03:20:14.742643Z TRACE kestrel_protocol::core::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-04-23T03:20:14.742934Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=112 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.742949Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=112 seq=2 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.742967Z 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: 151, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.742908Z TRACE kestrel_protocol::core::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-04-23T03:20:14.742751Z 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-04-23T03:20:14.743055Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=111 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.743071Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=111 seq=4 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.743088Z 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: 152, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.743117Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3473445975 [INFO] [stdout] 2026-04-23T03:20:14.743150Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3473445975 state=Established [INFO] [stdout] 2026-04-23T03:20:14.743112Z 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] 2026-04-23T03:20:14.741985Z 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: 152, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.743637Z TRACE kestrel_protocol::core::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-04-23T03:20:14.743662Z 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-04-23T03:20:14.743795Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=111 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.743814Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=111 seq=5 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.743842Z 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: 153, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.743809Z TRACE kestrel_protocol::core::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-04-23T03:20:14.743944Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=110 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.743961Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=110 seq=6 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.743987Z 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: 154, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.743879Z 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] 2026-04-23T03:20:14.744020Z 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-04-23T03:20:14.744031Z TRACE kestrel_protocol::core::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-04-23T03:20:14.744183Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=111 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.744216Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=111 seq=6 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.744241Z 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: 153, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.744163Z TRACE kestrel_protocol::core::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-04-23T03:20:14.744322Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=110 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.744340Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=110 seq=7 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.744365Z 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: 154, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.744276Z 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-04-23T03:20:14.744400Z 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-04-23T03:20:14.744487Z TRACE kestrel_protocol::core::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-04-23T03:20:14.744593Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=110 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-04-23T03:20:14.744611Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=110 seq=8 payload_len=640 [INFO] [stdout] 2026-04-23T03:20:14.744637Z 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: 154, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.744671Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=110 [INFO] [stdout] 2026-04-23T03:20:14.744428Z TRACE kestrel_protocol::core::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-04-23T03:20:14.744693Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=110 count=9 [INFO] [stdout] 2026-04-23T03:20:14.744701Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=111 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.744722Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=111 seq=7 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.744724Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=110 state=Established [INFO] [stdout] 2026-04-23T03:20:14.744720Z 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-04-23T03:20:14.744751Z 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: 154, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.744841Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=75 slots_to_advance=7 max_advance=7 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.744788Z 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-04-23T03:20:14.744913Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=130 [INFO] [stdout] 2026-04-23T03:20:14.744935Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=130 state=Established [INFO] [stdout] 2026-04-23T03:20:14.744879Z TRACE kestrel_protocol::core::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-04-23T03:20:14.744970Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=111 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-04-23T03:20:14.744989Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=111 seq=8 payload_len=640 [INFO] [stdout] 2026-04-23T03:20:14.745012Z 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: 154, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.745044Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=111 [INFO] [stdout] 2026-04-23T03:20:14.745062Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=111 count=9 [INFO] [stdout] 2026-04-23T03:20:14.745093Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=111 state=Established [INFO] [stdout] 2026-04-23T03:20:14.742992Z 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] 2026-04-23T03:20:14.745211Z TRACE kestrel_protocol::core::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-04-23T03:20:14.745512Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=112 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.745532Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=112 seq=3 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.745560Z 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: 154, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.745618Z 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-04-23T03:20:14.745924Z TRACE kestrel_protocol::core::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-04-23T03:20:14.746231Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=112 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.746259Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=112 seq=4 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.746287Z 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: 154, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.746320Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=112 [INFO] [stdout] 2026-04-23T03:20:14.746338Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=112 count=5 [INFO] [stdout] 2026-04-23T03:20:14.746376Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=112 state=Established [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_zero_copy_batch_dispatcher_load_balancing ... ok [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_zero_copy_batch_dispatcher_multiple_batches ... ok [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_zero_copy_batch_dispatcher_creation ... ok [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_ref_event_handler_batch ... ok [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_ref_event_handler_single ... ok [INFO] [stdout] test socket::tests::test_actor_sends_to_correct_address_after_accept ... ok [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_zero_copy_batch_dispatcher_single_batch ... ok [INFO] [stdout] 2026-04-23T03:20:14.746731Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_zero_copy_single_event ... 2026-04-23T03:20:14.746886Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=115 [INFO] [stdout] 2026-04-23T03:20:14.740836Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=314894720 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] ok2026-04-23T03:20:14.746921Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=115 state=Established [INFO] [stdout] [INFO] [stdout] 2026-04-23T03:20:14.746964Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=49 [INFO] [stdout] 2026-04-23T03:20:14.746987Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.747000Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.747011Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.747021Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-04-23T03:20:14.747018Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=314894720 addr=127.0.0.1:54807 [INFO] [stdout] 2026-04-23T03:20:14.747031Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-04-23T03:20:14.747044Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-04-23T03:20:14.747055Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-04-23T03:20:14.747064Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-04-23T03:20:14.747053Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.747064Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=314894720 addr=127.0.0.1:54807 [INFO] [stdout] 2026-04-23T03:20:14.747074Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-04-23T03:20:14.747088Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: New connection successfully sent to user application addr=127.0.0.1:54807 cid=314894720 [INFO] [stdout] 2026-04-23T03:20:14.747131Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for inbound connection addr=127.0.0.1:54807 cid=314894720 [INFO] [stdout] 2026-04-23T03:20:14.747155Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=314894720 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.747088Z 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: 63, sequence_number: 0, recv_next_sequence: 1 }, payload: b"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" } [INFO] [stdout] 2026-04-23T03:20:14.747193Z 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: 63, sequence_number: 1, recv_next_sequence: 1 }, payload: b"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" } [INFO] [stdout] 2026-04-23T03:20:14.747277Z DEBUG kestrel_protocol::socket::transport::manager: 传输管理器重绑定地址 | Transport manager rebinding address new_addr=127.0.0.1:0 [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_zero_copy_concurrent_dispatching ... ok [INFO] [stdout] test timer::parallel::tests::test_comprehensive_optimization_benchmark ... ignored [INFO] [stdout] 2026-04-23T03:20:14.747349Z TRACE mio::poll: registering event source with poller: token=Token(128928543136768), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.747296Z 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: 63, sequence_number: 2, recv_next_sequence: 1 }, payload: b"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" } [INFO] [stdout] 2026-04-23T03:20:14.747411Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.747399Z 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: 63, sequence_number: 3, recv_next_sequence: 1 }, payload: b"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" } [INFO] [stdout] 2026-04-23T03:20:14.747523Z DEBUG kestrel_protocol::socket::transport::manager: 传输管理器重绑定完成 | Transport manager rebind completed actual_addr=127.0.0.1:38291 [INFO] [stdout] 2026-04-23T03:20:14.747585Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-04-23T03:20:14.747608Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-04-23T03:20:14.747501Z 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: 63, sequence_number: 4, recv_next_sequence: 1 }, payload: b"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" } [INFO] [stdout] 2026-04-23T03:20:14.747642Z DEBUG kestrel_protocol::socket::transport::sender: Transport sender task is swapping to a new transport [INFO] [stdout] 2026-04-23T03:20:14.747685Z DEBUG kestrel_protocol::socket::transport::udp: Receiver task received shutdown signal [INFO] [stdout] 2026-04-23T03:20:14.747698Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task has shut down [INFO] [stdout] 2026-04-23T03:20:14.747726Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor has shut down [INFO] [stdout] 2026-04-23T03:20:14.747633Z 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: 63, sequence_number: 5, recv_next_sequence: 1 }, payload: b"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" } [INFO] [stdout] 2026-04-23T03:20:14.747762Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-04-23T03:20:14.747745Z 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: 63, sequence_number: 6, recv_next_sequence: 1 }, payload: b"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" } [INFO] [stdout] 2026-04-23T03:20:14.747924Z TRACE mio::poll: registering event source with poller: token=Token(128928542908928), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.747856Z 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: 63, sequence_number: 7, recv_next_sequence: 1 }, payload: b"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" } [INFO] [stdout] 2026-04-23T03:20:14.747960Z 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: 63, sequence_number: 8, recv_next_sequence: 1 }, payload: b"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" } [INFO] [stdout] 2026-04-23T03:20:14.748036Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=49 state=Established [INFO] [stdout] 2026-04-23T03:20:14.748113Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.748122Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=116 [INFO] [stdout] 2026-04-23T03:20:14.748130Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-04-23T03:20:14.748140Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.748145Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=116 state=Established [INFO] [stdout] 2026-04-23T03:20:14.748153Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:49985) [INFO] [stdout] 2026-04-23T03:20:14.748225Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-04-23T03:20:14.748232Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=117 [INFO] [stdout] 2026-04-23T03:20:14.748246Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-04-23T03:20:14.748255Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=117 state=Established [INFO] [stdout] 2026-04-23T03:20:14.748276Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.748316Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=118 [INFO] [stdout] 2026-04-23T03:20:14.748326Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=4056704995 [INFO] [stdout] 2026-04-23T03:20:14.748337Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=118 state=Established [INFO] [stdout] 2026-04-23T03:20:14.748373Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=4056704995 remote_addr=127.0.0.1:38291 [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_zero_copy_performance_large_batch ... ok2026-04-23T03:20:14.748443Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] [INFO] [stdout] 2026-04-23T03:20:14.748489Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=132 [INFO] [stdout] 2026-04-23T03:20:14.748493Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=4056704995 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.748514Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=132 state=Established [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_zero_copy_empty_batch ... 2026-04-23T03:20:14.743073Z TRACE kestrel_protocol::core::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-04-23T03:20:14.748631Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=109 seq=3 payload_len=1200 state=Established [INFO] [stdout] ok2026-04-23T03:20:14.748731Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=109 seq=3 payload_len=1200 [INFO] [stdout] [INFO] [stdout] 2026-04-23T03:20:14.748761Z 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: 159, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.748801Z 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-04-23T03:20:14.749074Z TRACE kestrel_protocol::core::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-04-23T03:20:14.749374Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=109 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.749390Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=109 seq=4 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.749410Z 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: 160, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.748667Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.749436Z 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] test timer::event::zero_copy_tests::tests::test_zero_copy_performance_small_batch ... ok [INFO] [stdout] 2026-04-23T03:20:14.749741Z TRACE kestrel_protocol::core::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-04-23T03:20:14.750030Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=109 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.750034Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.750046Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=109 seq=5 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.750067Z 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: 161, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.750121Z 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-04-23T03:20:14.748588Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.750596Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=4056704995 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-04-23T03:20:14.750672Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=4056704995 addr=127.0.0.1:38291 [INFO] [stdout] 2026-04-23T03:20:14.750757Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=4056704995 addr=127.0.0.1:38291 [INFO] [stdout] 2026-04-23T03:20:14.750804Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for outbound connection addr=127.0.0.1:38291 cid=4056704995 [INFO] [stdout] 2026-04-23T03:20:14.750827Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=4056704995 remote_addr=127.0.0.1:38291 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 4056704995 } } [INFO] [stdout] 2026-04-23T03:20:14.750855Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4056704995 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.750887Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:38291 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.750919Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:38291 frame_count=1 bytes=10 [INFO] [stdout] 2026-04-23T03:20:14.751087Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=1916632608 [INFO] [stdout] 2026-04-23T03:20:14.751138Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=1916632608 remote_addr=127.0.0.1:38291 [INFO] [stdout] 2026-04-23T03:20:14.751216Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=3 slot_index=501 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.751248Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=3 entry_id=3 connection_id=1916632608 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.751305Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=4 slot_index=441 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.751335Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=4 entry_id=4 connection_id=1916632608 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-04-23T03:20:14.751389Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=1916632608 addr=127.0.0.1:38291 [INFO] [stdout] 2026-04-23T03:20:14.751420Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=1916632608 addr=127.0.0.1:38291 [INFO] [stdout] 2026-04-23T03:20:14.751452Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for outbound connection addr=127.0.0.1:38291 cid=1916632608 [INFO] [stdout] 2026-04-23T03:20:14.751473Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=1916632608 remote_addr=127.0.0.1:38291 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 1916632608 } } [INFO] [stdout] 2026-04-23T03:20:14.751500Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1916632608 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.751528Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:38291 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.751555Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:38291 frame_count=1 bytes=10 [INFO] [stdout] 2026-04-23T03:20:14.751826Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=314894720 [INFO] [stdout] 2026-04-23T03:20:14.751980Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-04-23T03:20:14.752099Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-04-23T03:20:14.752133Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=637621022 [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_zero_copy_performance_medium_batch ... ok [INFO] [stdout] 2026-04-23T03:20:14.752189Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] test timer::event::zero_copy_tests::tests::test_zero_copy_max_batch_size ... ok [INFO] [stdout] 2026-04-23T03:20:14.752228Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=4056704995 [INFO] [stdout] 2026-04-23T03:20:14.752321Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.752851Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=110 slots_to_advance=11 max_advance=11 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.752940Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=134 [INFO] [stdout] 2026-04-23T03:20:14.752964Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=134 state=Established [INFO] [stdout] 2026-04-23T03:20:14.753011Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=135 [INFO] [stdout] 2026-04-23T03:20:14.753036Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=135 state=Established [INFO] [stdout] 2026-04-23T03:20:14.753083Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=136 [INFO] [stdout] 2026-04-23T03:20:14.753108Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=136 state=Established [INFO] [stdout] 2026-04-23T03:20:14.753138Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=82 slots_to_advance=8 max_advance=8 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.753234Z 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-04-23T03:20:14.753252Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:56881 frame_count=1 bytes=27 [INFO] [stdout] 2026-04-23T03:20:14.753269Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=47 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.753304Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=137 [INFO] [stdout] 2026-04-23T03:20:14.753319Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=137 state=Established [INFO] [stdout] 2026-04-23T03:20:14.753388Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=138 [INFO] [stdout] 2026-04-23T03:20:14.753383Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:52784 frame_count=1 bytes=27 [INFO] [stdout] 2026-04-23T03:20:14.753404Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=138 state=Established [INFO] [stdout] 2026-04-23T03:20:14.753458Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=176 slots_to_advance=17 max_advance=17 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.753501Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=175 slots_to_advance=17 max_advance=17 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.753539Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=175 slots_to_advance=17 max_advance=17 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.753600Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=141 [INFO] [stdout] 2026-04-23T03:20:14.753618Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=141 state=Established [INFO] [stdout] 2026-04-23T03:20:14.753688Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=142 [INFO] [stdout] 2026-04-23T03:20:14.753703Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=142 state=Established [INFO] [stdout] 2026-04-23T03:20:14.753746Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=143 [INFO] [stdout] 2026-04-23T03:20:14.753759Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=143 state=Established [INFO] [stdout] 2026-04-23T03:20:14.753800Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=144 [INFO] [stdout] 2026-04-23T03:20:14.753813Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=144 state=Established [INFO] [stdout] 2026-04-23T03:20:14.753867Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=146 [INFO] [stdout] 2026-04-23T03:20:14.753882Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=146 state=Established [INFO] [stdout] 2026-04-23T03:20:14.754029Z 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-04-23T03:20:14.754107Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=175 slots_to_advance=17 max_advance=17 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.754151Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=174 slots_to_advance=17 max_advance=17 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.754182Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=75 slots_to_advance=7 max_advance=7 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.754222Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=72 slots_to_advance=7 max_advance=7 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.754276Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=171 slots_to_advance=17 max_advance=17 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.754317Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=72 slots_to_advance=7 max_advance=7 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.754348Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=171 slots_to_advance=17 max_advance=17 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.754495Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=71 slots_to_advance=7 max_advance=7 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.754532Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=169 slots_to_advance=16 max_advance=16 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.748592Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=133 [INFO] [stdout] 2026-04-23T03:20:14.754621Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=133 state=Established [INFO] [stdout] 2026-04-23T03:20:14.754684Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=129 [INFO] [stdout] 2026-04-23T03:20:14.754704Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=129 state=Established [INFO] [stdout] 2026-04-23T03:20:14.754772Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=89 slots_to_advance=8 max_advance=8 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.754811Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=89 slots_to_advance=8 max_advance=8 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.754881Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=40 [INFO] [stdout] 2026-04-23T03:20:14.754909Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.754924Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.754936Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.754946Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-04-23T03:20:14.754956Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-04-23T03:20:14.754965Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-04-23T03:20:14.754974Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-04-23T03:20:14.754983Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-04-23T03:20:14.754992Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-04-23T03:20:14.755006Z 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: 101, sequence_number: 0, recv_next_sequence: 1 }, payload: b"''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''" } [INFO] [stdout] 2026-04-23T03:20:14.755187Z 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-04-23T03:20:14.755127Z 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: 101, sequence_number: 1, recv_next_sequence: 1 }, payload: b"''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''" } [INFO] [stdout] 2026-04-23T03:20:14.755234Z 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-04-23T03:20:14.755250Z DEBUG kestrel_protocol::core::reliability::congestion::vegas: Congestive loss detected! New ssthresh: 16, New cwnd: 16 [INFO] [stdout] 2026-04-23T03:20:14.755261Z DEBUG kestrel_protocol::core::reliability: Congestion window reduced due to retransmissions old_cwnd=32 new_cwnd=16 count=1 [INFO] [stdout] 2026-04-23T03:20:14.755277Z DEBUG kestrel_protocol::core::reliability::retransmission::rtt: RTO backoff old_rto_ms=100 new_rto_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.755294Z 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: 154, sequence_number: 0, recv_next_sequence: 0 }, payload: b"rto test data" } [INFO] [stdout] 2026-04-23T03:20:14.755329Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.755242Z 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: 101, sequence_number: 2, recv_next_sequence: 1 }, payload: b"''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''" } [INFO] [stdout] 2026-04-23T03:20:14.755346Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.755348Z 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: 101, sequence_number: 3, recv_next_sequence: 1 }, payload: b"''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''" } [INFO] [stdout] 2026-04-23T03:20:14.755458Z 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: 101, sequence_number: 4, recv_next_sequence: 1 }, payload: b"''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''" } [INFO] [stdout] 2026-04-23T03:20:14.755585Z 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: 101, sequence_number: 5, recv_next_sequence: 1 }, payload: b"''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''" } [INFO] [stdout] 2026-04-23T03:20:14.755692Z 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: 101, sequence_number: 6, recv_next_sequence: 1 }, payload: b"''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''" } [INFO] [stdout] 2026-04-23T03:20:14.755795Z 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: 101, sequence_number: 7, recv_next_sequence: 1 }, payload: b"''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''" } [INFO] [stdout] 2026-04-23T03:20:14.755903Z 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: 101, sequence_number: 8, recv_next_sequence: 1 }, payload: b"''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''" } [INFO] [stdout] 2026-04-23T03:20:14.755974Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=40 state=Established [INFO] [stdout] 2026-04-23T03:20:14.756049Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=43 [INFO] [stdout] 2026-04-23T03:20:14.756070Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.756082Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.756092Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.756101Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-04-23T03:20:14.756111Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-04-23T03:20:14.756121Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-04-23T03:20:14.756132Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-04-23T03:20:14.756141Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-04-23T03:20:14.756150Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-04-23T03:20:14.756162Z 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: 93, sequence_number: 0, recv_next_sequence: 1 }, payload: b"************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************" } [INFO] [stdout] 2026-04-23T03:20:14.756284Z 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: 93, sequence_number: 1, recv_next_sequence: 1 }, payload: b"************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************" } [INFO] [stdout] 2026-04-23T03:20:14.756384Z 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: 93, sequence_number: 2, recv_next_sequence: 1 }, payload: b"************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************" } [INFO] [stdout] 2026-04-23T03:20:14.750414Z TRACE kestrel_protocol::core::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-04-23T03:20:14.756746Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=109 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.756764Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=109 seq=6 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.756796Z 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: 167, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.756831Z 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-04-23T03:20:14.757141Z TRACE kestrel_protocol::core::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-04-23T03:20:14.757447Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=109 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.757464Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=109 seq=7 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.757484Z 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: 168, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.757511Z 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-04-23T03:20:14.757700Z 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: 154, sequence_number: 0, recv_next_sequence: 0 }, payload: b"rto test data" } [INFO] [stdout] 2026-04-23T03:20:14.757730Z TRACE kestrel_protocol::core::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: 154, sequence_number: 0, recv_next_sequence: 0 }, payload: b"rto test data" } [INFO] [stdout] 2026-04-23T03:20:14.757749Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=0 payload_len=13 state=Established [INFO] [stdout] 2026-04-23T03:20:14.757765Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=0 payload_len=13 [INFO] [stdout] 2026-04-23T03:20:14.757783Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.757800Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.757696Z TRACE kestrel_protocol::core::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-04-23T03:20:14.757860Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=109 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-04-23T03:20:14.757874Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=109 seq=8 payload_len=640 [INFO] [stdout] 2026-04-23T03:20:14.757895Z 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: 169, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.757921Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=109 [INFO] [stdout] 2026-04-23T03:20:14.757939Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=109 count=9 [INFO] [stdout] 2026-04-23T03:20:14.757963Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=109 state=Established [INFO] [stdout] 2026-04-23T03:20:14.758045Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=131 [INFO] [stdout] 2026-04-23T03:20:14.758063Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=131 state=Established [INFO] [stdout] 2026-04-23T03:20:14.758091Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=28 [INFO] [stdout] 2026-04-23T03:20:14.758106Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=28 state=Established [INFO] [stdout] 2026-04-23T03:20:14.758178Z 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-04-23T03:20:14.758226Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=48 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.758344Z 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-04-23T03:20:14.758373Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=50 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.758441Z 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-04-23T03:20:14.758485Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=45 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.758504Z 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] 2026-04-23T03:20:14.758521Z 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] 2026-04-23T03:20:14.758537Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=45 peer_cid=145 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.758602Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=29 [INFO] [stdout] 2026-04-23T03:20:14.758622Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=29 state=Established [INFO] [stdout] 2026-04-23T03:20:14.758658Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=5 [INFO] [stdout] 2026-04-23T03:20:14.758673Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=5 state=Established [INFO] [stdout] 2026-04-23T03:20:14.758713Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=74 slots_to_advance=7 max_advance=7 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.758747Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=173 slots_to_advance=17 max_advance=17 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.758784Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.758799Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.758822Z 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: 118, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.758844Z 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: 118, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.758864Z 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-04-23T03:20:14.758885Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2 [INFO] [stdout] 2026-04-23T03:20:14.758901Z 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-04-23T03:20:14.758933Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.758949Z 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-04-23T03:20:14.758975Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=181 srtt_ms=181 rttvar_ms=90 rto_ms=543 [INFO] [stdout] 2026-04-23T03:20:14.758991Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.759002Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.759020Z 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: 124, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.759040Z 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: 124, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.759057Z 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-04-23T03:20:14.759074Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2 [INFO] [stdout] 2026-04-23T03:20:14.759090Z 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-04-23T03:20:14.759109Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-04-23T03:20:14.759120Z 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-04-23T03:20:14.759135Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=181 srtt_ms=181 rttvar_ms=67 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.759149Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.759165Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.759180Z 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: 135, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.759207Z 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: 135, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.759224Z 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-04-23T03:20:14.759247Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2 [INFO] [stdout] 2026-04-23T03:20:14.759258Z 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-04-23T03:20:14.759280Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-04-23T03:20:14.759292Z 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-04-23T03:20:14.759309Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=181 srtt_ms=181 rttvar_ms=51 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.759322Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-04-23T03:20:14.759330Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-04-23T03:20:14.759352Z 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: 148, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.759375Z 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: 148, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.759391Z 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-04-23T03:20:14.759407Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2 [INFO] [stdout] 2026-04-23T03:20:14.759418Z 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-04-23T03:20:14.759444Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] 2026-04-23T03:20:14.759456Z 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-04-23T03:20:14.759478Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=181 srtt_ms=181 rttvar_ms=38 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.759499Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-04-23T03:20:14.759509Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-04-23T03:20:14.759523Z 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: 149, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.759540Z 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: 149, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.759555Z 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-04-23T03:20:14.759590Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2 [INFO] [stdout] 2026-04-23T03:20:14.759608Z 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-04-23T03:20:14.759637Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-04-23T03:20:14.759654Z 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-04-23T03:20:14.759677Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=181 srtt_ms=181 rttvar_ms=28 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.759691Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-04-23T03:20:14.759701Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] 2026-04-23T03:20:14.759721Z 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: 156, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.759745Z 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: 156, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.759766Z 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-04-23T03:20:14.759787Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2 [INFO] [stdout] 2026-04-23T03:20:14.759799Z 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-04-23T03:20:14.759823Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=5 [INFO] [stdout] 2026-04-23T03:20:14.759836Z 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-04-23T03:20:14.759856Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=182 srtt_ms=181 rttvar_ms=21 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.759870Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=38 [INFO] [stdout] 2026-04-23T03:20:14.759887Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=37 new_cwnd=38 [INFO] [stdout] 2026-04-23T03:20:14.759901Z 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: 156, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.759925Z 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: 156, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.759948Z 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-04-23T03:20:14.759969Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2 [INFO] [stdout] 2026-04-23T03:20:14.759981Z 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-04-23T03:20:14.760005Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=6 [INFO] [stdout] 2026-04-23T03:20:14.760017Z 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-04-23T03:20:14.760039Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=182 srtt_ms=181 rttvar_ms=16 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.760062Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=39 [INFO] [stdout] 2026-04-23T03:20:14.760071Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=38 new_cwnd=39 [INFO] [stdout] 2026-04-23T03:20:14.760090Z 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: 157, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.760114Z 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: 157, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.760136Z 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-04-23T03:20:14.760159Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2 [INFO] [stdout] 2026-04-23T03:20:14.760169Z 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-04-23T03:20:14.760194Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=7 [INFO] [stdout] 2026-04-23T03:20:14.760221Z 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-04-23T03:20:14.760237Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=182 srtt_ms=181 rttvar_ms=12 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.760257Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=40 [INFO] [stdout] 2026-04-23T03:20:14.760266Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=39 new_cwnd=40 [INFO] [stdout] 2026-04-23T03:20:14.760287Z 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: 161, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.760309Z 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: 161, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.760325Z 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-04-23T03:20:14.760341Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=2 [INFO] [stdout] 2026-04-23T03:20:14.760352Z 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-04-23T03:20:14.760372Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=8 [INFO] [stdout] 2026-04-23T03:20:14.760384Z 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-04-23T03:20:14.760398Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=182 srtt_ms=181 rttvar_ms=9 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.760412Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=41 [INFO] [stdout] 2026-04-23T03:20:14.760422Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=40 new_cwnd=41 [INFO] [stdout] 2026-04-23T03:20:14.760435Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.760452Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.760486Z 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: 112, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.760505Z 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: 112, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.760522Z 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-04-23T03:20:14.760547Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=3 [INFO] [stdout] 2026-04-23T03:20:14.760559Z 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-04-23T03:20:14.760603Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.760616Z 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-04-23T03:20:14.760638Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=182 srtt_ms=182 rttvar_ms=91 rto_ms=546 [INFO] [stdout] 2026-04-23T03:20:14.760653Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.760669Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.760685Z 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: 113, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.760709Z 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: 113, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.760734Z 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-04-23T03:20:14.760755Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=3 [INFO] [stdout] 2026-04-23T03:20:14.760767Z 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-04-23T03:20:14.760791Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-04-23T03:20:14.760811Z 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-04-23T03:20:14.760828Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=182 srtt_ms=182 rttvar_ms=68 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.760847Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.760857Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.760879Z 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: 124, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.760904Z 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: 124, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.760924Z 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-04-23T03:20:14.760940Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=3 [INFO] [stdout] 2026-04-23T03:20:14.760950Z 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-04-23T03:20:14.760969Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-04-23T03:20:14.760981Z 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-04-23T03:20:14.760995Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=182 srtt_ms=182 rttvar_ms=51 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.761009Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-04-23T03:20:14.761018Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-04-23T03:20:14.761033Z 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: 124, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.761051Z 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: 124, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.761067Z 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-04-23T03:20:14.761083Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=3 [INFO] [stdout] 2026-04-23T03:20:14.761094Z 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-04-23T03:20:14.761121Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] 2026-04-23T03:20:14.761133Z 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-04-23T03:20:14.761152Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=182 srtt_ms=182 rttvar_ms=38 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.761166Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-04-23T03:20:14.761176Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-04-23T03:20:14.761190Z 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: 137, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.761216Z 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: 137, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.761232Z 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-04-23T03:20:14.761252Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=3 [INFO] [stdout] 2026-04-23T03:20:14.761263Z 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-04-23T03:20:14.761282Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-04-23T03:20:14.761296Z 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-04-23T03:20:14.761313Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=182 srtt_ms=182 rttvar_ms=29 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.761330Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-04-23T03:20:14.761340Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] 2026-04-23T03:20:14.761354Z 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: 137, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.761372Z 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: 137, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.761391Z 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-04-23T03:20:14.761408Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=3 [INFO] [stdout] 2026-04-23T03:20:14.761419Z 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-04-23T03:20:14.761437Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=5 [INFO] [stdout] 2026-04-23T03:20:14.761457Z 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-04-23T03:20:14.761477Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=183 srtt_ms=182 rttvar_ms=22 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.761492Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=38 [INFO] [stdout] 2026-04-23T03:20:14.761501Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=37 new_cwnd=38 [INFO] [stdout] 2026-04-23T03:20:14.761516Z 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: 139, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.761535Z 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: 139, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] test socket::tests::rebind::test_simple_rebind_new_connections ... ok [INFO] [stdout] 2026-04-23T03:20:14.761691Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=39 [INFO] [stdout] 2026-04-23T03:20:14.761725Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.761740Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.761752Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.761761Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-04-23T03:20:14.761771Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-04-23T03:20:14.761781Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-04-23T03:20:14.761791Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-04-23T03:20:14.761801Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-04-23T03:20:14.761811Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-04-23T03:20:14.761821Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.761825Z 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: 112, sequence_number: 0, recv_next_sequence: 1 }, payload: b"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&" } [INFO] [stdout] 2026-04-23T03:20:14.761944Z 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: 112, sequence_number: 1, recv_next_sequence: 1 }, payload: b"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&" } [INFO] [stdout] test timer::parallel::tests::test_simd_processor ... ok [INFO] [stdout] 2026-04-23T03:20:14.762062Z 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: 112, sequence_number: 2, recv_next_sequence: 1 }, payload: b"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&" } [INFO] [stdout] 2026-04-23T03:20:14.762177Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.762172Z 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: 112, sequence_number: 3, recv_next_sequence: 1 }, payload: b"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&" } [INFO] [stdout] 2026-04-23T03:20:14.762287Z 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: 112, sequence_number: 4, recv_next_sequence: 1 }, payload: b"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&" } [INFO] [stdout] 2026-04-23T03:20:14.762396Z 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: 112, sequence_number: 5, recv_next_sequence: 1 }, payload: b"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&" } [INFO] [stdout] 2026-04-23T03:20:14.762505Z 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: 112, sequence_number: 6, recv_next_sequence: 1 }, payload: b"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&" } [INFO] [stdout] test timer::parallel::tests::test_simd_processor_detailed ... ok [INFO] [stdout] 2026-04-23T03:20:14.762663Z 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: 112, sequence_number: 7, recv_next_sequence: 1 }, payload: b"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&" } [INFO] [stdout] 2026-04-23T03:20:14.762774Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.762776Z 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: 112, sequence_number: 8, recv_next_sequence: 1 }, payload: b"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&" } [INFO] [stdout] 2026-04-23T03:20:14.762824Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.762854Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=39 state=Established [INFO] [stdout] 2026-04-23T03:20:14.762965Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=119 [INFO] [stdout] 2026-04-23T03:20:14.762991Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=119 state=Established [INFO] [stdout] 2026-04-23T03:20:14.763023Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=4 [INFO] [stdout] 2026-04-23T03:20:14.763037Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.763071Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=177 slots_to_advance=17 max_advance=17 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.763117Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=176 slots_to_advance=17 max_advance=17 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.763150Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=174 slots_to_advance=17 max_advance=17 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.763182Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=174 slots_to_advance=17 max_advance=17 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.763232Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=30 [INFO] [stdout] 2026-04-23T03:20:14.763248Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=30 state=Established [INFO] [stdout] 2026-04-23T03:20:14.763274Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=173 slots_to_advance=17 max_advance=17 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.763308Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=173 slots_to_advance=17 max_advance=17 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.763773Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=173 slots_to_advance=17 max_advance=17 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.763824Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=173 slots_to_advance=17 max_advance=17 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.763857Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=172 slots_to_advance=17 max_advance=17 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.763898Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=171 slots_to_advance=17 max_advance=17 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.763940Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=172 slots_to_advance=17 max_advance=17 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.763990Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=33 [INFO] [stdout] 2026-04-23T03:20:14.764013Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=33 state=Established [INFO] [stdout] 2026-04-23T03:20:14.764044Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=6 [INFO] [stdout] 2026-04-23T03:20:14.764059Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=6 state=Established [INFO] [stdout] 2026-04-23T03:20:14.764084Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=170 slots_to_advance=17 max_advance=17 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.764127Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=169 slots_to_advance=16 max_advance=16 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.764172Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=32 [INFO] [stdout] 2026-04-23T03:20:14.764208Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=32 state=Established [INFO] [stdout] 2026-04-23T03:20:14.764250Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=170 slots_to_advance=17 max_advance=17 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.764292Z 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: 133, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.764321Z 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: 133, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.764341Z 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-04-23T03:20:14.764358Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=7 [INFO] [stdout] 2026-04-23T03:20:14.764372Z 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-04-23T03:20:14.764401Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.764417Z 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-04-23T03:20:14.764435Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=176 srtt_ms=176 rttvar_ms=88 rto_ms=530 [INFO] [stdout] 2026-04-23T03:20:14.764451Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.764462Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.764479Z 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: 134, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.764498Z 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: 134, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.764514Z 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-04-23T03:20:14.764531Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=7 [INFO] [stdout] 2026-04-23T03:20:14.764542Z 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-04-23T03:20:14.764561Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-04-23T03:20:14.764608Z 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-04-23T03:20:14.764625Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=176 srtt_ms=176 rttvar_ms=66 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.764640Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.764650Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.764676Z 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: 136, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.764696Z 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: 136, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.764712Z 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-04-23T03:20:14.764728Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=7 [INFO] [stdout] 2026-04-23T03:20:14.764739Z 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-04-23T03:20:14.764760Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-04-23T03:20:14.764772Z 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-04-23T03:20:14.764788Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=177 srtt_ms=176 rttvar_ms=49 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.764802Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-04-23T03:20:14.764819Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] test timer::parallel::tests::test_single_thread_bypass ... 2026-04-23T03:20:14.764833Z 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: 137, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] ok [INFO] [stdout] 2026-04-23T03:20:14.764853Z 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: 137, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.764869Z 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-04-23T03:20:14.764886Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=7 [INFO] [stdout] 2026-04-23T03:20:14.764896Z 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-04-23T03:20:14.764915Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] 2026-04-23T03:20:14.764927Z 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-04-23T03:20:14.764944Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=177 srtt_ms=176 rttvar_ms=37 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.764958Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-04-23T03:20:14.764958Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.764967Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-04-23T03:20:14.764986Z 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: 137, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.765003Z 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: 137, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.765019Z 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-04-23T03:20:14.765035Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=7 [INFO] [stdout] 2026-04-23T03:20:14.765046Z 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-04-23T03:20:14.765065Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-04-23T03:20:14.765076Z 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-04-23T03:20:14.765092Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=177 srtt_ms=177 rttvar_ms=28 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.765106Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-04-23T03:20:14.765115Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] 2026-04-23T03:20:14.765129Z 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: 144, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.765147Z 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: 144, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.765163Z 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-04-23T03:20:14.765179Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=7 [INFO] [stdout] 2026-04-23T03:20:14.765189Z 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-04-23T03:20:14.765218Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=5 [INFO] [stdout] 2026-04-23T03:20:14.765229Z 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-04-23T03:20:14.765246Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=177 srtt_ms=177 rttvar_ms=21 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.765261Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=38 [INFO] [stdout] 2026-04-23T03:20:14.765270Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=37 new_cwnd=38 [INFO] [stdout] 2026-04-23T03:20:14.765284Z 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: 147, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.765302Z 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: 147, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.765318Z 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-04-23T03:20:14.765334Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=7 [INFO] [stdout] 2026-04-23T03:20:14.765345Z 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-04-23T03:20:14.765363Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=6 [INFO] [stdout] 2026-04-23T03:20:14.765374Z 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-04-23T03:20:14.765391Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=177 srtt_ms=177 rttvar_ms=16 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.765405Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=39 [INFO] [stdout] 2026-04-23T03:20:14.765414Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=38 new_cwnd=39 [INFO] [stdout] 2026-04-23T03:20:14.765428Z 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: 151, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.765456Z 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: 151, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.765473Z 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-04-23T03:20:14.765492Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=7 [INFO] [stdout] 2026-04-23T03:20:14.765503Z 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-04-23T03:20:14.765523Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=7 [INFO] [stdout] 2026-04-23T03:20:14.765535Z 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-04-23T03:20:14.765551Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=177 srtt_ms=177 rttvar_ms=12 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.765584Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=40 [INFO] [stdout] 2026-04-23T03:20:14.765593Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=39 new_cwnd=40 [INFO] [stdout] 2026-04-23T03:20:14.765608Z 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: 152, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.765627Z 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: 152, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.765643Z 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-04-23T03:20:14.765660Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=7 [INFO] [stdout] 2026-04-23T03:20:14.765671Z 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-04-23T03:20:14.765691Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=8 [INFO] [stdout] 2026-04-23T03:20:14.765703Z 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-04-23T03:20:14.765722Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=178 srtt_ms=177 rttvar_ms=9 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.765737Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=41 [INFO] [stdout] 2026-04-23T03:20:14.765746Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=40 new_cwnd=41 [INFO] [stdout] 2026-04-23T03:20:14.765760Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=7 [INFO] [stdout] 2026-04-23T03:20:14.765775Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=7 state=Established [INFO] [stdout] 2026-04-23T03:20:14.765814Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=169 slots_to_advance=16 max_advance=16 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.765851Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=169 slots_to_advance=16 max_advance=16 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.765880Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=168 slots_to_advance=16 max_advance=16 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.765911Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=168 slots_to_advance=16 max_advance=16 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.765942Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=167 slots_to_advance=16 max_advance=16 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.765976Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=167 slots_to_advance=16 max_advance=16 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.766014Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=34 [INFO] [stdout] 2026-04-23T03:20:14.766029Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=34 state=Established [INFO] [stdout] 2026-04-23T03:20:14.766055Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=166 slots_to_advance=16 max_advance=16 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.766088Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=166 slots_to_advance=16 max_advance=16 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.766124Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=12 [INFO] [stdout] 2026-04-23T03:20:14.766138Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=12 state=Established [INFO] [stdout] 2026-04-23T03:20:14.766167Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=165 slots_to_advance=16 max_advance=16 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.766210Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=165 slots_to_advance=16 max_advance=16 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.766244Z 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-04-23T03:20:14.766262Z 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-04-23T03:20:14.766277Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=113 peer_cid=13 state=Established [INFO] [stdout] 2026-04-23T03:20:14.766291Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=113 state=Established [INFO] [stdout] 2026-04-23T03:20:14.766305Z 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-04-23T03:20:14.766322Z 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-04-23T03:20:14.766338Z 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-04-23T03:20:14.766354Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=113 [INFO] [stdout] 2026-04-23T03:20:14.766365Z 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-04-23T03:20:14.766387Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.766399Z 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-04-23T03:20:14.766416Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=171 srtt_ms=171 rttvar_ms=85 rto_ms=515 [INFO] [stdout] 2026-04-23T03:20:14.766432Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.766441Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.756490Z 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: 93, sequence_number: 3, recv_next_sequence: 1 }, payload: b"************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************" } [INFO] [stdout] 2026-04-23T03:20:14.766640Z 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: 93, sequence_number: 4, recv_next_sequence: 1 }, payload: b"************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************" } [INFO] [stdout] 2026-04-23T03:20:14.766748Z 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: 93, sequence_number: 5, recv_next_sequence: 1 }, payload: b"************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************" } [INFO] [stdout] 2026-04-23T03:20:14.766852Z 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: 93, sequence_number: 6, recv_next_sequence: 1 }, payload: b"************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************" } [INFO] [stdout] 2026-04-23T03:20:14.766954Z 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: 93, sequence_number: 7, recv_next_sequence: 1 }, payload: b"************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************" } [INFO] [stdout] 2026-04-23T03:20:14.767059Z 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: 93, sequence_number: 8, recv_next_sequence: 1 }, payload: b"****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************" } [INFO] [stdout] 2026-04-23T03:20:14.767129Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=43 state=Established [INFO] [stdout] 2026-04-23T03:20:14.767212Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=13 [INFO] [stdout] 2026-04-23T03:20:14.767231Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=13 state=Established [INFO] [stdout] 2026-04-23T03:20:14.767290Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=21 slots_to_advance=2 max_advance=2 current_slot=8 [INFO] [stdout] 2026-04-23T03:20:14.767327Z 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-04-23T03:20:14.767346Z 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-04-23T03:20:14.767365Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=114 peer_cid=14 state=Established [INFO] [stdout] 2026-04-23T03:20:14.767378Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=114 state=Established [INFO] [stdout] 2026-04-23T03:20:14.767392Z 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-04-23T03:20:14.767410Z 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-04-23T03:20:14.767427Z 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-04-23T03:20:14.767444Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=114 [INFO] [stdout] 2026-04-23T03:20:14.767458Z 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-04-23T03:20:14.767484Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.767498Z 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-04-23T03:20:14.767515Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=170 srtt_ms=170 rttvar_ms=85 rto_ms=511 [INFO] [stdout] 2026-04-23T03:20:14.767529Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.767539Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.767556Z 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-04-23T03:20:14.767723Z TRACE kestrel_protocol::core::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-04-23T03:20:14.767872Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=114 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.767889Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=114 seq=0 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.767916Z 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: 173, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.767949Z 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-04-23T03:20:14.768098Z TRACE kestrel_protocol::core::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-04-23T03:20:14.768251Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=114 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.768266Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=114 seq=1 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.768286Z 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: 174, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.768330Z 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-04-23T03:20:14.768615Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.768644Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.768685Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.768697Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=45 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.768715Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=45 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.768734Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=45 peer_cid=145 [INFO] [stdout] 2026-04-23T03:20:14.768749Z 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: 20, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.768774Z TRACE kestrel_protocol::core::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: 20, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.768790Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=45 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.768806Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=45 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.768827Z 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: 99, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.768857Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=45 [INFO] [stdout] 2026-04-23T03:20:14.768872Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=45 count=1 [INFO] [stdout] 2026-04-23T03:20:14.768907Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=45 state=Established [INFO] [stdout] 2026-04-23T03:20:14.769010Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=45 [INFO] [stdout] 2026-04-23T03:20:14.769042Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.769056Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.769067Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.769077Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-04-23T03:20:14.769087Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-04-23T03:20:14.769097Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-04-23T03:20:14.769107Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-04-23T03:20:14.769120Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-04-23T03:20:14.769116Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.769129Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-04-23T03:20:14.769181Z 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: 100, sequence_number: 0, recv_next_sequence: 1 }, payload: b",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," } [INFO] [stdout] 2026-04-23T03:20:14.769308Z 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: 100, sequence_number: 1, recv_next_sequence: 1 }, payload: b",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," } [INFO] [stdout] 2026-04-23T03:20:14.769416Z 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: 100, sequence_number: 2, recv_next_sequence: 1 }, payload: b",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," } [INFO] [stdout] 2026-04-23T03:20:14.769523Z 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: 100, sequence_number: 3, recv_next_sequence: 1 }, payload: b",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," } [INFO] [stdout] 2026-04-23T03:20:14.769647Z 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: 100, sequence_number: 4, recv_next_sequence: 1 }, payload: b",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," } [INFO] [stdout] 2026-04-23T03:20:14.769749Z 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: 100, sequence_number: 5, recv_next_sequence: 1 }, payload: b",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," } [INFO] [stdout] 2026-04-23T03:20:14.769854Z 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: 100, sequence_number: 6, recv_next_sequence: 1 }, payload: b",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," } [INFO] [stdout] 2026-04-23T03:20:14.769960Z 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: 100, sequence_number: 7, recv_next_sequence: 1 }, payload: b",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," } [INFO] [stdout] 2026-04-23T03:20:14.770069Z 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: 100, sequence_number: 8, recv_next_sequence: 1 }, payload: b",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," } [INFO] [stdout] 2026-04-23T03:20:14.770177Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=45 state=Established [INFO] [stdout] 2026-04-23T03:20:14.770256Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=19 [INFO] [stdout] 2026-04-23T03:20:14.770282Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=19 state=Established [INFO] [stdout] 2026-04-23T03:20:14.770316Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=160 slots_to_advance=16 max_advance=16 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.770353Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=159 slots_to_advance=15 max_advance=15 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.770389Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=160 slots_to_advance=16 max_advance=16 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.770420Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=159 slots_to_advance=15 max_advance=15 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.770454Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=159 slots_to_advance=15 max_advance=15 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.770491Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=128 [INFO] [stdout] 2026-04-23T03:20:14.770515Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=128 state=Established [INFO] [stdout] 2026-04-23T03:20:14.770543Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=139 [INFO] [stdout] 2026-04-23T03:20:14.770557Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=139 state=Established [INFO] [stdout] 2026-04-23T03:20:14.770612Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=42 [INFO] [stdout] 2026-04-23T03:20:14.770636Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=42 state=Established [INFO] [stdout] 2026-04-23T03:20:14.770666Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=156 slots_to_advance=15 max_advance=15 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.770704Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=156 slots_to_advance=15 max_advance=15 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.770737Z 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-04-23T03:20:14.770759Z 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-04-23T03:20:14.770782Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=121 peer_cid=21 state=Established [INFO] [stdout] 2026-04-23T03:20:14.770803Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=121 state=Established [INFO] [stdout] 2026-04-23T03:20:14.770817Z 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-04-23T03:20:14.770841Z 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-04-23T03:20:14.770859Z 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-04-23T03:20:14.770876Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=121 [INFO] [stdout] 2026-04-23T03:20:14.770896Z 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-04-23T03:20:14.770930Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.770949Z 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-04-23T03:20:14.770966Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=165 srtt_ms=165 rttvar_ms=82 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.770987Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.770997Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.771013Z 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-04-23T03:20:14.771283Z TRACE kestrel_protocol::core::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-04-23T03:20:14.771545Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=121 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.771590Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=121 seq=0 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.771614Z 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: 169, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.771654Z 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-04-23T03:20:14.771915Z TRACE kestrel_protocol::core::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-04-23T03:20:14.772178Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=121 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.772194Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=121 seq=1 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.772221Z 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: 169, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.772248Z 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-04-23T03:20:14.768487Z TRACE kestrel_protocol::core::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-04-23T03:20:14.772662Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=114 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.772678Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=114 seq=2 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.772704Z 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: 178, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.772812Z 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-04-23T03:20:14.772734Z 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-04-23T03:20:14.772876Z TRACE kestrel_protocol::core::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-04-23T03:20:14.773021Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=114 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.773036Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=114 seq=3 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.773059Z 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: 178, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.773089Z 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-04-23T03:20:14.773244Z TRACE kestrel_protocol::core::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-04-23T03:20:14.773388Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=114 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.773403Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=114 seq=4 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.773420Z 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: 179, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.773457Z 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-04-23T03:20:14.773626Z TRACE kestrel_protocol::core::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-04-23T03:20:14.773769Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=114 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.773784Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=114 seq=5 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.773807Z 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: 179, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.773839Z 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-04-23T03:20:14.773983Z TRACE kestrel_protocol::core::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-04-23T03:20:14.774129Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=114 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.774144Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=114 seq=6 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.774168Z 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: 179, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.774196Z 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-04-23T03:20:14.774345Z TRACE kestrel_protocol::core::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-04-23T03:20:14.774491Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=114 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.774506Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=114 seq=7 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.774527Z 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: 180, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.774627Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:56881 frame_count=1 bytes=27 [INFO] [stdout] 2026-04-23T03:20:14.774757Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:52784 frame_count=1 bytes=27 [INFO] [stdout] 2026-04-23T03:20:14.766458Z 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: 1, 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-04-23T03:20:14.774863Z TRACE kestrel_protocol::core::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: 1, 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-04-23T03:20:14.775157Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=113 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.775173Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=113 seq=0 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.775214Z 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: 181, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.775251Z 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: 1, 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-04-23T03:20:14.775544Z TRACE kestrel_protocol::core::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: 1, 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-04-23T03:20:14.775853Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=113 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.775869Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=113 seq=1 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.775894Z 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: 182, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.775927Z 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: 1, 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-04-23T03:20:14.776222Z TRACE kestrel_protocol::core::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: 1, 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-04-23T03:20:14.776512Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=113 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.776526Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=113 seq=2 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.776544Z 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: 183, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.761551Z 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-04-23T03:20:14.776615Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=3 [INFO] [stdout] 2026-04-23T03:20:14.776631Z 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-04-23T03:20:14.776668Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=6 [INFO] [stdout] 2026-04-23T03:20:14.776688Z 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-04-23T03:20:14.776706Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=183 srtt_ms=182 rttvar_ms=16 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.776722Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=39 [INFO] [stdout] 2026-04-23T03:20:14.776737Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=38 new_cwnd=39 [INFO] [stdout] 2026-04-23T03:20:14.776757Z 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: 140, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.776792Z 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: 140, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] test timer::parallel::tests::test_strategy_selection ... ok [INFO] [stdout] 2026-04-23T03:20:14.776811Z 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-04-23T03:20:14.776829Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=3 [INFO] [stdout] 2026-04-23T03:20:14.776845Z 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-04-23T03:20:14.776866Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=7 [INFO] [stdout] 2026-04-23T03:20:14.776884Z 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::parallel::tests::test_rayon_executor ... ok [INFO] [stdout] 2026-04-23T03:20:14.776906Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=198 srtt_ms=184 rttvar_ms=16 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.776931Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=40 [INFO] [stdout] test timer::parallel::tests::test_memory_efficiency ... ok [INFO] [stdout] 2026-04-23T03:20:14.776941Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=39 new_cwnd=40 [INFO] [stdout] 2026-04-23T03:20:14.776957Z 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: 140, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] test timer::parallel::tests::test_hybrid_parallel_system_creation ... ok [INFO] [stdout] 2026-04-23T03:20:14.776982Z 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: 140, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.777000Z 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-04-23T03:20:14.777016Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=3 [INFO] [stdout] 2026-04-23T03:20:14.777028Z 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-04-23T03:20:14.777053Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=8 [INFO] [stdout] 2026-04-23T03:20:14.777072Z 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-04-23T03:20:14.777088Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=198 srtt_ms=186 rttvar_ms=15 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.777102Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=41 [INFO] [stdout] 2026-04-23T03:20:14.777120Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=40 new_cwnd=41 [INFO] [stdout] 2026-04-23T03:20:14.777135Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3 [INFO] [stdout] 2026-04-23T03:20:14.777158Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3 state=Established [INFO] [stdout] 2026-04-23T03:20:14.777252Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=46 [INFO] [stdout] 2026-04-23T03:20:14.777277Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=46 state=Established [INFO] [stdout] 2026-04-23T03:20:14.777307Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=148 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.777325Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=148 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.777349Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.777363Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.777378Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=148 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.777389Z 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-04-23T03:20:14.777416Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=148 [INFO] [stdout] 2026-04-23T03:20:14.777431Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=148 state=Established [INFO] [stdout] 2026-04-23T03:20:14.777428Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.777459Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.777479Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=35 [INFO] [stdout] 2026-04-23T03:20:14.777495Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=35 state=Established [INFO] [stdout] 2026-04-23T03:20:14.777506Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.777523Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=41 [INFO] [stdout] 2026-04-23T03:20:14.777526Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.777537Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=41 state=Established [INFO] [stdout] 2026-04-23T03:20:14.777561Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=150 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.777603Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=150 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.777622Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.777631Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.777643Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=150 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.777655Z 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-04-23T03:20:14.777683Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=150 [INFO] [stdout] 2026-04-23T03:20:14.777697Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=150 state=Established [INFO] [stdout] 2026-04-23T03:20:14.777741Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=144 slots_to_advance=14 max_advance=14 current_slot=1 [INFO] [stdout] 2026-04-23T03:20:14.777783Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=145 [INFO] [stdout] 2026-04-23T03:20:14.777798Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=145 state=Established [INFO] [stdout] 2026-04-23T03:20:14.777835Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=139 slots_to_advance=13 max_advance=13 current_slot=1 [INFO] [stdout] 2026-04-23T03:20:14.777940Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=105 [INFO] [stdout] 2026-04-23T03:20:14.777956Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=105 state=Established [INFO] [stdout] 2026-04-23T03:20:14.777982Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=149 [INFO] [stdout] 2026-04-23T03:20:14.777995Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=149 state=Established [INFO] [stdout] 2026-04-23T03:20:14.778020Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=129 slots_to_advance=12 max_advance=12 current_slot=1 [INFO] [stdout] 2026-04-23T03:20:14.778054Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=129 slots_to_advance=12 max_advance=12 current_slot=1 [INFO] [stdout] 2026-04-23T03:20:14.778129Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=136 slots_to_advance=13 max_advance=13 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.778162Z 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-04-23T03:20:14.778195Z 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-04-23T03:20:14.778254Z 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-04-23T03:20:14.778287Z 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-04-23T03:20:14.778324Z 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-04-23T03:20:14.778356Z 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-04-23T03:20:14.778397Z 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-04-23T03:20:14.778428Z 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-04-23T03:20:14.778462Z 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-04-23T03:20:14.778494Z 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-04-23T03:20:14.778531Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=101 [INFO] [stdout] 2026-04-23T03:20:14.778546Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=101 state=Established [INFO] [stdout] 2026-04-23T03:20:14.778603Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=103 [INFO] [stdout] 2026-04-23T03:20:14.778623Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=103 state=Established [INFO] [stdout] 2026-04-23T03:20:14.778658Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=39 slots_to_advance=3 max_advance=3 current_slot=7 [INFO] [stdout] 2026-04-23T03:20:14.778691Z 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-04-23T03:20:14.778722Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=28 slots_to_advance=2 max_advance=2 current_slot=8 [INFO] [stdout] 2026-04-23T03:20:14.778770Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=77 slots_to_advance=7 max_advance=7 current_slot=3 [INFO] [stdout] 2026-04-23T03:20:14.778808Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=105 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.778841Z 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-04-23T03:20:14.778881Z 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-04-23T03:20:14.778917Z 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-04-23T03:20:14.778954Z 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-04-23T03:20:14.778993Z 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-04-23T03:20:14.779036Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=112 slots_to_advance=11 max_advance=11 current_slot=1 [INFO] [stdout] 2026-04-23T03:20:14.779177Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=5 frame=Ack { header: ShortHeader { command: Ack, connection_id: 5, payload_length: 8, recv_window_size: 255, timestamp: 125, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.779216Z 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: 5, payload_length: 8, recv_window_size: 255, timestamp: 125, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.779234Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=5 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.779253Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=5 [INFO] [stdout] 2026-04-23T03:20:14.779266Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=5 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-04-23T03:20:14.779296Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.779309Z 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-04-23T03:20:14.779331Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=195 srtt_ms=195 rttvar_ms=97 rto_ms=586 [INFO] [stdout] 2026-04-23T03:20:14.779346Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.779355Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.779372Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=5 frame=Ack { header: ShortHeader { command: Ack, connection_id: 5, payload_length: 8, recv_window_size: 254, timestamp: 125, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.779401Z 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: 5, payload_length: 8, recv_window_size: 254, timestamp: 125, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.779423Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=5 recv_next_seq=0 recv_window=254 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.779439Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=5 [INFO] [stdout] 2026-04-23T03:20:14.779449Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=5 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=254 [INFO] [stdout] 2026-04-23T03:20:14.779473Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-04-23T03:20:14.779486Z 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-04-23T03:20:14.779502Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=195 srtt_ms=195 rttvar_ms=73 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.779519Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.779529Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.779549Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=5 frame=Ack { header: ShortHeader { command: Ack, connection_id: 5, payload_length: 8, recv_window_size: 253, timestamp: 134, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.779601Z 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: 1, 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-04-23T03:20:14.780210Z TRACE kestrel_protocol::core::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: 1, 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-04-23T03:20:14.780501Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=113 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.780518Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=113 seq=3 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.780541Z 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: 187, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.780594Z 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: 1, 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-04-23T03:20:14.780884Z TRACE kestrel_protocol::core::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: 1, 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-04-23T03:20:14.781173Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=113 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.781188Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=113 seq=4 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.781213Z 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: 187, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.781241Z 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: 1, 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-04-23T03:20:14.781533Z TRACE kestrel_protocol::core::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: 1, 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-04-23T03:20:14.781837Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=113 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.781853Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=113 seq=5 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.781874Z 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: 250, timestamp: 188, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.781901Z 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: 1, sequence_number: 6, 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-04-23T03:20:14.782193Z TRACE kestrel_protocol::core::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: 1, sequence_number: 6, 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-04-23T03:20:14.782494Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=113 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.782510Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=113 seq=6 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.782536Z 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: 249, timestamp: 189, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.782586Z 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: 1, sequence_number: 7, 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-04-23T03:20:14.782879Z TRACE kestrel_protocol::core::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: 1, sequence_number: 7, 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-04-23T03:20:14.783169Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=113 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.783184Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=113 seq=7 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.783211Z 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: 248, timestamp: 189, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.783243Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=113 frame=Push { header: ShortHeader { command: Push, connection_id: 113, payload_length: 640, recv_window_size: 256, timestamp: 1, sequence_number: 8, 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" } [INFO] [stdout] 2026-04-23T03:20:14.783588Z 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: 5, payload_length: 8, recv_window_size: 253, timestamp: 134, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.783619Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=5 recv_next_seq=0 recv_window=253 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.783637Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=5 [INFO] [stdout] 2026-04-23T03:20:14.783652Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=5 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=253 [INFO] [stdout] 2026-04-23T03:20:14.783685Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-04-23T03:20:14.783704Z 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-04-23T03:20:14.783726Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=199 srtt_ms=196 rttvar_ms=56 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.783741Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-04-23T03:20:14.783750Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-04-23T03:20:14.783769Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=5 frame=Ack { header: ShortHeader { command: Ack, connection_id: 5, payload_length: 8, recv_window_size: 252, timestamp: 134, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.783791Z 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: 5, payload_length: 8, recv_window_size: 252, timestamp: 134, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.783813Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=5 recv_next_seq=0 recv_window=252 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.783829Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=5 [INFO] [stdout] 2026-04-23T03:20:14.783839Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=5 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=252 [INFO] [stdout] 2026-04-23T03:20:14.783863Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] 2026-04-23T03:20:14.783875Z 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-04-23T03:20:14.783892Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=200 srtt_ms=196 rttvar_ms=43 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.783906Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-04-23T03:20:14.783919Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-04-23T03:20:14.783942Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=5 frame=Ack { header: ShortHeader { command: Ack, connection_id: 5, 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-04-23T03:20:14.783961Z 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: 5, 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-04-23T03:20:14.783978Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=5 recv_next_seq=0 recv_window=251 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.783994Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=5 [INFO] [stdout] 2026-04-23T03:20:14.784005Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=5 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=251 [INFO] [stdout] 2026-04-23T03:20:14.784024Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-04-23T03:20:14.784036Z 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-04-23T03:20:14.784052Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=200 srtt_ms=197 rttvar_ms=33 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.784066Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-04-23T03:20:14.784076Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] 2026-04-23T03:20:14.784090Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=5 frame=Ack { header: ShortHeader { command: Ack, connection_id: 5, 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-04-23T03:20:14.784108Z 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: 5, 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-04-23T03:20:14.784123Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=5 recv_next_seq=0 recv_window=250 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.784148Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=5 [INFO] [stdout] 2026-04-23T03:20:14.784159Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=5 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=250 [INFO] [stdout] 2026-04-23T03:20:14.784184Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=5 [INFO] [stdout] 2026-04-23T03:20:14.784196Z 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-04-23T03:20:14.784220Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=200 srtt_ms=197 rttvar_ms=25 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.784243Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=38 [INFO] [stdout] 2026-04-23T03:20:14.784254Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=37 new_cwnd=38 [INFO] [stdout] 2026-04-23T03:20:14.784269Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=5 frame=Ack { header: ShortHeader { command: Ack, connection_id: 5, payload_length: 8, recv_window_size: 249, timestamp: 146, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.784293Z 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: 5, payload_length: 8, recv_window_size: 249, timestamp: 146, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.784309Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=5 recv_next_seq=0 recv_window=249 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.784325Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=5 [INFO] [stdout] 2026-04-23T03:20:14.784336Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=5 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=249 [INFO] [stdout] 2026-04-23T03:20:14.784356Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=6 [INFO] [stdout] 2026-04-23T03:20:14.784373Z 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-04-23T03:20:14.784388Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=200 srtt_ms=197 rttvar_ms=20 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.784401Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=39 [INFO] [stdout] 2026-04-23T03:20:14.784410Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=38 new_cwnd=39 [INFO] [stdout] 2026-04-23T03:20:14.784427Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=5 frame=Ack { header: ShortHeader { command: Ack, connection_id: 5, payload_length: 8, recv_window_size: 248, timestamp: 147, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.784445Z 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: 5, payload_length: 8, recv_window_size: 248, timestamp: 147, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.784462Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=5 recv_next_seq=0 recv_window=248 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.784484Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=5 [INFO] [stdout] 2026-04-23T03:20:14.784495Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=5 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=248 [INFO] [stdout] 2026-04-23T03:20:14.784519Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=7 [INFO] [stdout] 2026-04-23T03:20:14.784531Z 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-04-23T03:20:14.784548Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=200 srtt_ms=198 rttvar_ms=15 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.784606Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=40 [INFO] [stdout] 2026-04-23T03:20:14.784617Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=39 new_cwnd=40 [INFO] [stdout] 2026-04-23T03:20:14.784633Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=5 frame=Ack { header: ShortHeader { command: Ack, connection_id: 5, payload_length: 8, recv_window_size: 247, timestamp: 148, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.784659Z 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: 5, payload_length: 8, recv_window_size: 247, timestamp: 148, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.784681Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=5 recv_next_seq=0 recv_window=247 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.784696Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=5 [INFO] [stdout] 2026-04-23T03:20:14.784706Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=5 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=247 [INFO] [stdout] 2026-04-23T03:20:14.784729Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=8 [INFO] [stdout] 2026-04-23T03:20:14.784750Z 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-04-23T03:20:14.784771Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=201 srtt_ms=198 rttvar_ms=12 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.784768Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.784792Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=41 [INFO] [stdout] 2026-04-23T03:20:14.784803Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=40 new_cwnd=41 [INFO] [stdout] 2026-04-23T03:20:14.784817Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=5 [INFO] [stdout] 2026-04-23T03:20:14.784836Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=5 state=Established [INFO] [stdout] 2026-04-23T03:20:14.784985Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=31 slots_to_advance=3 max_advance=3 current_slot=7 [INFO] [stdout] 2026-04-23T03:20:14.785079Z 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: 118, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.785108Z 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: 118, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.785127Z 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-04-23T03:20:14.785152Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=4 [INFO] [stdout] 2026-04-23T03:20:14.785164Z 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-04-23T03:20:14.785192Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.785212Z 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-04-23T03:20:14.785234Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=204 srtt_ms=204 rttvar_ms=102 rto_ms=614 [INFO] [stdout] 2026-04-23T03:20:14.785249Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.785259Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.785275Z 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: 119, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.785299Z 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: 119, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.785321Z 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-04-23T03:20:14.785337Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=4 [INFO] [stdout] 2026-04-23T03:20:14.785348Z 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-04-23T03:20:14.785372Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-04-23T03:20:14.785384Z 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-04-23T03:20:14.785400Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=204 srtt_ms=204 rttvar_ms=76 rto_ms=511 [INFO] [stdout] 2026-04-23T03:20:14.785420Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.785429Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.785451Z 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: 119, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.785474Z 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: 119, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.785491Z 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-04-23T03:20:14.785512Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=4 [INFO] [stdout] 2026-04-23T03:20:14.785523Z 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-04-23T03:20:14.785543Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-04-23T03:20:14.785559Z 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-04-23T03:20:14.785628Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=205 srtt_ms=204 rttvar_ms=57 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.785644Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-04-23T03:20:14.785663Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-04-23T03:20:14.785679Z 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: 120, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.785704Z 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: 120, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.785721Z 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-04-23T03:20:14.785738Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=4 [INFO] [stdout] 2026-04-23T03:20:14.785756Z 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-04-23T03:20:14.785781Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] 2026-04-23T03:20:14.785798Z 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-04-23T03:20:14.785813Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=205 srtt_ms=204 rttvar_ms=43 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.785835Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-04-23T03:20:14.785845Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-04-23T03:20:14.785859Z 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: 121, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.785886Z 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: 121, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.785908Z 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-04-23T03:20:14.785929Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=4 [INFO] [stdout] 2026-04-23T03:20:14.785940Z 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-04-23T03:20:14.785960Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-04-23T03:20:14.785977Z 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-04-23T03:20:14.785994Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=205 srtt_ms=204 rttvar_ms=32 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.786009Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-04-23T03:20:14.786026Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] 2026-04-23T03:20:14.786041Z 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: 127, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.786064Z 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: 127, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.786080Z 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-04-23T03:20:14.786097Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=4 [INFO] [stdout] 2026-04-23T03:20:14.786107Z 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-04-23T03:20:14.786127Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=5 [INFO] [stdout] 2026-04-23T03:20:14.786145Z 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-04-23T03:20:14.786161Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=205 srtt_ms=205 rttvar_ms=24 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.786175Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=38 [INFO] [stdout] 2026-04-23T03:20:14.786185Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=37 new_cwnd=38 [INFO] [stdout] 2026-04-23T03:20:14.786212Z 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: 127, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.786230Z 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: 127, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.786247Z 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-04-23T03:20:14.786263Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=4 [INFO] [stdout] 2026-04-23T03:20:14.786278Z 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-04-23T03:20:14.786298Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=6 [INFO] [stdout] 2026-04-23T03:20:14.786309Z 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-04-23T03:20:14.786331Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=205 srtt_ms=205 rttvar_ms=18 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.786346Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=39 [INFO] [stdout] 2026-04-23T03:20:14.786360Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=38 new_cwnd=39 [INFO] [stdout] 2026-04-23T03:20:14.786375Z 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: 128, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.786391Z 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: 128, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.786413Z 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-04-23T03:20:14.786434Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=4 [INFO] [stdout] 2026-04-23T03:20:14.786445Z 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-04-23T03:20:14.786470Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=7 [INFO] [stdout] 2026-04-23T03:20:14.786482Z 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-04-23T03:20:14.786504Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=205 srtt_ms=205 rttvar_ms=14 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.786520Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=40 [INFO] [stdout] 2026-04-23T03:20:14.786529Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=39 new_cwnd=40 [INFO] [stdout] 2026-04-23T03:20:14.786544Z 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: 128, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.786584Z 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: 128, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.786601Z 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-04-23T03:20:14.786628Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=4 [INFO] [stdout] 2026-04-23T03:20:14.786639Z 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-04-23T03:20:14.786665Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=8 [INFO] [stdout] 2026-04-23T03:20:14.786682Z 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-04-23T03:20:14.786698Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=206 srtt_ms=205 rttvar_ms=10 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.786711Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=41 [INFO] [stdout] 2026-04-23T03:20:14.786720Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=40 new_cwnd=41 [INFO] [stdout] 2026-04-23T03:20:14.786737Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=4 [INFO] [stdout] 2026-04-23T03:20:14.786760Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.786827Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=39 slots_to_advance=3 max_advance=3 current_slot=17 [INFO] [stdout] 2026-04-23T03:20:14.786869Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=38 slots_to_advance=3 max_advance=3 current_slot=17 [INFO] [stdout] 2026-04-23T03:20:14.786907Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=38 slots_to_advance=3 max_advance=3 current_slot=17 [INFO] [stdout] 2026-04-23T03:20:14.787002Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=38 slots_to_advance=3 max_advance=3 current_slot=17 [INFO] [stdout] 2026-04-23T03:20:14.787036Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=37 slots_to_advance=3 max_advance=3 current_slot=17 [INFO] [stdout] 2026-04-23T03:20:14.787152Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=38 slots_to_advance=3 max_advance=3 current_slot=7 [INFO] [stdout] 2026-04-23T03:20:14.787185Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=35 slots_to_advance=3 max_advance=3 current_slot=7 [INFO] [stdout] 2026-04-23T03:20:14.787228Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=34 slots_to_advance=3 max_advance=3 current_slot=17 [INFO] [stdout] 2026-04-23T03:20:14.787259Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=35 slots_to_advance=3 max_advance=3 current_slot=7 [INFO] [stdout] 2026-04-23T03:20:14.787295Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=106 [INFO] [stdout] 2026-04-23T03:20:14.787311Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=106 state=Established [INFO] [stdout] 2026-04-23T03:20:14.787336Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=34 slots_to_advance=3 max_advance=3 current_slot=17 [INFO] [stdout] 2026-04-23T03:20:14.787380Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=120 slots_to_advance=12 max_advance=12 current_slot=1 [INFO] [stdout] 2026-04-23T03:20:14.787446Z 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: 125, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.787469Z 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: 125, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.787486Z 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-04-23T03:20:14.787502Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=6 [INFO] [stdout] 2026-04-23T03:20:14.787514Z 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-04-23T03:20:14.787540Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.779984Z 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-04-23T03:20:14.787669Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2846786072 [INFO] [stdout] 2026-04-23T03:20:14.787688Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2846786072 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.787740Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.787763Z 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-04-23T03:20:14.787806Z 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-04-23T03:20:14.772511Z TRACE kestrel_protocol::core::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-04-23T03:20:14.774558Z 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-04-23T03:20:14.787887Z TRACE kestrel_protocol::core::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-04-23T03:20:14.787973Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=114 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-04-23T03:20:14.787991Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=114 seq=8 payload_len=640 [INFO] [stdout] 2026-04-23T03:20:14.788020Z 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: 193, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.788054Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=114 [INFO] [stdout] 2026-04-23T03:20:14.788074Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=114 count=9 [INFO] [stdout] 2026-04-23T03:20:14.788101Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=114 state=Established [INFO] [stdout] 2026-04-23T03:20:14.788231Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=14 [INFO] [stdout] 2026-04-23T03:20:14.788254Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=14 state=Established [INFO] [stdout] 2026-04-23T03:20:14.788290Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=15 [INFO] [stdout] 2026-04-23T03:20:14.788307Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=15 state=Established [INFO] [stdout] 2026-04-23T03:20:14.788341Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=185 slots_to_advance=18 max_advance=18 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.788382Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=186 slots_to_advance=18 max_advance=18 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.788421Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=186 slots_to_advance=18 max_advance=18 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.788471Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=31 [INFO] [stdout] 2026-04-23T03:20:14.788491Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=31 state=Established [INFO] [stdout] 2026-04-23T03:20:14.788527Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=16 [INFO] [stdout] 2026-04-23T03:20:14.788544Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=16 state=Established [INFO] [stdout] 2026-04-23T03:20:14.788601Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=17 [INFO] [stdout] 2026-04-23T03:20:14.788621Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=17 state=Established [INFO] [stdout] 2026-04-23T03:20:14.788655Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=186 slots_to_advance=18 max_advance=18 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.788702Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=18 [INFO] [stdout] 2026-04-23T03:20:14.788723Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=18 state=Established [INFO] [stdout] 2026-04-23T03:20:14.788787Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=184 slots_to_advance=18 max_advance=18 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.788829Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=185 slots_to_advance=18 max_advance=18 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.788865Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=183 slots_to_advance=18 max_advance=18 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.788927Z 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: 141, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.788954Z 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: 141, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.788975Z 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-04-23T03:20:14.788993Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=8 [INFO] [stdout] 2026-04-23T03:20:14.789006Z 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-04-23T03:20:14.789034Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.789050Z 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-04-23T03:20:14.789068Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=199 srtt_ms=199 rttvar_ms=99 rto_ms=598 [INFO] [stdout] 2026-04-23T03:20:14.789084Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.789099Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.789119Z 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: 142, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.789151Z 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: 142, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.789178Z 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-04-23T03:20:14.789195Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=8 [INFO] [stdout] 2026-04-23T03:20:14.789217Z 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-04-23T03:20:14.789242Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-04-23T03:20:14.789263Z 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-04-23T03:20:14.789287Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=199 srtt_ms=199 rttvar_ms=74 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.789303Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.789312Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.789333Z 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: 143, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.789353Z 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: 143, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.789377Z 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-04-23T03:20:14.789399Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=8 [INFO] [stdout] 2026-04-23T03:20:14.789411Z 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-04-23T03:20:14.789437Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-04-23T03:20:14.789449Z 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-04-23T03:20:14.789471Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=200 srtt_ms=199 rttvar_ms=56 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.789487Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-04-23T03:20:14.789497Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-04-23T03:20:14.789513Z 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: 146, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.789540Z 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: 146, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.789583Z 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-04-23T03:20:14.789606Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=8 [INFO] [stdout] 2026-04-23T03:20:14.789619Z 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-04-23T03:20:14.789652Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] 2026-04-23T03:20:14.789675Z 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-04-23T03:20:14.789694Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=200 srtt_ms=199 rttvar_ms=42 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.789713Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-04-23T03:20:14.789724Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-04-23T03:20:14.789750Z 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: 147, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.789781Z 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: 147, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.789800Z 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-04-23T03:20:14.789837Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=8 [INFO] [stdout] 2026-04-23T03:20:14.789851Z 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-04-23T03:20:14.789886Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-04-23T03:20:14.789908Z 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-04-23T03:20:14.789926Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=200 srtt_ms=199 rttvar_ms=31 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.789942Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-04-23T03:20:14.789953Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] test timer::parallel::tests::test_concurrent_processing ... ok [INFO] [stdout] 2026-04-23T03:20:14.789987Z 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: 149, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] test timer::parallel::tests::test_zero_copy_batch_dispatcher ... ok [INFO] [stdout] 2026-04-23T03:20:14.790012Z 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: 149, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.790032Z 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-04-23T03:20:14.790050Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=8 [INFO] [stdout] 2026-04-23T03:20:14.790063Z 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-04-23T03:20:14.790089Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=5 [INFO] [stdout] 2026-04-23T03:20:14.790142Z 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-04-23T03:20:14.790167Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=200 srtt_ms=199 rttvar_ms=24 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.790183Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=38 [INFO] [stdout] 2026-04-23T03:20:14.790194Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=37 new_cwnd=38 [INFO] [stdout] 2026-04-23T03:20:14.790223Z 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: 150, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.789947Z DEBUG kestrel_protocol::socket::transport::udp: Attempting to rebind UDP socket new_addr=127.0.0.1:0 [INFO] [stdout] 2026-04-23T03:20:14.790260Z 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: 150, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.790299Z 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-04-23T03:20:14.790298Z TRACE mio::poll: registering event source with poller: token=Token(128928677106944), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.790317Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=8 [INFO] [stdout] 2026-04-23T03:20:14.790331Z 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-04-23T03:20:14.790361Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=6 [INFO] [stdout] 2026-04-23T03:20:14.790369Z DEBUG kestrel_protocol::socket::transport::udp: UDP socket rebound to new address addr=127.0.0.1:36316 [INFO] [stdout] 2026-04-23T03:20:14.790376Z 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-04-23T03:20:14.790393Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=200 srtt_ms=200 rttvar_ms=18 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.790419Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=39 [INFO] [stdout] 2026-04-23T03:20:14.790429Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=38 new_cwnd=39 [INFO] [stdout] 2026-04-23T03:20:14.790457Z 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: 153, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.790481Z 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: 153, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.790496Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.790501Z 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-04-23T03:20:14.790520Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=8 [INFO] [stdout] 2026-04-23T03:20:14.790534Z 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-04-23T03:20:14.790643Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1391485104 [INFO] [stdout] 2026-04-23T03:20:14.790682Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1391485104 state=FinWait [INFO] [stdout] 2026-04-23T03:20:14.790738Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=121 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.790792Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=121 seq=2 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.790825Z 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: 188, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.790864Z 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-04-23T03:20:14.791151Z TRACE kestrel_protocol::core::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-04-23T03:20:14.791446Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=121 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.791470Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=121 seq=3 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.791502Z 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: 189, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.791548Z 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-04-23T03:20:14.791876Z TRACE kestrel_protocol::core::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] test core::endpoint::timing::tests::test_timer_cancellation ... ok [INFO] [stdout] 2026-04-23T03:20:14.792176Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=121 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.792212Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=121 seq=4 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.790223Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.792262Z 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: 189, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.792299Z 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-04-23T03:20:14.792757Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.792590Z TRACE kestrel_protocol::core::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-04-23T03:20:14.792866Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=121 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.792884Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.792888Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=121 seq=5 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.792920Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.792916Z 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: 190, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.792973Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=100 delay_ms=1000 [INFO] [stdout] 2026-04-23T03:20:14.793004Z 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-04-23T03:20:14.793099Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=110 delay_ms=1100 [INFO] [stdout] 2026-04-23T03:20:14.793123Z 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-04-23T03:20:14.793196Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=3 slot_index=120 delay_ms=1200 [INFO] [stdout] 2026-04-23T03:20:14.792952Z 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-04-23T03:20:14.793220Z 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-04-23T03:20:14.793302Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=1 [INFO] [stdout] 2026-04-23T03:20:14.793322Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.793334Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=3 [INFO] [stdout] 2026-04-23T03:20:14.793350Z DEBUG kestrel_protocol::timer::task::global: Cleared all timers for connection connection_id=1 count=3 [INFO] [stdout] 2026-04-23T03:20:14.793241Z TRACE kestrel_protocol::core::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-04-23T03:20:14.793515Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=121 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.793536Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=121 seq=6 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.793643Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1367191249 [INFO] [stdout] 2026-04-23T03:20:14.793673Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1367191249 state=Closing [INFO] [stdout] test timer::parallel::tests::test_strategy_selection_comprehensive ... ok [INFO] [stdout] 2026-04-23T03:20:14.790559Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=7 [INFO] [stdout] 2026-04-23T03:20:14.793738Z 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::task::tests::tests::test_clear_connection_timers ... ok [INFO] [stdout] 2026-04-23T03:20:14.793758Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=201 srtt_ms=200 rttvar_ms=14 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.793776Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=40 [INFO] [stdout] 2026-04-23T03:20:14.793788Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=39 new_cwnd=40 [INFO] [stdout] 2026-04-23T03:20:14.793810Z 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: 153, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.793834Z 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: 153, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.793854Z 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-04-23T03:20:14.793873Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=8 [INFO] [stdout] 2026-04-23T03:20:14.793887Z 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-04-23T03:20:14.793916Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=8 [INFO] [stdout] 2026-04-23T03:20:14.793933Z 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-04-23T03:20:14.793952Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=204 srtt_ms=200 rttvar_ms=11 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.793968Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=41 [INFO] [stdout] 2026-04-23T03:20:14.793978Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=40 new_cwnd=41 [INFO] [stdout] 2026-04-23T03:20:14.793975Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.794006Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=8 [INFO] [stdout] 2026-04-23T03:20:14.794028Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.794080Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=9 frame=Ack { header: ShortHeader { command: Ack, connection_id: 9, payload_length: 8, recv_window_size: 255, timestamp: 152, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.794105Z 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: 9, payload_length: 8, recv_window_size: 255, timestamp: 152, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.794130Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=9 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.794150Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=9 [INFO] [stdout] 2026-04-23T03:20:14.794163Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=9 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-04-23T03:20:14.794189Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.794224Z 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-04-23T03:20:14.794244Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=203 srtt_ms=203 rttvar_ms=101 rto_ms=611 [INFO] [stdout] 2026-04-23T03:20:14.794261Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.794272Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.794299Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=9 frame=Ack { header: ShortHeader { command: Ack, connection_id: 9, 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-04-23T03:20:14.794327Z 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: 9, 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-04-23T03:20:14.794348Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=9 recv_next_seq=0 recv_window=254 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.794366Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=9 [INFO] [stdout] 2026-04-23T03:20:14.794380Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=9 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=254 [INFO] [stdout] 2026-04-23T03:20:14.794412Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-04-23T03:20:14.794427Z 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-04-23T03:20:14.794446Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=203 srtt_ms=203 rttvar_ms=76 rto_ms=509 [INFO] [stdout] 2026-04-23T03:20:14.794469Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.794480Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.794501Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=9 frame=Ack { header: ShortHeader { command: Ack, connection_id: 9, payload_length: 8, recv_window_size: 253, timestamp: 153, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.794530Z 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: 9, payload_length: 8, recv_window_size: 253, timestamp: 153, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.794639Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3616125308 [INFO] [stdout] 2026-04-23T03:20:14.794677Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3616125308 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.787552Z 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-04-23T03:20:14.794724Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.794746Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=201 srtt_ms=201 rttvar_ms=100 rto_ms=605 [INFO] [stdout] 2026-04-23T03:20:14.794772Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.794784Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.794807Z 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: 126, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.794832Z 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: 126, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.794854Z 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-04-23T03:20:14.794870Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.794873Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=6 [INFO] [stdout] 2026-04-23T03:20:14.794891Z 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-04-23T03:20:14.794902Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.794920Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-04-23T03:20:14.794944Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.794945Z 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-04-23T03:20:14.794966Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=209 srtt_ms=202 rttvar_ms=77 rto_ms=512 [INFO] [stdout] 2026-04-23T03:20:14.794970Z 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-04-23T03:20:14.794988Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.795000Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.795017Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.783409Z TRACE kestrel_protocol::core::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: 640, recv_window_size: 256, timestamp: 1, sequence_number: 8, 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" } [INFO] [stdout] 2026-04-23T03:20:14.795056Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=468 delay_ms=61000 [INFO] [stdout] 2026-04-23T03:20:14.795065Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=113 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-04-23T03:20:14.795087Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=113 seq=8 payload_len=640 [INFO] [stdout] 2026-04-23T03:20:14.795089Z 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-04-23T03:20:14.795118Z 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: 247, timestamp: 201, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.795161Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=113 [INFO] [stdout] 2026-04-23T03:20:14.795160Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=3 slot_index=56 delay_ms=62000 [INFO] [stdout] 2026-04-23T03:20:14.795175Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.795183Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=113 count=9 [INFO] [stdout] 2026-04-23T03:20:14.795186Z 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-04-23T03:20:14.795199Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.795229Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=113 state=Established [INFO] [stdout] 2026-04-23T03:20:14.795270Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=4 slot_index=156 delay_ms=63000 [INFO] [stdout] 2026-04-23T03:20:14.795299Z 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-04-23T03:20:14.795367Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=5 slot_index=256 delay_ms=64000 [INFO] [stdout] 2026-04-23T03:20:14.795383Z 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-04-23T03:20:14.795389Z 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-04-23T03:20:14.795414Z 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-04-23T03:20:14.795434Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=48 peer_cid=148 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.795445Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=6 slot_index=356 delay_ms=65000 [INFO] [stdout] 2026-04-23T03:20:14.795466Z 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-04-23T03:20:14.795492Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.795518Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.795534Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=7 slot_index=456 delay_ms=66000 [INFO] [stdout] 2026-04-23T03:20:14.795541Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:56881 frame_count=1 bytes=27 [INFO] [stdout] 2026-04-23T03:20:14.795563Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.795560Z 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-04-23T03:20:14.795600Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=48 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.795622Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=48 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.795643Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=48 peer_cid=148 [INFO] [stdout] 2026-04-23T03:20:14.795663Z 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: 105, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.795666Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=8 slot_index=44 delay_ms=67000 [INFO] [stdout] 2026-04-23T03:20:14.795680Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:36316 frame_count=1 bytes=27 [INFO] [stdout] 2026-04-23T03:20:14.795686Z TRACE kestrel_protocol::core::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: 105, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.795699Z 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-04-23T03:20:14.795705Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=48 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.795722Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=48 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.795748Z 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: 114, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.795782Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=48 [INFO] [stdout] 2026-04-23T03:20:14.795776Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=9 slot_index=144 delay_ms=68000 [INFO] [stdout] 2026-04-23T03:20:14.795796Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=48 count=1 [INFO] [stdout] 2026-04-23T03:20:14.795804Z 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-04-23T03:20:14.795823Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=48 state=Established [INFO] [stdout] 2026-04-23T03:20:14.795883Z 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-04-23T03:20:14.795907Z 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-04-23T03:20:14.795937Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN-ACK frame cid=50 peer_cid=150 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.795940Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=10 slot_index=244 delay_ms=69000 [INFO] [stdout] 2026-04-23T03:20:14.795968Z 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-04-23T03:20:14.795986Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.796007Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.796058Z DEBUG kestrel_protocol::core::endpoint::processing::operations: Connection timeout timer cancelled: true [INFO] [stdout] 2026-04-23T03:20:14.796065Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=11 slot_index=344 delay_ms=70000 [INFO] [stdout] 2026-04-23T03:20:14.796080Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=50 current_state=Connecting target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.796091Z 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-04-23T03:20:14.796106Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=50 from="Connecting" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.796134Z  INFO kestrel_protocol::core::endpoint::processing::processors::connection: Connection established cid=50 peer_cid=150 [INFO] [stdout] 2026-04-23T03:20:14.796153Z 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: 95, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.796204Z TRACE kestrel_protocol::core::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: 95, sequence_number: 0, recv_next_sequence: 0 }, payload: b"init" } [INFO] [stdout] 2026-04-23T03:20:14.796227Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=50 seq=0 payload_len=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.796253Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=50 seq=0 payload_len=4 [INFO] [stdout] 2026-04-23T03:20:14.796287Z 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: 111, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.796333Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=50 [INFO] [stdout] 2026-04-23T03:20:14.796353Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=50 count=1 [INFO] [stdout] 2026-04-23T03:20:14.796388Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=50 state=Established [INFO] [stdout] 2026-04-23T03:20:14.796456Z 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-04-23T03:20:14.796797Z TRACE kestrel_protocol::core::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-04-23T03:20:14.797104Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=112 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.797126Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=112 seq=5 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.797152Z 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: 205, sequence_number: 0, recv_next_sequence: 5 }, payload: b"\0\0\0\x05\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.797192Z 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-04-23T03:20:14.797511Z TRACE kestrel_protocol::core::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-04-23T03:20:14.797837Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=112 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.797858Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=112 seq=6 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.797885Z 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: 206, sequence_number: 0, recv_next_sequence: 5 }, payload: b"\0\0\0\x05\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.797922Z 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-04-23T03:20:14.798243Z TRACE kestrel_protocol::core::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-04-23T03:20:14.795230Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.798623Z 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] 2026-04-23T03:20:14.796158Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=12 slot_index=444 delay_ms=71000 [INFO] [stdout] 2026-04-23T03:20:14.798672Z 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-04-23T03:20:14.798740Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.798758Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=13 slot_index=32 delay_ms=72000 [INFO] [stdout] 2026-04-23T03:20:14.798771Z 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-04-23T03:20:14.798781Z 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-04-23T03:20:14.798835Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=14 slot_index=132 delay_ms=73000 [INFO] [stdout] 2026-04-23T03:20:14.798856Z 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-04-23T03:20:14.798865Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=3 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.798891Z 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-04-23T03:20:14.798915Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=15 slot_index=232 delay_ms=74000 [INFO] [stdout] 2026-04-23T03:20:14.798951Z 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-04-23T03:20:14.798956Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=4 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.798980Z 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-04-23T03:20:14.799005Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=16 slot_index=332 delay_ms=75000 [INFO] [stdout] 2026-04-23T03:20:14.799027Z 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-04-23T03:20:14.799032Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=5 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.799053Z 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-04-23T03:20:14.799078Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=17 slot_index=432 delay_ms=76000 [INFO] [stdout] 2026-04-23T03:20:14.799099Z 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-04-23T03:20:14.799107Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=6 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.799127Z 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-04-23T03:20:14.799151Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=18 slot_index=20 delay_ms=77000 [INFO] [stdout] 2026-04-23T03:20:14.799173Z 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-04-23T03:20:14.799178Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=7 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.799216Z 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-04-23T03:20:14.799238Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=19 slot_index=120 delay_ms=78000 [INFO] [stdout] 2026-04-23T03:20:14.799261Z 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-04-23T03:20:14.799283Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=8 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.799311Z 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-04-23T03:20:14.799313Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=20 slot_index=220 delay_ms=79000 [INFO] [stdout] 2026-04-23T03:20:14.799334Z 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-04-23T03:20:14.799366Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=9 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.799390Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=21 slot_index=320 delay_ms=80000 [INFO] [stdout] 2026-04-23T03:20:14.799395Z 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-04-23T03:20:14.799412Z 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-04-23T03:20:14.799452Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=10 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.799469Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=22 slot_index=420 delay_ms=81000 [INFO] [stdout] 2026-04-23T03:20:14.799474Z 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-04-23T03:20:14.799492Z 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-04-23T03:20:14.799532Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=11 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.799549Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=23 slot_index=8 delay_ms=82000 [INFO] [stdout] 2026-04-23T03:20:14.799554Z 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-04-23T03:20:14.799591Z 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-04-23T03:20:14.799638Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=12 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.799653Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=24 slot_index=108 delay_ms=83000 [INFO] [stdout] 2026-04-23T03:20:14.799661Z 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-04-23T03:20:14.799674Z 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-04-23T03:20:14.799719Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=13 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.799727Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=25 slot_index=208 delay_ms=84000 [INFO] [stdout] 2026-04-23T03:20:14.799740Z 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-04-23T03:20:14.799748Z 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-04-23T03:20:14.794550Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=9 recv_next_seq=0 recv_window=253 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.799802Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=26 slot_index=308 delay_ms=85000 [INFO] [stdout] 2026-04-23T03:20:14.799822Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=9 [INFO] [stdout] 2026-04-23T03:20:14.799825Z 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-04-23T03:20:14.799842Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=9 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=253 [INFO] [stdout] 2026-04-23T03:20:14.799879Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-04-23T03:20:14.799880Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=27 slot_index=408 delay_ms=86000 [INFO] [stdout] 2026-04-23T03:20:14.799896Z 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-04-23T03:20:14.799901Z 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-04-23T03:20:14.799916Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=204 srtt_ms=203 rttvar_ms=57 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.799933Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-04-23T03:20:14.799945Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-04-23T03:20:14.799953Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=28 slot_index=508 delay_ms=87000 [INFO] [stdout] 2026-04-23T03:20:14.799972Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=9 frame=Ack { header: ShortHeader { command: Ack, connection_id: 9, payload_length: 8, recv_window_size: 252, timestamp: 159, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.799975Z 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-04-23T03:20:14.799999Z 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: 9, payload_length: 8, recv_window_size: 252, timestamp: 159, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.800021Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=9 recv_next_seq=0 recv_window=252 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.800039Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=9 [INFO] [stdout] 2026-04-23T03:20:14.800047Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=29 slot_index=96 delay_ms=88000 [INFO] [stdout] 2026-04-23T03:20:14.800054Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=9 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=252 [INFO] [stdout] 2026-04-23T03:20:14.800079Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] 2026-04-23T03:20:14.800093Z 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-04-23T03:20:14.800092Z 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-04-23T03:20:14.800110Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=209 srtt_ms=204 rttvar_ms=44 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.800126Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-04-23T03:20:14.800137Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-04-23T03:20:14.800148Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=30 slot_index=196 delay_ms=89000 [INFO] [stdout] 2026-04-23T03:20:14.800156Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=9 frame=Ack { header: ShortHeader { command: Ack, connection_id: 9, payload_length: 8, recv_window_size: 251, timestamp: 160, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.800170Z 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-04-23T03:20:14.800180Z 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: 9, payload_length: 8, recv_window_size: 251, timestamp: 160, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.800213Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=9 recv_next_seq=0 recv_window=251 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.800232Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=9 [INFO] [stdout] 2026-04-23T03:20:14.800234Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=31 slot_index=296 delay_ms=90000 [INFO] [stdout] 2026-04-23T03:20:14.800245Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=9 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=251 [INFO] [stdout] 2026-04-23T03:20:14.800257Z 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-04-23T03:20:14.800271Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-04-23T03:20:14.800286Z 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-04-23T03:20:14.800303Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=209 srtt_ms=205 rttvar_ms=34 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.800311Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=32 slot_index=396 delay_ms=91000 [INFO] [stdout] 2026-04-23T03:20:14.800320Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-04-23T03:20:14.800332Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] 2026-04-23T03:20:14.800333Z 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-04-23T03:20:14.800351Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=9 frame=Ack { header: ShortHeader { command: Ack, connection_id: 9, payload_length: 8, recv_window_size: 250, timestamp: 161, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.800374Z 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: 9, payload_length: 8, recv_window_size: 250, timestamp: 161, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.800388Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=33 slot_index=496 delay_ms=92000 [INFO] [stdout] 2026-04-23T03:20:14.800394Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=9 recv_next_seq=0 recv_window=250 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.800412Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=9 [INFO] [stdout] 2026-04-23T03:20:14.800410Z 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-04-23T03:20:14.800425Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=9 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=250 [INFO] [stdout] 2026-04-23T03:20:14.800513Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=14 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.795021Z 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: 126, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.801758Z 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: 126, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.801789Z 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-04-23T03:20:14.801817Z 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-04-23T03:20:14.801834Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=90 slots_to_advance=9 max_advance=9 current_slot=11 [INFO] [stdout] 2026-04-23T03:20:14.801848Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=6 [INFO] [stdout] 2026-04-23T03:20:14.801832Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=5 [INFO] [stdout] 2026-04-23T03:20:14.800562Z 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: 198, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.802019Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=34 slot_index=84 delay_ms=93000 [INFO] [stdout] 2026-04-23T03:20:14.802078Z 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-04-23T03:20:14.802163Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=35 slot_index=184 delay_ms=94000 [INFO] [stdout] 2026-04-23T03:20:14.801907Z 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-04-23T03:20:14.802332Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=209 srtt_ms=205 rttvar_ms=27 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.802353Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=38 [INFO] [stdout] 2026-04-23T03:20:14.802365Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=37 new_cwnd=38 [INFO] [stdout] 2026-04-23T03:20:14.802393Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=9 frame=Ack { header: ShortHeader { command: Ack, connection_id: 9, 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-04-23T03:20:14.801965Z 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-04-23T03:20:14.802423Z 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: 9, 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-04-23T03:20:14.798553Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=112 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.802457Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=9 recv_next_seq=0 recv_window=249 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.802464Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=112 seq=7 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.802480Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=9 [INFO] [stdout] 2026-04-23T03:20:14.802482Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.802497Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=9 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=249 [INFO] [stdout] 2026-04-23T03:20:14.802501Z 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: 211, sequence_number: 0, recv_next_sequence: 5 }, payload: b"\0\0\0\x05\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.802524Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=6 [INFO] [stdout] 2026-04-23T03:20:14.802539Z 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-04-23T03:20:14.802557Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=211 srtt_ms=206 rttvar_ms=21 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.802593Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=39 [INFO] [stdout] 2026-04-23T03:20:14.802605Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=38 new_cwnd=39 [INFO] [stdout] 2026-04-23T03:20:14.802624Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=9 frame=Ack { header: ShortHeader { command: Ack, connection_id: 9, payload_length: 8, recv_window_size: 248, timestamp: 168, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.802645Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.802647Z 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: 9, payload_length: 8, recv_window_size: 248, timestamp: 168, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.802671Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.802668Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=9 recv_next_seq=0 recv_window=248 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.802687Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=9 [INFO] [stdout] 2026-04-23T03:20:14.802694Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.802700Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=9 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=248 [INFO] [stdout] 2026-04-23T03:20:14.802543Z 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-04-23T03:20:14.802715Z 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-04-23T03:20:14.802725Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=7 [INFO] [stdout] 2026-04-23T03:20:14.802739Z 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-04-23T03:20:14.802759Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=212 srtt_ms=207 rttvar_ms=17 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.802776Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=40 [INFO] [stdout] 2026-04-23T03:20:14.802789Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=39 new_cwnd=40 [INFO] [stdout] 2026-04-23T03:20:14.802796Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=468 delay_ms=61000 [INFO] [stdout] 2026-04-23T03:20:14.802808Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=9 frame=Ack { header: ShortHeader { command: Ack, connection_id: 9, payload_length: 8, recv_window_size: 247, timestamp: 169, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.802815Z 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-04-23T03:20:14.802829Z 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: 9, payload_length: 8, recv_window_size: 247, timestamp: 169, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.802848Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=9 recv_next_seq=0 recv_window=247 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.802868Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=9 [INFO] [stdout] 2026-04-23T03:20:14.802877Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=3 slot_index=56 delay_ms=62000 [INFO] [stdout] 2026-04-23T03:20:14.802881Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=9 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=247 [INFO] [stdout] 2026-04-23T03:20:14.802736Z TRACE kestrel_protocol::core::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-04-23T03:20:14.802895Z 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-04-23T03:20:14.802906Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=8 [INFO] [stdout] 2026-04-23T03:20:14.802909Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=112 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-04-23T03:20:14.802920Z 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-04-23T03:20:14.802930Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=112 seq=8 payload_len=640 [INFO] [stdout] 2026-04-23T03:20:14.802942Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=212 srtt_ms=207 rttvar_ms=14 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.802962Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=41 [INFO] [stdout] 2026-04-23T03:20:14.802955Z 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: 211, sequence_number: 0, recv_next_sequence: 5 }, payload: b"\0\0\0\x05\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.802964Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=4 slot_index=156 delay_ms=63000 [INFO] [stdout] 2026-04-23T03:20:14.802992Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=112 [INFO] [stdout] 2026-04-23T03:20:14.803000Z 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-04-23T03:20:14.803012Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=112 count=4 [INFO] [stdout] 2026-04-23T03:20:14.803047Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=112 state=Established [INFO] [stdout] 2026-04-23T03:20:14.803074Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=5 slot_index=256 delay_ms=64000 [INFO] [stdout] 2026-04-23T03:20:14.803097Z 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-04-23T03:20:14.803137Z 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-04-23T03:20:14.803162Z 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] 2026-04-23T03:20:14.803162Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=6 slot_index=344 delay_ms=70000 [INFO] [stdout] 2026-04-23T03:20:14.803179Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=115 peer_cid=15 state=Established [INFO] [stdout] 2026-04-23T03:20:14.803186Z 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-04-23T03:20:14.803194Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=115 state=Established [INFO] [stdout] 2026-04-23T03:20:14.803219Z 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] 2026-04-23T03:20:14.803240Z 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] 2026-04-23T03:20:14.803258Z 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-04-23T03:20:14.803260Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=7 slot_index=444 delay_ms=71000 [INFO] [stdout] 2026-04-23T03:20:14.803274Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=115 [INFO] [stdout] 2026-04-23T03:20:14.803283Z 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-04-23T03:20:14.803288Z 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] 2026-04-23T03:20:14.803319Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.803333Z 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-04-23T03:20:14.803349Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=205 srtt_ms=205 rttvar_ms=102 rto_ms=615 [INFO] [stdout] 2026-04-23T03:20:14.803351Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=8 slot_index=32 delay_ms=72000 [INFO] [stdout] 2026-04-23T03:20:14.803364Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.803376Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.803376Z 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-04-23T03:20:14.803509Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=4 [INFO] [stdout] 2026-04-23T03:20:14.803530Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=2 [INFO] [stdout] 2026-04-23T03:20:14.803542Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=1 [INFO] [stdout] 2026-04-23T03:20:14.803553Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=5 [INFO] [stdout] 2026-04-23T03:20:14.803583Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=3 [INFO] [stdout] 2026-04-23T03:20:14.803595Z DEBUG kestrel_protocol::timer::task::global: Cleared all timers for connection connection_id=1 count=5 [INFO] [stdout] 2026-04-23T03:20:14.803396Z 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-04-23T03:20:14.803807Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=7 [INFO] [stdout] 2026-04-23T03:20:14.803834Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=8 [INFO] [stdout] 2026-04-23T03:20:14.803845Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=6 [INFO] [stdout] 2026-04-23T03:20:14.803857Z DEBUG kestrel_protocol::timer::task::global: Cleared all timers for connection connection_id=2 count=3 [INFO] [stdout] 2026-04-23T03:20:14.803929Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=9 slot_index=10 delay_ms=100 [INFO] [stdout] 2026-04-23T03:20:14.803964Z 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-04-23T03:20:14.803720Z TRACE kestrel_protocol::core::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-04-23T03:20:14.804025Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=115 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.804047Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=115 seq=0 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.804087Z 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: 207, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.804138Z 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-04-23T03:20:14.804453Z TRACE kestrel_protocol::core::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-04-23T03:20:14.804779Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=115 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.804801Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=115 seq=1 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.804843Z 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: 208, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.804891Z 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-04-23T03:20:14.805208Z TRACE kestrel_protocol::core::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-04-23T03:20:14.805511Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=115 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.805515Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.805532Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=115 seq=2 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.801864Z 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-04-23T03:20:14.805617Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-04-23T03:20:14.805636Z 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-04-23T03:20:14.805654Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=216 srtt_ms=204 rttvar_ms=61 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.805670Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-04-23T03:20:14.805658Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.805681Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-04-23T03:20:14.805705Z 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: 127, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.805732Z 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: 127, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.805743Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.805755Z 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-04-23T03:20:14.805772Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=6 [INFO] [stdout] 2026-04-23T03:20:14.805777Z 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-04-23T03:20:14.805785Z 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-04-23T03:20:14.805810Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] 2026-04-23T03:20:14.805825Z 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-04-23T03:20:14.805844Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=220 srtt_ms=206 rttvar_ms=50 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.805860Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-04-23T03:20:14.805871Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-04-23T03:20:14.805891Z 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: 128, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.805913Z 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: 128, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.805932Z 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-04-23T03:20:14.805951Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=6 [INFO] [stdout] 2026-04-23T03:20:14.805942Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.805965Z 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-04-23T03:20:14.805976Z 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-04-23T03:20:14.805991Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-04-23T03:20:14.806006Z 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-04-23T03:20:14.806024Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=220 srtt_ms=208 rttvar_ms=40 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.806040Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-04-23T03:20:14.806051Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] 2026-04-23T03:20:14.806046Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=3 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.806069Z 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-04-23T03:20:14.806070Z 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: 140, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.806089Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.806094Z 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: 140, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.806115Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.806114Z 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-04-23T03:20:14.806121Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=4 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.806132Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=6 [INFO] [stdout] 2026-04-23T03:20:14.806147Z 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-04-23T03:20:14.806152Z 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-04-23T03:20:14.806174Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=5 [INFO] [stdout] 2026-04-23T03:20:14.806188Z 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-04-23T03:20:14.806221Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=220 srtt_ms=209 rttvar_ms=33 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.806219Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=5 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.806238Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=38 [INFO] [stdout] 2026-04-23T03:20:14.806248Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=37 new_cwnd=38 [INFO] [stdout] 2026-04-23T03:20:14.806244Z 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-04-23T03:20:14.806268Z 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: 141, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.806291Z 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: 141, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.806303Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=6 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.806310Z 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-04-23T03:20:14.806328Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=6 [INFO] [stdout] 2026-04-23T03:20:14.806325Z 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-04-23T03:20:14.806342Z 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-04-23T03:20:14.806367Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=6 [INFO] [stdout] 2026-04-23T03:20:14.806382Z 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-04-23T03:20:14.806382Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=7 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.806399Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=220 srtt_ms=211 rttvar_ms=28 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.806405Z 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-04-23T03:20:14.806415Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=39 [INFO] [stdout] 2026-04-23T03:20:14.806425Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=38 new_cwnd=39 [INFO] [stdout] 2026-04-23T03:20:14.806443Z 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: 150, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.806465Z 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: 150, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.806476Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=8 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.806483Z 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-04-23T03:20:14.806501Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=6 [INFO] [stdout] 2026-04-23T03:20:14.806503Z 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-04-23T03:20:14.806514Z 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-04-23T03:20:14.806536Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=7 [INFO] [stdout] 2026-04-23T03:20:14.806548Z 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-04-23T03:20:14.806583Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=9 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.806589Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=220 srtt_ms=212 rttvar_ms=23 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.806605Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=40 [INFO] [stdout] 2026-04-23T03:20:14.806607Z 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-04-23T03:20:14.806617Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=39 new_cwnd=40 [INFO] [stdout] 2026-04-23T03:20:14.806634Z 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: 151, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.806667Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=10 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.806671Z 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: 151, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.806722Z 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-04-23T03:20:14.806753Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=6 [INFO] [stdout] 2026-04-23T03:20:14.806768Z 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-04-23T03:20:14.806806Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=8 [INFO] [stdout] 2026-04-23T03:20:14.806831Z 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-04-23T03:20:14.806850Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=221 srtt_ms=213 rttvar_ms=19 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.806877Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=41 [INFO] [stdout] 2026-04-23T03:20:14.806889Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=40 new_cwnd=41 [INFO] [stdout] 2026-04-23T03:20:14.806916Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=6 [INFO] [stdout] 2026-04-23T03:20:14.806947Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=6 state=Established [INFO] [stdout] 2026-04-23T03:20:14.807220Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=40 [INFO] [stdout] 2026-04-23T03:20:14.807260Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=40 state=Established [INFO] [stdout] 2026-04-23T03:20:14.807330Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=104 [INFO] [stdout] 2026-04-23T03:20:14.807362Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=104 state=Established [INFO] [stdout] 2026-04-23T03:20:14.807419Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=62 slots_to_advance=6 max_advance=6 current_slot=16 [INFO] [stdout] 2026-04-23T03:20:14.807483Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=53 slots_to_advance=5 max_advance=5 current_slot=7 [INFO] [stdout] 2026-04-23T03:20:14.807539Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=52 slots_to_advance=5 max_advance=5 current_slot=17 [INFO] [stdout] 2026-04-23T03:20:14.807666Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=51 slots_to_advance=5 max_advance=5 current_slot=17 [INFO] [stdout] 2026-04-23T03:20:14.807723Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=50 slots_to_advance=5 max_advance=5 current_slot=17 [INFO] [stdout] 2026-04-23T03:20:14.807771Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=107 [INFO] [stdout] 2026-04-23T03:20:14.807791Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=107 state=Established [INFO] [stdout] 2026-04-23T03:20:14.807826Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=102 [INFO] [stdout] 2026-04-23T03:20:14.807844Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=102 state=Established [INFO] [stdout] 2026-04-23T03:20:14.808098Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=108 [INFO] [stdout] 2026-04-23T03:20:14.808138Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=108 state=Established [INFO] [stdout] 2026-04-23T03:20:14.808181Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=49 slots_to_advance=4 max_advance=4 current_slot=17 [INFO] [stdout] 2026-04-23T03:20:14.808267Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=49 slots_to_advance=4 max_advance=4 current_slot=17 [INFO] [stdout] 2026-04-23T03:20:14.808312Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=48 slots_to_advance=4 max_advance=4 current_slot=17 [INFO] [stdout] 2026-04-23T03:20:14.808353Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=48 slots_to_advance=4 max_advance=4 current_slot=17 [INFO] [stdout] 2026-04-23T03:20:14.808399Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=47 slots_to_advance=4 max_advance=4 current_slot=17 [INFO] [stdout] 2026-04-23T03:20:14.808406Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.808440Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=47 slots_to_advance=4 max_advance=4 current_slot=17 [INFO] [stdout] 2026-04-23T03:20:14.808482Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=46 slots_to_advance=4 max_advance=4 current_slot=17 [INFO] [stdout] 2026-04-23T03:20:14.808523Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=46 slots_to_advance=4 max_advance=4 current_slot=17 [INFO] [stdout] 2026-04-23T03:20:14.808589Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=47 slots_to_advance=4 max_advance=4 current_slot=17 [INFO] [stdout] 2026-04-23T03:20:14.808634Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=45 slots_to_advance=4 max_advance=4 current_slot=17 [INFO] [stdout] 2026-04-23T03:20:14.808689Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=54 slots_to_advance=5 max_advance=5 current_slot=16 [INFO] [stdout] 2026-04-23T03:20:14.808746Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=110 [INFO] [stdout] 2026-04-23T03:20:14.808776Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=110 state=Established [INFO] [stdout] 2026-04-23T03:20:14.808821Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=130 [INFO] [stdout] 2026-04-23T03:20:14.808848Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=130 state=Established [INFO] [stdout] 2026-04-23T03:20:14.808898Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=111 [INFO] [stdout] 2026-04-23T03:20:14.808941Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=111 state=Established [INFO] [stdout] 2026-04-23T03:20:14.802267Z 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-04-23T03:20:14.809068Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=15 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.809133Z 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-04-23T03:20:14.809104Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.809248Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=16 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.809300Z 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-04-23T03:20:14.809388Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.809422Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.809417Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=17 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.809447Z 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-04-23T03:20:14.809523Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=18 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.809562Z 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-04-23T03:20:14.809668Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=19 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.809705Z 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-04-23T03:20:14.809786Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=20 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.809821Z 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-04-23T03:20:14.809902Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=21 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.809937Z 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-04-23T03:20:14.810016Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=22 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.810049Z 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-04-23T03:20:14.810154Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=23 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.810190Z 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-04-23T03:20:14.810276Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=24 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.810310Z 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] 2026-04-23T03:20:14.810387Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=25 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.810414Z 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-04-23T03:20:14.810491Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=26 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.810519Z 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-04-23T03:20:14.810620Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=27 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.810649Z 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-04-23T03:20:14.810724Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=28 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.810751Z 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-04-23T03:20:14.810838Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=29 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.810895Z 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-04-23T03:20:14.810974Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=30 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.811001Z 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-04-23T03:20:14.811075Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=31 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.811101Z 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-04-23T03:20:14.811169Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=32 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.811196Z 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-04-23T03:20:14.811296Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=33 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.811325Z 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-04-23T03:20:14.811404Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=34 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.811429Z 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-04-23T03:20:14.811504Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=35 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.811531Z 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-04-23T03:20:14.811628Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=36 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.811666Z 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-04-23T03:20:14.811748Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=37 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.811784Z 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-04-23T03:20:14.811868Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=38 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.811905Z 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-04-23T03:20:14.811986Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=39 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.812022Z 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-04-23T03:20:14.812103Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=40 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.812139Z 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-04-23T03:20:14.812228Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=41 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.812266Z 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-04-23T03:20:14.812352Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=42 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.812386Z 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-04-23T03:20:14.812468Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=43 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.812505Z 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-04-23T03:20:14.812604Z TRACE kestrel_protocol::core::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-04-23T03:20:14.812894Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=121 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.812927Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=121 seq=7 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.812974Z 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: 210, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.813027Z 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-04-23T03:20:14.813178Z TRACE kestrel_protocol::core::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-04-23T03:20:14.813345Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=121 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-04-23T03:20:14.813366Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=121 seq=8 payload_len=640 [INFO] [stdout] 2026-04-23T03:20:14.813395Z 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: 211, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.813431Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=121 [INFO] [stdout] 2026-04-23T03:20:14.813456Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=121 count=9 [INFO] [stdout] 2026-04-23T03:20:14.813492Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=121 state=Established [INFO] [stdout] 2026-04-23T03:20:14.813652Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=21 [INFO] [stdout] 2026-04-23T03:20:14.813679Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=21 state=Established [INFO] [stdout] 2026-04-23T03:20:14.813714Z 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-04-23T03:20:14.813737Z 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-04-23T03:20:14.813756Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=122 peer_cid=22 state=Established [INFO] [stdout] 2026-04-23T03:20:14.813771Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=122 state=Established [INFO] [stdout] 2026-04-23T03:20:14.813789Z 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: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.813811Z 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: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.813832Z 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-04-23T03:20:14.813851Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=122 [INFO] [stdout] 2026-04-23T03:20:14.813868Z 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-04-23T03:20:14.813909Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.813930Z 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-04-23T03:20:14.813949Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=208 srtt_ms=208 rttvar_ms=104 rto_ms=624 [INFO] [stdout] 2026-04-23T03:20:14.813966Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.813978Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.814000Z 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: 0, 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-04-23T03:20:14.814284Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.814559Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=122 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.814600Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=122 seq=0 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.808891Z 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-04-23T03:20:14.814631Z 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: 211, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.814694Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=36 slot_index=284 delay_ms=95000 [INFO] [stdout] 2026-04-23T03:20:14.814727Z 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-04-23T03:20:14.814791Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=37 slot_index=384 delay_ms=96000 [INFO] [stdout] 2026-04-23T03:20:14.814813Z 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-04-23T03:20:14.814869Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=38 slot_index=484 delay_ms=97000 [INFO] [stdout] 2026-04-23T03:20:14.814889Z 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-04-23T03:20:14.814674Z 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: 0, 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-04-23T03:20:14.814940Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=39 slot_index=72 delay_ms=98000 [INFO] [stdout] 2026-04-23T03:20:14.814960Z 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-04-23T03:20:14.815014Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=40 slot_index=172 delay_ms=99000 [INFO] [stdout] 2026-04-23T03:20:14.815033Z 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-04-23T03:20:14.815083Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=41 slot_index=272 delay_ms=100000 [INFO] [stdout] 2026-04-23T03:20:14.815104Z 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-04-23T03:20:14.815153Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=42 slot_index=372 delay_ms=101000 [INFO] [stdout] 2026-04-23T03:20:14.814932Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.815173Z 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-04-23T03:20:14.815209Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=122 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.815231Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=122 seq=1 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.815238Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=43 slot_index=472 delay_ms=102000 [INFO] [stdout] 2026-04-23T03:20:14.815260Z 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-04-23T03:20:14.815259Z 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: 211, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.815310Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=44 slot_index=60 delay_ms=103000 [INFO] [stdout] 2026-04-23T03:20:14.815330Z 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-04-23T03:20:14.815381Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=45 slot_index=160 delay_ms=104000 [INFO] [stdout] 2026-04-23T03:20:14.815401Z 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] 2026-04-23T03:20:14.815451Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=46 slot_index=260 delay_ms=105000 [INFO] [stdout] 2026-04-23T03:20:14.815472Z 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-04-23T03:20:14.815525Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=47 slot_index=360 delay_ms=106000 [INFO] [stdout] 2026-04-23T03:20:14.815296Z 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: 0, 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-04-23T03:20:14.815546Z 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-04-23T03:20:14.809254Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.815621Z 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-04-23T03:20:14.815629Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=48 slot_index=460 delay_ms=107000 [INFO] [stdout] 2026-04-23T03:20:14.815654Z 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-04-23T03:20:14.815673Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.815700Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=300 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.815709Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=49 slot_index=48 delay_ms=108000 [INFO] [stdout] 2026-04-23T03:20:14.815731Z 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-04-23T03:20:14.815779Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=3 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.815784Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=50 slot_index=148 delay_ms=109000 [INFO] [stdout] 2026-04-23T03:20:14.815804Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=3 entry_id=3 connection_id=400 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.815805Z 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-04-23T03:20:14.815851Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=4 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.815861Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=51 slot_index=248 delay_ms=110000 [INFO] [stdout] 2026-04-23T03:20:14.815878Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=4 entry_id=4 connection_id=500 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.815882Z 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-04-23T03:20:14.815921Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=5 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.815938Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=52 slot_index=348 delay_ms=111000 [INFO] [stdout] 2026-04-23T03:20:14.815945Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=5 entry_id=5 connection_id=600 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.815959Z 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-04-23T03:20:14.815986Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=6 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.816007Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=6 entry_id=6 connection_id=700 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.816012Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=53 slot_index=448 delay_ms=112000 [INFO] [stdout] 2026-04-23T03:20:14.816033Z 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-04-23T03:20:14.816042Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=7 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.816063Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=7 entry_id=7 connection_id=800 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.816086Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=54 slot_index=36 delay_ms=113000 [INFO] [stdout] 2026-04-23T03:20:14.816107Z 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-04-23T03:20:14.816118Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=8 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.816157Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=8 entry_id=8 connection_id=900 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.816234Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=9 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.816259Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=9 entry_id=9 connection_id=1000 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.816304Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=10 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.816325Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=10 entry_id=10 connection_id=1100 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.816366Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=11 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.816387Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=11 entry_id=11 connection_id=1200 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.816429Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=12 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.816451Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=12 entry_id=12 connection_id=1300 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.816481Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=13 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.816501Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=13 entry_id=13 connection_id=1400 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.816537Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=14 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.816557Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=14 entry_id=14 connection_id=1500 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.816631Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=15 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.816668Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=15 entry_id=15 connection_id=1600 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.816701Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=16 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.816722Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=16 entry_id=16 connection_id=1700 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.816751Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=17 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.816769Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=17 entry_id=17 connection_id=1800 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.816803Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=18 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.816824Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=18 entry_id=18 connection_id=1900 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.816854Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=19 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.816872Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=19 entry_id=19 connection_id=2000 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.816910Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=20 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.816931Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=20 entry_id=20 connection_id=2100 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.816968Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=21 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.816990Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=21 entry_id=21 connection_id=2200 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.817025Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=22 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.817043Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=22 entry_id=22 connection_id=2300 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.817080Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=23 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.817101Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=23 entry_id=23 connection_id=2400 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.817144Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=24 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.817166Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=24 entry_id=24 connection_id=2500 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.817223Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=25 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.817250Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=25 entry_id=25 connection_id=2600 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.817287Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=26 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.817307Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=26 entry_id=26 connection_id=2700 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.817345Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=27 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.817365Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=27 entry_id=27 connection_id=2800 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.817394Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=28 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.817414Z 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-04-23T03:20:14.817475Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=29 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.817524Z 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-04-23T03:20:14.817589Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=30 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.817617Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=30 entry_id=30 connection_id=2900 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.817669Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=31 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.817661Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=103 slots_to_advance=10 max_advance=10 current_slot=10 [INFO] [stdout] 2026-04-23T03:20:14.817691Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=31 entry_id=31 connection_id=3300 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.817737Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=32 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.817759Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=32 entry_id=32 connection_id=3000 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.817801Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=33 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.817823Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=33 entry_id=33 connection_id=3400 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.817856Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=34 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.817876Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=34 entry_id=34 connection_id=3500 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.817912Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=35 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.817933Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=35 entry_id=35 connection_id=3600 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.817958Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=36 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.817974Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=36 entry_id=36 connection_id=3700 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.818007Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=37 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.818027Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=37 entry_id=37 connection_id=3800 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.818064Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=38 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.818084Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=38 entry_id=38 connection_id=3900 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.818115Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=39 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.818135Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=39 entry_id=39 connection_id=4000 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.818173Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=40 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.818195Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=40 entry_id=40 connection_id=4100 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.818240Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=41 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.818260Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=41 entry_id=41 connection_id=4200 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.818295Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=42 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.818316Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=42 entry_id=42 connection_id=4300 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.818351Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=43 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.818371Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=43 entry_id=43 connection_id=4400 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.818399Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=44 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.818418Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=44 entry_id=44 connection_id=4500 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.818456Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=45 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.818477Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=45 entry_id=45 connection_id=4600 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.818516Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=46 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.818538Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=46 entry_id=46 connection_id=4800 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.818552Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:56881 frame_count=1 bytes=27 [INFO] [stdout] 2026-04-23T03:20:14.818594Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=47 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.818618Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=47 entry_id=47 connection_id=4700 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.818659Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=48 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.818682Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=48 entry_id=48 connection_id=4900 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.818685Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:36316 frame_count=1 bytes=27 [INFO] [stdout] 2026-04-23T03:20:14.818720Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=49 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.818741Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=49 entry_id=49 connection_id=100 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.818777Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=50 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.818798Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=50 entry_id=50 connection_id=200 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.818824Z 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-04-23T03:20:14.819075Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=51 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.819111Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=51 entry_id=51 connection_id=201 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.819157Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=52 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.819179Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=52 entry_id=52 connection_id=1 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.819226Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=53 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.819248Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=53 entry_id=53 connection_id=301 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.819284Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=54 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.819310Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=54 entry_id=54 connection_id=401 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.819345Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=55 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.819365Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=55 entry_id=55 connection_id=501 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.819399Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=56 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.819420Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=56 entry_id=56 connection_id=601 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.819471Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=57 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.819541Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=57 entry_id=57 connection_id=701 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.806688Z 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-04-23T03:20:14.819654Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=14 slots_to_advance=1 max_advance=1 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.819720Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=11 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.819747Z 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-04-23T03:20:14.819809Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=12 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.819834Z 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-04-23T03:20:14.819881Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=13 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.819904Z 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-04-23T03:20:14.819955Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=14 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.819979Z 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-04-23T03:20:14.820039Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=15 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.820081Z 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-04-23T03:20:14.820134Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=16 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.820156Z 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-04-23T03:20:14.820216Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=17 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.820240Z 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-04-23T03:20:14.820294Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=18 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.820319Z 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-04-23T03:20:14.820404Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=19 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.820429Z 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-04-23T03:20:14.820480Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=20 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.820503Z 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-04-23T03:20:14.820591Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=21 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.820619Z 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-04-23T03:20:14.820681Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=22 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.820706Z 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-04-23T03:20:14.820753Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=23 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.820776Z 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-04-23T03:20:14.820826Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=24 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.820850Z 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-04-23T03:20:14.820900Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=25 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.820924Z 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-04-23T03:20:14.820973Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=26 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.820995Z 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-04-23T03:20:14.821059Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=27 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.821086Z 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-04-23T03:20:14.821150Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=28 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.821174Z 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-04-23T03:20:14.821253Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=29 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.821306Z 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-04-23T03:20:14.821360Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=30 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.821385Z 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-04-23T03:20:14.821449Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=31 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.821480Z 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-04-23T03:20:14.821544Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=32 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.821594Z 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-04-23T03:20:14.821693Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=57 slots_to_advance=5 max_advance=5 current_slot=17 [INFO] [stdout] 2026-04-23T03:20:14.821795Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=65 slots_to_advance=6 max_advance=6 current_slot=16 [INFO] [stdout] 2026-04-23T03:20:14.821850Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=65 slots_to_advance=6 max_advance=6 current_slot=16 [INFO] [stdout] 2026-04-23T03:20:14.821947Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=49 [INFO] [stdout] 2026-04-23T03:20:14.821995Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=49 state=Established [INFO] [stdout] 2026-04-23T03:20:14.822050Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=132 [INFO] [stdout] 2026-04-23T03:20:14.822084Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=132 state=Established [INFO] [stdout] 2026-04-23T03:20:14.822123Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=64 slots_to_advance=6 max_advance=6 current_slot=16 [INFO] [stdout] 2026-04-23T03:20:14.822123Z 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-04-23T03:20:14.822167Z 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-04-23T03:20:14.822180Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=64 slots_to_advance=6 max_advance=6 current_slot=16 [INFO] [stdout] 2026-04-23T03:20:14.822205Z DEBUG kestrel_protocol::core::reliability::congestion::vegas: Congestive loss detected! New ssthresh: 16, New cwnd: 16 [INFO] [stdout] 2026-04-23T03:20:14.822217Z DEBUG kestrel_protocol::core::reliability: Congestion window reduced due to retransmissions old_cwnd=32 new_cwnd=16 count=1 [INFO] [stdout] 2026-04-23T03:20:14.822233Z DEBUG kestrel_protocol::core::reliability::retransmission::rtt: RTO backoff old_rto_ms=200 new_rto_ms=400 [INFO] [stdout] 2026-04-23T03:20:14.822241Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=63 slots_to_advance=6 max_advance=6 current_slot=16 [INFO] [stdout] 2026-04-23T03:20:14.822282Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=63 slots_to_advance=6 max_advance=6 current_slot=16 [INFO] [stdout] 2026-04-23T03:20:14.822271Z 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: 204, sequence_number: 0, recv_next_sequence: 1 }, payload: b"hello, this is a test message" } [INFO] [stdout] 2026-04-23T03:20:14.822342Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=62 slots_to_advance=6 max_advance=6 current_slot=16 [INFO] [stdout] 2026-04-23T03:20:14.822374Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.822382Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=62 slots_to_advance=6 max_advance=6 current_slot=16 [INFO] [stdout] 2026-04-23T03:20:14.822409Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.822423Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=61 slots_to_advance=6 max_advance=6 current_slot=16 [INFO] [stdout] 2026-04-23T03:20:14.822466Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=61 slots_to_advance=6 max_advance=6 current_slot=16 [INFO] [stdout] 2026-04-23T03:20:14.822509Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=39 slots_to_advance=3 max_advance=3 current_slot=18 [INFO] [stdout] 2026-04-23T03:20:14.822541Z 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: 204, sequence_number: 0, recv_next_sequence: 1 }, payload: b"hello, this is a test message" } [INFO] [stdout] 2026-04-23T03:20:14.822549Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=40 slots_to_advance=4 max_advance=4 current_slot=18 [INFO] [stdout] 2026-04-23T03:20:14.822595Z TRACE kestrel_protocol::core::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: 204, sequence_number: 0, recv_next_sequence: 1 }, payload: b"hello, this is a test message" } [INFO] [stdout] 2026-04-23T03:20:14.822614Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=41 slots_to_advance=4 max_advance=4 current_slot=18 [INFO] [stdout] 2026-04-23T03:20:14.822627Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=0 payload_len=29 state=Established [INFO] [stdout] 2026-04-23T03:20:14.822645Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=0 payload_len=29 [INFO] [stdout] 2026-04-23T03:20:14.822661Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=134 [INFO] [stdout] 2026-04-23T03:20:14.822681Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=134 state=Established [INFO] [stdout] 2026-04-23T03:20:14.822682Z 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: 204, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.822717Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.822717Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=135 [INFO] [stdout] 2026-04-23T03:20:14.822733Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=2 count=1 [INFO] [stdout] 2026-04-23T03:20:14.822738Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=135 state=Established [INFO] [stdout] 2026-04-23T03:20:14.822770Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.822773Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=136 [INFO] [stdout] 2026-04-23T03:20:14.822791Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=136 state=Established [INFO] [stdout] 2026-04-23T03:20:14.822825Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=47 [INFO] [stdout] 2026-04-23T03:20:14.822832Z 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: 204, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.822840Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=47 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.822856Z 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: 204, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.822874Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=137 [INFO] [stdout] 2026-04-23T03:20:14.822882Z 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-04-23T03:20:14.822891Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=137 state=Established [INFO] [stdout] 2026-04-23T03:20:14.822903Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=1 [INFO] [stdout] 2026-04-23T03:20:14.822922Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=138 [INFO] [stdout] 2026-04-23T03:20:14.822919Z 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-04-23T03:20:14.822937Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=138 state=Established [INFO] [stdout] 2026-04-23T03:20:14.822969Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=141 [INFO] [stdout] 2026-04-23T03:20:14.822971Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.822987Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=141 state=Established [INFO] [stdout] 2026-04-23T03:20:14.822993Z 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-04-23T03:20:14.823013Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=0 srtt_ms=0 rttvar_ms=0 rto_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.823022Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=40 slots_to_advance=4 max_advance=4 current_slot=18 [INFO] [stdout] 2026-04-23T03:20:14.823031Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=17 [INFO] [stdout] 2026-04-23T03:20:14.823053Z TRACE kestrel_protocol::core::reliability::congestion::vegas: State changed to CongestionAvoidance [INFO] [stdout] 2026-04-23T03:20:14.823062Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=16 new_cwnd=17 [INFO] [stdout] 2026-04-23T03:20:14.823065Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=142 [INFO] [stdout] 2026-04-23T03:20:14.823082Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.823082Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=142 state=Established [INFO] [stdout] 2026-04-23T03:20:14.823103Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.823117Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=143 [INFO] [stdout] 2026-04-23T03:20:14.823135Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=143 state=Established [INFO] [stdout] 2026-04-23T03:20:14.823170Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=144 [INFO] [stdout] 2026-04-23T03:20:14.823188Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=144 state=Established [INFO] [stdout] 2026-04-23T03:20:14.823210Z  INFO kestrel_protocol::core::tests::retransmission: [Server] Successfully received message after RTO. [INFO] [stdout] 2026-04-23T03:20:14.823229Z  INFO kestrel_protocol::core::tests::retransmission: [Server] Sending response... [INFO] [stdout] 2026-04-23T03:20:14.823239Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=146 [INFO] [stdout] 2026-04-23T03:20:14.823257Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=146 state=Established [INFO] [stdout] 2026-04-23T03:20:14.823294Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=133 [INFO] [stdout] 2026-04-23T03:20:14.823299Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.823313Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=133 state=Established [INFO] [stdout] 2026-04-23T03:20:14.823327Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.823348Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=129 [INFO] [stdout] 2026-04-23T03:20:14.823350Z 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: 205, sequence_number: 1, recv_next_sequence: 1 }, payload: b"ack" } [INFO] [stdout] 2026-04-23T03:20:14.823366Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=129 state=Established [INFO] [stdout] 2026-04-23T03:20:14.823386Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.823402Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=38 slots_to_advance=3 max_advance=3 current_slot=18 [INFO] [stdout] 2026-04-23T03:20:14.823443Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=40 slots_to_advance=4 max_advance=4 current_slot=18 [INFO] [stdout] 2026-04-23T03:20:14.823483Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=38 slots_to_advance=3 max_advance=3 current_slot=18 [INFO] [stdout] 2026-04-23T03:20:14.802972Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=40 new_cwnd=41 [INFO] [stdout] 2026-04-23T03:20:14.823640Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=9 [INFO] [stdout] 2026-04-23T03:20:14.805559Z 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: 208, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.823677Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=9 state=Established [INFO] [stdout] 2026-04-23T03:20:14.823728Z 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: 148, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.823758Z 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: 148, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.823777Z 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-04-23T03:20:14.823803Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=10 [INFO] [stdout] 2026-04-23T03:20:14.823816Z 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-04-23T03:20:14.823848Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.823875Z 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-04-23T03:20:14.823892Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=232 srtt_ms=232 rttvar_ms=116 rto_ms=697 [INFO] [stdout] 2026-04-23T03:20:14.823913Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.823923Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.823950Z 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: 149, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.823696Z 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-04-23T03:20:14.823976Z 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: 149, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.823995Z 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-04-23T03:20:14.824016Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=10 [INFO] [stdout] 2026-04-23T03:20:14.824027Z 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-04-23T03:20:14.824049Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-04-23T03:20:14.824074Z 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-04-23T03:20:14.824100Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=232 srtt_ms=232 rttvar_ms=87 rto_ms=581 [INFO] [stdout] 2026-04-23T03:20:14.824117Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.824126Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.824147Z 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: 149, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.824167Z 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: 149, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.824192Z 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-04-23T03:20:14.824224Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=10 [INFO] [stdout] 2026-04-23T03:20:14.824236Z 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-04-23T03:20:14.824257Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-04-23T03:20:14.823996Z TRACE kestrel_protocol::core::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] test timer::parallel::tests::test_system_statistics ... ok [INFO] [stdout] 2026-04-23T03:20:14.824313Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=115 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.824347Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=115 seq=3 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.824389Z 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: 227, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.824278Z 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-04-23T03:20:14.824497Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=232 srtt_ms=232 rttvar_ms=65 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.824518Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-04-23T03:20:14.824528Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-04-23T03:20:14.824535Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.824550Z 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: 150, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.824598Z 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: 150, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.824616Z 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-04-23T03:20:14.824633Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=10 [INFO] [stdout] 2026-04-23T03:20:14.824645Z 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-04-23T03:20:14.824669Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] 2026-04-23T03:20:14.824682Z 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-04-23T03:20:14.824699Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=233 srtt_ms=232 rttvar_ms=49 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.824705Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.824695Z 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: 205, sequence_number: 1, recv_next_sequence: 1 }, payload: b"ack" } [INFO] [stdout] 2026-04-23T03:20:14.824714Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-04-23T03:20:14.824725Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-04-23T03:20:14.824440Z 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-04-23T03:20:14.824739Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.824729Z TRACE kestrel_protocol::core::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: 205, sequence_number: 1, recv_next_sequence: 1 }, payload: b"ack" } [INFO] [stdout] 2026-04-23T03:20:14.824740Z 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: 151, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.824754Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=1 seq=1 payload_len=3 state=Established [INFO] [stdout] 2026-04-23T03:20:14.824759Z 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: 151, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.824773Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=1 seq=1 payload_len=3 [INFO] [stdout] 2026-04-23T03:20:14.824776Z 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-04-23T03:20:14.824783Z TRACE kestrel_protocol::timer::wheel::core: Batch cancelled timers batch_size=3 cancelled_count=0 [INFO] [stdout] 2026-04-23T03:20:14.824793Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=10 [INFO] [stdout] 2026-04-23T03:20:14.824804Z 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-04-23T03:20:14.824806Z 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-04-23T03:20:14.824799Z 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: 207, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.824823Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-04-23T03:20:14.824836Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.824835Z 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-04-23T03:20:14.824853Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=1 count=1 [INFO] [stdout] 2026-04-23T03:20:14.824852Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=233 srtt_ms=232 rttvar_ms=37 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.824868Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-04-23T03:20:14.824878Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] 2026-04-23T03:20:14.824892Z 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: 152, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.824891Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.824900Z  INFO kestrel_protocol::core::tests::retransmission: [Client] Successfully received server response. [INFO] [stdout] 2026-04-23T03:20:14.824917Z  INFO kestrel_protocol::core::tests::retransmission: [Test] Shutting down client stream... [INFO] [stdout] 2026-04-23T03:20:14.824910Z 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: 152, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.824931Z  INFO kestrel_protocol::core::tests::retransmission: [Test] Shutting down server stream... [INFO] [stdout] 2026-04-23T03:20:14.824923Z 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-04-23T03:20:14.824928Z 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-04-23T03:20:14.824947Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=10 [INFO] [stdout] 2026-04-23T03:20:14.824957Z 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-04-23T03:20:14.824976Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=5 [INFO] [stdout] 2026-04-23T03:20:14.824985Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=2 current_state=Established [INFO] [stdout] 2026-04-23T03:20:14.824987Z 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-04-23T03:20:14.824994Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.825005Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=233 srtt_ms=232 rttvar_ms=28 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.825011Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="Established" to="Closing" [INFO] [stdout] 2026-04-23T03:20:14.825021Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=38 [INFO] [stdout] 2026-04-23T03:20:14.825017Z 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-04-23T03:20:14.825031Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=37 new_cwnd=38 [INFO] [stdout] 2026-04-23T03:20:14.824757Z TRACE kestrel_protocol::core::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-04-23T03:20:14.825039Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.825045Z 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: 154, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.825060Z 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-04-23T03:20:14.825060Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=115 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.825064Z 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: 154, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.825082Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=115 seq=4 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.825083Z 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-04-23T03:20:14.825085Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=3 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.825086Z 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: 206, sequence_number: 2, recv_next_sequence: 1 } } [INFO] [stdout] 2026-04-23T03:20:14.825100Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=10 [INFO] [stdout] 2026-04-23T03:20:14.825109Z 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-04-23T03:20:14.825113Z 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-04-23T03:20:14.825119Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.825110Z 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: 228, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.825133Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=6 [INFO] [stdout] 2026-04-23T03:20:14.825143Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.825145Z 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-04-23T03:20:14.825163Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=233 srtt_ms=233 rttvar_ms=21 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.825178Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=39 [INFO] [stdout] 2026-04-23T03:20:14.825187Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=38 new_cwnd=39 [INFO] [stdout] 2026-04-23T03:20:14.825186Z TRACE kestrel_protocol::timer::wheel::core: Batch cancelled timers batch_size=5 cancelled_count=3 [INFO] [stdout] 2026-04-23T03:20:14.825201Z 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: 154, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.825229Z 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: 154, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.825231Z 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-04-23T03:20:14.825246Z 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-04-23T03:20:14.825263Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=10 [INFO] [stdout] 2026-04-23T03:20:14.825260Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.825273Z 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-04-23T03:20:14.825289Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Beginning graceful shutdown cid=1 current_state=Established [INFO] [stdout] 2026-04-23T03:20:14.825295Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=7 [INFO] [stdout] 2026-04-23T03:20:14.825306Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Established" to="Closing" [INFO] [stdout] 2026-04-23T03:20:14.825310Z 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-04-23T03:20:14.825328Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.825328Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=234 srtt_ms=233 rttvar_ms=16 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.825342Z 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-04-23T03:20:14.825513Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=40 [INFO] [stdout] 2026-04-23T03:20:14.825527Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=39 new_cwnd=40 [INFO] [stdout] 2026-04-23T03:20:14.825544Z 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: 207, sequence_number: 1, recv_next_sequence: 2 } } [INFO] [stdout] test timer::parallel::tests::test_performance_scaling ... ok [INFO] [stdout] 2026-04-23T03:20:14.825598Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.825624Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.825553Z 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: 154, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.825663Z 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: 154, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] test timer::task::tests::tests::test_global_timer_task_error_recovery ... ok [INFO] [stdout] 2026-04-23T03:20:14.825684Z 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-04-23T03:20:14.825703Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=10 [INFO] [stdout] 2026-04-23T03:20:14.825716Z 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-04-23T03:20:14.825742Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=8 [INFO] [stdout] 2026-04-23T03:20:14.825756Z 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-04-23T03:20:14.825774Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=234 srtt_ms=233 rttvar_ms=12 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.825794Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=41 [INFO] [stdout] 2026-04-23T03:20:14.825805Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=40 new_cwnd=41 [INFO] [stdout] 2026-04-23T03:20:14.825832Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=10 [INFO] [stdout] 2026-04-23T03:20:14.825849Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=10 state=Established [INFO] [stdout] 2026-04-23T03:20:14.825886Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=11 frame=Ack { header: ShortHeader { command: Ack, connection_id: 11, 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-04-23T03:20:14.825907Z 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: 11, 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-04-23T03:20:14.825925Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=11 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.825942Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=11 [INFO] [stdout] 2026-04-23T03:20:14.825954Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=11 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-04-23T03:20:14.825976Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.825988Z 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-04-23T03:20:14.825996Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=44 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.826005Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=233 srtt_ms=233 rttvar_ms=116 rto_ms=701 [INFO] [stdout] 2026-04-23T03:20:14.826023Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.826032Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.826031Z 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-04-23T03:20:14.826048Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=11 frame=Ack { header: ShortHeader { command: Ack, connection_id: 11, payload_length: 8, recv_window_size: 254, timestamp: 150, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.826071Z 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: 11, payload_length: 8, recv_window_size: 254, timestamp: 150, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.826088Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=11 recv_next_seq=0 recv_window=254 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.826105Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=11 [INFO] [stdout] 2026-04-23T03:20:14.826117Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=11 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=254 [INFO] [stdout] 2026-04-23T03:20:14.826118Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=45 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.826138Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-04-23T03:20:14.826147Z 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-04-23T03:20:14.826152Z 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-04-23T03:20:14.826170Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=234 srtt_ms=233 rttvar_ms=87 rto_ms=584 [INFO] [stdout] 2026-04-23T03:20:14.826185Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.826195Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.826219Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=11 frame=Ack { header: ShortHeader { command: Ack, connection_id: 11, payload_length: 8, recv_window_size: 253, timestamp: 151, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.826231Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=46 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.826239Z 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: 11, payload_length: 8, recv_window_size: 253, timestamp: 151, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.826258Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=11 recv_next_seq=0 recv_window=253 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.826259Z 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-04-23T03:20:14.826274Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=11 [INFO] [stdout] 2026-04-23T03:20:14.826286Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=11 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=253 [INFO] [stdout] 2026-04-23T03:20:14.826306Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-04-23T03:20:14.826318Z 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-04-23T03:20:14.826318Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.826332Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=47 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.826335Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=234 srtt_ms=233 rttvar_ms=65 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.826353Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-04-23T03:20:14.826363Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-04-23T03:20:14.826359Z 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-04-23T03:20:14.826378Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=11 frame=Ack { header: ShortHeader { command: Ack, connection_id: 11, payload_length: 8, recv_window_size: 252, timestamp: 152, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.826396Z 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: 11, payload_length: 8, recv_window_size: 252, timestamp: 152, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.826415Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=11 recv_next_seq=0 recv_window=252 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.826425Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=48 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.826432Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=11 [INFO] [stdout] 2026-04-23T03:20:14.816159Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=55 slot_index=136 delay_ms=114000 [INFO] [stdout] 2026-04-23T03:20:14.826460Z 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-04-23T03:20:14.826467Z 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-04-23T03:20:14.826526Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=49 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.826548Z 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-04-23T03:20:14.826555Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=56 slot_index=236 delay_ms=115000 [INFO] [stdout] 2026-04-23T03:20:14.826596Z 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-04-23T03:20:14.826642Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=50 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.826670Z 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-04-23T03:20:14.826683Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=57 slot_index=336 delay_ms=116000 [INFO] [stdout] 2026-04-23T03:20:14.826738Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=51 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.826741Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.826749Z 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-04-23T03:20:14.826764Z 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-04-23T03:20:14.826805Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=58 slot_index=436 delay_ms=117000 [INFO] [stdout] 2026-04-23T03:20:14.826826Z 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-04-23T03:20:14.826842Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=52 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.826872Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.826868Z 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-04-23T03:20:14.826863Z 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: 206, sequence_number: 2, recv_next_sequence: 1 } } [INFO] [stdout] 2026-04-23T03:20:14.826878Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=59 slot_index=24 delay_ms=118000 [INFO] [stdout] 2026-04-23T03:20:14.826899Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.826899Z 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: 206, sequence_number: 2, recv_next_sequence: 1 } } [INFO] [stdout] 2026-04-23T03:20:14.826900Z 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-04-23T03:20:14.826922Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=1 seq=2 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.826941Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Handling FIN in Closing state cid=1 seq=2 [INFO] [stdout] 2026-04-23T03:20:14.826937Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=53 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.826953Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=60 slot_index=124 delay_ms=119000 [INFO] [stdout] 2026-04-23T03:20:14.826964Z 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-04-23T03:20:14.826976Z 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-04-23T03:20:14.826970Z 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: 209, sequence_number: 0, recv_next_sequence: 2 }, payload: b"\0\0\0\x02\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.827009Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=1 current_state=Closing target_state=ClosingWait [INFO] [stdout] 2026-04-23T03:20:14.827022Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.827026Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="Closing" to="ClosingWait" [INFO] [stdout] 2026-04-23T03:20:14.827030Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=61 slot_index=224 delay_ms=120000 [INFO] [stdout] 2026-04-23T03:20:14.827032Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=54 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.827046Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.827051Z 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-04-23T03:20:14.827060Z  INFO kestrel_protocol::timer::task::global: Received shutdown command [INFO] [stdout] 2026-04-23T03:20:14.827058Z 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-04-23T03:20:14.827065Z TRACE kestrel_protocol::core::endpoint::core::event_loop: All data drained after FIN, closing user stream (sending EOF). cid=1 [INFO] [stdout] 2026-04-23T03:20:14.827074Z  INFO kestrel_protocol::timer::task::global: Global timer task shutdown completed [INFO] [stdout] 2026-04-23T03:20:14.827088Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=ClosingWait [INFO] [stdout] 2026-04-23T03:20:14.827104Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=62 slot_index=324 delay_ms=121000 [INFO] [stdout] 2026-04-23T03:20:14.827125Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.827125Z 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-04-23T03:20:14.827128Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=55 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.827151Z  INFO kestrel_protocol::timer::task::global: Received shutdown command [INFO] [stdout] 2026-04-23T03:20:14.827161Z  INFO kestrel_protocol::timer::task::global: Global timer task shutdown completed [INFO] [stdout] 2026-04-23T03:20:14.827154Z 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-04-23T03:20:14.827162Z 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: 207, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.827179Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=63 slot_index=424 delay_ms=122000 [INFO] [stdout] 2026-04-23T03:20:14.827200Z 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-04-23T03:20:14.827206Z 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: 207, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.827233Z 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-04-23T03:20:14.827241Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=56 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.827254Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Closing state cid=2 [INFO] [stdout] 2026-04-23T03:20:14.827265Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=64 slot_index=12 delay_ms=123000 [INFO] [stdout] 2026-04-23T03:20:14.827267Z 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-04-23T03:20:14.827271Z 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-04-23T03:20:14.827287Z 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-04-23T03:20:14.827321Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-04-23T03:20:14.827341Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=65 slot_index=112 delay_ms=124000 [INFO] [stdout] 2026-04-23T03:20:14.827343Z 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-04-23T03:20:14.827362Z 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-04-23T03:20:14.827365Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=3 srtt_ms=4 rttvar_ms=1 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.827368Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=57 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.827384Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.827395Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.827417Z 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: 207, sequence_number: 1, recv_next_sequence: 2 } } [INFO] [stdout] 2026-04-23T03:20:14.827418Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=66 slot_index=212 delay_ms=125000 [INFO] [stdout] 2026-04-23T03:20:14.827439Z 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: 207, sequence_number: 1, recv_next_sequence: 2 } } [INFO] [stdout] 2026-04-23T03:20:14.827441Z 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-04-23T03:20:14.827444Z 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-04-23T03:20:14.827458Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Processing FIN frame cid=2 seq=1 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.827473Z DEBUG kestrel_protocol::core::endpoint::processing::processors::connection: Handling FIN in Closing state cid=2 seq=1 [INFO] [stdout] 2026-04-23T03:20:14.827496Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=67 slot_index=312 delay_ms=126000 [INFO] [stdout] 2026-04-23T03:20:14.827495Z 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: 209, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.827519Z 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-04-23T03:20:14.827530Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=Closing target_state=ClosingWait [INFO] [stdout] 2026-04-23T03:20:14.827528Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=58 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.827548Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="Closing" to="ClosingWait" [INFO] [stdout] 2026-04-23T03:20:14.827586Z 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: 209, sequence_number: 0, recv_next_sequence: 2 }, payload: b"\0\0\0\x02\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.827590Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=11 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=252 [INFO] [stdout] 2026-04-23T03:20:14.827611Z 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: 209, sequence_number: 0, recv_next_sequence: 2 }, payload: b"\0\0\0\x02\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.827620Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] 2026-04-23T03:20:14.827632Z 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-04-23T03:20:14.827635Z 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-04-23T03:20:14.827658Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in ClosingWait state cid=2 [INFO] [stdout] 2026-04-23T03:20:14.827654Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=234 srtt_ms=233 rttvar_ms=49 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.827672Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-04-23T03:20:14.827673Z 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-04-23T03:20:14.827682Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-04-23T03:20:14.827701Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Packet acknowledged by SACK seq=2 [INFO] [stdout] 2026-04-23T03:20:14.827699Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=11 frame=Ack { header: ShortHeader { command: Ack, connection_id: 11, payload_length: 8, recv_window_size: 251, timestamp: 152, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.827715Z 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-04-23T03:20:14.827721Z 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: 11, payload_length: 8, recv_window_size: 251, timestamp: 152, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.827738Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.827739Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=11 recv_next_seq=0 recv_window=251 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.827754Z TRACE kestrel_protocol::core::endpoint::core::event_loop: All data drained after FIN, closing user stream (sending EOF). cid=2 [INFO] [stdout] 2026-04-23T03:20:14.827757Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=11 [INFO] [stdout] 2026-04-23T03:20:14.827767Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=2 current_state=ClosingWait target_state=Closed [INFO] [stdout] 2026-04-23T03:20:14.827769Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=11 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=251 [INFO] [stdout] 2026-04-23T03:20:14.827784Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=2 from="ClosingWait" to="Closed" [INFO] [stdout] 2026-04-23T03:20:14.827789Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-04-23T03:20:14.827804Z DEBUG kestrel_protocol::core::reliability::retransmission: Cleared all in-flight packets from both SACK and simple retransmission managers. [INFO] [stdout] 2026-04-23T03:20:14.827802Z 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-04-23T03:20:14.827815Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2 [INFO] [stdout] 2026-04-23T03:20:14.827820Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=235 srtt_ms=234 rttvar_ms=37 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.827836Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-04-23T03:20:14.827593Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.827845Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] 2026-04-23T03:20:14.827864Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=11 frame=Ack { header: ShortHeader { command: Ack, connection_id: 11, payload_length: 8, recv_window_size: 250, timestamp: 153, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.827866Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=122 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.827882Z 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: 11, payload_length: 8, recv_window_size: 250, timestamp: 153, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.827888Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=122 seq=2 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.827900Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=11 recv_next_seq=0 recv_window=250 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.827917Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=11 [INFO] [stdout] 2026-04-23T03:20:14.827920Z 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: 224, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.827928Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=11 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=250 [INFO] [stdout] 2026-04-23T03:20:14.827950Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=5 [INFO] [stdout] 2026-04-23T03:20:14.827962Z 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-04-23T03:20:14.827979Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=235 srtt_ms=234 rttvar_ms=28 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.827995Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=38 [INFO] [stdout] 2026-04-23T03:20:14.828004Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=37 new_cwnd=38 [INFO] [stdout] 2026-04-23T03:20:14.828019Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=11 frame=Ack { header: ShortHeader { command: Ack, connection_id: 11, payload_length: 8, recv_window_size: 249, timestamp: 153, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.828038Z 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: 11, payload_length: 8, recv_window_size: 249, timestamp: 153, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.828054Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=11 recv_next_seq=0 recv_window=249 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.828071Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=11 [INFO] [stdout] 2026-04-23T03:20:14.828082Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=11 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=249 [INFO] [stdout] 2026-04-23T03:20:14.828101Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=6 [INFO] [stdout] 2026-04-23T03:20:14.828112Z 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-04-23T03:20:14.828129Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=236 srtt_ms=234 rttvar_ms=21 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.828144Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=39 [INFO] [stdout] 2026-04-23T03:20:14.828154Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=38 new_cwnd=39 [INFO] [stdout] 2026-04-23T03:20:14.828168Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=11 frame=Ack { header: ShortHeader { command: Ack, connection_id: 11, 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-04-23T03:20:14.828186Z 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: 11, 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-04-23T03:20:14.827960Z 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: 0, 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-04-23T03:20:14.828210Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=11 recv_next_seq=0 recv_window=248 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.828228Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=11 [INFO] [stdout] 2026-04-23T03:20:14.828239Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=11 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=248 [INFO] [stdout] 2026-04-23T03:20:14.828259Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=7 [INFO] [stdout] 2026-04-23T03:20:14.828271Z 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-04-23T03:20:14.828288Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=236 srtt_ms=234 rttvar_ms=16 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.828303Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=40 [INFO] [stdout] 2026-04-23T03:20:14.828312Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=39 new_cwnd=40 [INFO] [stdout] 2026-04-23T03:20:14.828327Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=11 frame=Ack { header: ShortHeader { command: Ack, connection_id: 11, payload_length: 8, recv_window_size: 247, timestamp: 154, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.828345Z 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: 11, payload_length: 8, recv_window_size: 247, timestamp: 154, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.828362Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=11 recv_next_seq=0 recv_window=247 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.823550Z 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-04-23T03:20:14.828508Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=11 [INFO] [stdout] 2026-04-23T03:20:14.828518Z 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-04-23T03:20:14.828523Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=11 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=247 [INFO] [stdout] 2026-04-23T03:20:14.828544Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=116 peer_cid=16 state=Established [INFO] [stdout] 2026-04-23T03:20:14.828578Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=8 [INFO] [stdout] 2026-04-23T03:20:14.828560Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=116 state=Established [INFO] [stdout] 2026-04-23T03:20:14.828594Z 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-04-23T03:20:14.828601Z 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-04-23T03:20:14.828612Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=236 srtt_ms=234 rttvar_ms=12 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.828628Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=41 [INFO] [stdout] 2026-04-23T03:20:14.828624Z 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-04-23T03:20:14.828638Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=40 new_cwnd=41 [INFO] [stdout] 2026-04-23T03:20:14.828645Z 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-04-23T03:20:14.828653Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=11 [INFO] [stdout] 2026-04-23T03:20:14.828236Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.828674Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=11 state=Established [INFO] [stdout] 2026-04-23T03:20:14.828683Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=122 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.828702Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=122 seq=3 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.828721Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=36 [INFO] [stdout] 2026-04-23T03:20:14.828737Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=36 state=Established [INFO] [stdout] 2026-04-23T03:20:14.828729Z 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: 225, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.828766Z 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-04-23T03:20:14.828809Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=223 slots_to_advance=22 max_advance=22 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.828856Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=140 [INFO] [stdout] 2026-04-23T03:20:14.828871Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=140 state=Established [INFO] [stdout] 2026-04-23T03:20:14.828896Z 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-04-23T03:20:14.828935Z 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-04-23T03:20:14.828970Z 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-04-23T03:20:14.828766Z 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: 0, 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-04-23T03:20:14.828399Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=68 slot_index=412 delay_ms=127000 [INFO] [stdout] 2026-04-23T03:20:14.829058Z 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: 209, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.829076Z 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-04-23T03:20:14.829091Z 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: 209, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\0\0\0\x01\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.829113Z 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-04-23T03:20:14.829133Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in ClosingWait state cid=1 [INFO] [stdout] 2026-04-23T03:20:14.829148Z 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-04-23T03:20:14.829147Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=69 slot_index=0 delay_ms=128000 [INFO] [stdout] 2026-04-23T03:20:14.829160Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.829164Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.829171Z 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-04-23T03:20:14.829179Z TRACE kestrel_protocol::core::reliability::retransmission::simple_retx_manager: Packet acknowledged by SACK seq=1 [INFO] [stdout] 2026-04-23T03:20:14.829203Z 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-04-23T03:20:14.829226Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.829238Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=1 current_state=ClosingWait target_state=Closed [INFO] [stdout] 2026-04-23T03:20:14.829237Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=70 slot_index=100 delay_ms=129000 [INFO] [stdout] 2026-04-23T03:20:14.829254Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=1 from="ClosingWait" to="Closed" [INFO] [stdout] 2026-04-23T03:20:14.829262Z 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-04-23T03:20:14.829272Z DEBUG kestrel_protocol::core::reliability::retransmission: Cleared all in-flight packets from both SACK and simple retransmission managers. [INFO] [stdout] 2026-04-23T03:20:14.829283Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=1 [INFO] [stdout] 2026-04-23T03:20:14.829040Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.829316Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=71 slot_index=200 delay_ms=130000 [INFO] [stdout] 2026-04-23T03:20:14.829317Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=122 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.829339Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=122 seq=4 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.829339Z 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-04-23T03:20:14.829366Z 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: 225, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.829393Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=72 slot_index=300 delay_ms=131000 [INFO] [stdout] 2026-04-23T03:20:14.829414Z 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-04-23T03:20:14.829469Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=73 slot_index=400 delay_ms=132000 [INFO] [stdout] 2026-04-23T03:20:14.829495Z 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-04-23T03:20:14.829549Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=74 slot_index=500 delay_ms=133000 [INFO] [stdout] 2026-04-23T03:20:14.829590Z 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-04-23T03:20:14.829401Z 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: 0, 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-04-23T03:20:14.829658Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=75 slot_index=88 delay_ms=134000 [INFO] [stdout] 2026-04-23T03:20:14.829684Z 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-04-23T03:20:14.829757Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=76 slot_index=188 delay_ms=135000 [INFO] [stdout] 2026-04-23T03:20:14.829784Z 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-04-23T03:20:14.829859Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=77 slot_index=288 delay_ms=136000 [INFO] [stdout] 2026-04-23T03:20:14.829886Z 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-04-23T03:20:14.829682Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.829947Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=122 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.829953Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=78 slot_index=388 delay_ms=137000 [INFO] [stdout] 2026-04-23T03:20:14.829968Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=122 seq=5 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.829975Z 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-04-23T03:20:14.829995Z 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: 226, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.830040Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=79 slot_index=488 delay_ms=138000 [INFO] [stdout] 2026-04-23T03:20:14.830067Z 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-04-23T03:20:14.830157Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=80 slot_index=76 delay_ms=139000 [INFO] [stdout] 2026-04-23T03:20:14.830180Z 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-04-23T03:20:14.830243Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=81 slot_index=176 delay_ms=140000 [INFO] [stdout] 2026-04-23T03:20:14.830265Z 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-04-23T03:20:14.830032Z 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: 0, 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-04-23T03:20:14.830318Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=82 slot_index=276 delay_ms=141000 [INFO] [stdout] 2026-04-23T03:20:14.830340Z 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-04-23T03:20:14.830394Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=83 slot_index=376 delay_ms=142000 [INFO] [stdout] 2026-04-23T03:20:14.830414Z 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-04-23T03:20:14.830466Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=84 slot_index=476 delay_ms=143000 [INFO] [stdout] 2026-04-23T03:20:14.830487Z 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-04-23T03:20:14.830540Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=85 slot_index=64 delay_ms=144000 [INFO] [stdout] 2026-04-23T03:20:14.830561Z 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-04-23T03:20:14.830601Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=116 [INFO] [stdout] 2026-04-23T03:20:14.830831Z 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-04-23T03:20:14.830892Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.830912Z 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-04-23T03:20:14.830931Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=229 srtt_ms=229 rttvar_ms=114 rto_ms=688 [INFO] [stdout] 2026-04-23T03:20:14.830949Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.830960Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.830985Z 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: 1, 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-04-23T03:20:14.831296Z TRACE kestrel_protocol::core::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: 1, 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-04-23T03:20:14.831615Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=116 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.831638Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=116 seq=0 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.831668Z 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: 234, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.831712Z 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: 1, 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-04-23T03:20:14.832003Z TRACE kestrel_protocol::core::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: 1, 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-04-23T03:20:14.832305Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=116 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.832326Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=116 seq=1 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.832354Z 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: 234, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.825146Z 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-04-23T03:20:14.830643Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=86 slot_index=164 delay_ms=145000 [INFO] [stdout] 2026-04-23T03:20:14.832660Z 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-04-23T03:20:14.832745Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=87 slot_index=264 delay_ms=146000 [INFO] [stdout] 2026-04-23T03:20:14.832767Z 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-04-23T03:20:14.832821Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=88 slot_index=364 delay_ms=147000 [INFO] [stdout] 2026-04-23T03:20:14.832846Z 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-04-23T03:20:14.832899Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=89 slot_index=464 delay_ms=148000 [INFO] [stdout] 2026-04-23T03:20:14.832921Z 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-04-23T03:20:14.832640Z TRACE kestrel_protocol::core::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-04-23T03:20:14.832974Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=90 slot_index=52 delay_ms=149000 [INFO] [stdout] 2026-04-23T03:20:14.832988Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=115 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.832996Z 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-04-23T03:20:14.833012Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=115 seq=5 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.833049Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=91 slot_index=152 delay_ms=150000 [INFO] [stdout] 2026-04-23T03:20:14.833042Z 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: 236, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.833071Z 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-04-23T03:20:14.833123Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=92 slot_index=252 delay_ms=151000 [INFO] [stdout] 2026-04-23T03:20:14.833144Z 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-04-23T03:20:14.833196Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=93 slot_index=352 delay_ms=152000 [INFO] [stdout] 2026-04-23T03:20:14.833226Z 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-04-23T03:20:14.833282Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=94 slot_index=452 delay_ms=153000 [INFO] [stdout] 2026-04-23T03:20:14.833303Z 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-04-23T03:20:14.833356Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=95 slot_index=40 delay_ms=154000 [INFO] [stdout] 2026-04-23T03:20:14.833083Z 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-04-23T03:20:14.833376Z 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-04-23T03:20:14.833429Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=96 slot_index=140 delay_ms=155000 [INFO] [stdout] 2026-04-23T03:20:14.833450Z 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-04-23T03:20:14.833508Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=97 slot_index=240 delay_ms=156000 [INFO] [stdout] 2026-04-23T03:20:14.833529Z 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-04-23T03:20:14.833604Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=98 slot_index=340 delay_ms=157000 [INFO] [stdout] 2026-04-23T03:20:14.833628Z 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-04-23T03:20:14.833391Z TRACE kestrel_protocol::core::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-04-23T03:20:14.833723Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=115 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.833760Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=115 seq=6 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.833803Z 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: 237, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.833851Z 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-04-23T03:20:14.833684Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=99 slot_index=440 delay_ms=158000 [INFO] [stdout] 2026-04-23T03:20:14.834306Z 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-04-23T03:20:14.834405Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=100 slot_index=28 delay_ms=159000 [INFO] [stdout] 2026-04-23T03:20:14.834158Z TRACE kestrel_protocol::core::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-04-23T03:20:14.827556Z 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-04-23T03:20:14.825429Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=33 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.850445Z 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-04-23T03:20:14.829002Z 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-04-23T03:20:14.850652Z 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-04-23T03:20:14.850692Z 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-04-23T03:20:14.850715Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=120 peer_cid=20 state=Established [INFO] [stdout] 2026-04-23T03:20:14.850732Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=120 state=Established [INFO] [stdout] 2026-04-23T03:20:14.850750Z 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: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.850774Z 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: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.850797Z 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-04-23T03:20:14.850817Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=120 [INFO] [stdout] 2026-04-23T03:20:14.850837Z 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-04-23T03:20:14.850880Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.850900Z 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-04-23T03:20:14.850920Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=247 srtt_ms=247 rttvar_ms=123 rto_ms=743 [INFO] [stdout] 2026-04-23T03:20:14.850937Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.850950Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.850991Z 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: 0, 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-04-23T03:20:14.851286Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.851588Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=120 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.851615Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=120 seq=0 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.851664Z 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: 250, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.851725Z 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: 0, 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-04-23T03:20:14.852013Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.852299Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=120 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.852322Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=120 seq=1 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.852354Z 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: 250, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.852403Z 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: 0, 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-04-23T03:20:14.852703Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.852981Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=120 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.853002Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=120 seq=2 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.853040Z 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: 251, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.853089Z 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: 0, 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-04-23T03:20:14.834610Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=58 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.853628Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=58 entry_id=58 connection_id=801 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.853702Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=59 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.853730Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=59 entry_id=59 connection_id=901 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.853775Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=60 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.853798Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=60 entry_id=60 connection_id=1001 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.853828Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=61 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.853848Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=61 entry_id=61 connection_id=1101 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.853887Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=62 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.853909Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=62 entry_id=62 connection_id=1201 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.853946Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=63 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.853967Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=63 entry_id=63 connection_id=1301 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.854004Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=64 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.854024Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=64 entry_id=64 connection_id=1401 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.854069Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=65 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.854091Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=65 entry_id=65 connection_id=1501 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.854134Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=66 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.854156Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=66 entry_id=66 connection_id=1601 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.854191Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=67 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.854222Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=67 entry_id=67 connection_id=1701 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.854252Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=68 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.854272Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=68 entry_id=68 connection_id=1801 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.854299Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=69 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.854319Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=69 entry_id=69 connection_id=1901 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.854358Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=70 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.854379Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=70 entry_id=70 connection_id=2001 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.854414Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=71 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.854435Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=71 entry_id=71 connection_id=2101 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.854475Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=72 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.854496Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=72 entry_id=72 connection_id=2201 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.854535Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=73 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.854560Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=73 entry_id=73 connection_id=2301 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.854624Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=74 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.854648Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=74 entry_id=74 connection_id=2401 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.854684Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=75 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.854706Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=75 entry_id=75 connection_id=2501 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.854740Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=76 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.854760Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=76 entry_id=76 connection_id=2601 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.854795Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=77 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.854816Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=77 entry_id=77 connection_id=2701 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.854845Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=78 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.854864Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=78 entry_id=78 connection_id=2801 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.854900Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=79 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.854922Z 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-04-23T03:20:14.854950Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=80 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.854969Z 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-04-23T03:20:14.855010Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=81 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.855031Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=81 entry_id=81 connection_id=2901 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.855068Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=82 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.855089Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=82 entry_id=82 connection_id=3301 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.855117Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=83 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.855137Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=83 entry_id=83 connection_id=3001 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.855176Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=84 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.855209Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=84 entry_id=84 connection_id=3401 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.855252Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=85 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.855274Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=85 entry_id=85 connection_id=3501 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.855310Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=86 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.855330Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=86 entry_id=86 connection_id=3601 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.855363Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=87 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.855384Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=87 entry_id=87 connection_id=3701 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.855424Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=88 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.855449Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=88 entry_id=88 connection_id=3801 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.855489Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=89 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.855512Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=89 entry_id=89 connection_id=3901 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.855548Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=90 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.855592Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=90 entry_id=90 connection_id=4001 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.855637Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=91 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.855659Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=91 entry_id=91 connection_id=4101 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.855695Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=92 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.855715Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=92 entry_id=92 connection_id=4201 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.855753Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=93 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.855773Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=93 entry_id=93 connection_id=4301 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.855809Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=94 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.855831Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=94 entry_id=94 connection_id=4401 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.855862Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=95 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.855882Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=95 entry_id=95 connection_id=4501 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.855921Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=96 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.855942Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=96 entry_id=96 connection_id=4601 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.855981Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=97 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.856002Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=97 entry_id=97 connection_id=4801 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.856037Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=98 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.856058Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=98 entry_id=98 connection_id=4701 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.856093Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=99 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.856113Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=99 entry_id=99 connection_id=4901 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.856141Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=100 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.856159Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=100 entry_id=100 connection_id=101 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.856191Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=101 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.856228Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=101 entry_id=101 connection_id=302 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.856260Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=102 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.856278Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=102 entry_id=102 connection_id=202 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.856310Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=103 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.856330Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=103 entry_id=103 connection_id=2 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.856354Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=104 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.856371Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=104 entry_id=104 connection_id=502 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.856394Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=105 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.856412Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=105 entry_id=105 connection_id=402 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.856442Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=106 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.856463Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=106 entry_id=106 connection_id=602 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.856540Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=107 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.856589Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=107 entry_id=107 connection_id=603 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.856871Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=108 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.856913Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=108 entry_id=108 connection_id=604 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.856949Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=109 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.856969Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=109 entry_id=109 connection_id=702 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.856977Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.856997Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=110 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.857009Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.857017Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=110 entry_id=110 connection_id=802 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.857045Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=111 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.857066Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=111 entry_id=111 connection_id=902 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.857105Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=112 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.857126Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=112 entry_id=112 connection_id=1002 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.857228Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=113 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.857347Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=113 entry_id=113 connection_id=1102 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.857410Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=114 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.857447Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=114 entry_id=114 connection_id=1202 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.857494Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=115 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.857529Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=115 entry_id=115 connection_id=1302 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.857766Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=34 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.857814Z 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-04-23T03:20:14.857952Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=35 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.857994Z 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-04-23T03:20:14.858119Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=36 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.858168Z 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-04-23T03:20:14.830328Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.858297Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=122 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.858334Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=122 seq=6 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.858385Z 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: 254, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.858446Z 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: 0, 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-04-23T03:20:14.858751Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.859032Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=122 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.859056Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=122 seq=7 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.859100Z 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: 255, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.859152Z 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: 0, 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-04-23T03:20:14.859325Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.859490Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=122 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-04-23T03:20:14.859512Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=122 seq=8 payload_len=640 [INFO] [stdout] 2026-04-23T03:20:14.859549Z 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: 256, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.859607Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=122 [INFO] [stdout] 2026-04-23T03:20:14.859632Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=122 count=9 [INFO] [stdout] 2026-04-23T03:20:14.859670Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=122 state=Established [INFO] [stdout] 2026-04-23T03:20:14.859761Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=22 [INFO] [stdout] 2026-04-23T03:20:14.859784Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=22 state=Established [INFO] [stdout] 2026-04-23T03:20:14.859813Z 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-04-23T03:20:14.859835Z 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-04-23T03:20:14.859852Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=123 peer_cid=23 state=Established [INFO] [stdout] 2026-04-23T03:20:14.859866Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=123 state=Established [INFO] [stdout] 2026-04-23T03:20:14.859882Z 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: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.859905Z 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: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.859926Z 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-04-23T03:20:14.859947Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=123 [INFO] [stdout] 2026-04-23T03:20:14.859966Z 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-04-23T03:20:14.860007Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.860027Z 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-04-23T03:20:14.860047Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=253 srtt_ms=253 rttvar_ms=126 rto_ms=759 [INFO] [stdout] 2026-04-23T03:20:14.860066Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.860078Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.860101Z 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: 0, 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-04-23T03:20:14.860410Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.860450Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.860389Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.860688Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=123 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.860711Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=123 seq=0 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.860753Z 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: 255, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.860805Z 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: 0, 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-04-23T03:20:14.861087Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.861375Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=123 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.861398Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=123 seq=1 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.861440Z 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: 256, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.861662Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=37 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.861711Z 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-04-23T03:20:14.861877Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=59 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.861922Z 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-04-23T03:20:14.862017Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=60 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.862056Z 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-04-23T03:20:14.862128Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=61 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.862164Z 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-04-23T03:20:14.862261Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=62 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.862300Z 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-04-23T03:20:14.862373Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=63 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.862409Z 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-04-23T03:20:14.862479Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=64 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.862514Z 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-04-23T03:20:14.862620Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=65 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.862657Z 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-04-23T03:20:14.862731Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=66 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.862765Z 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-04-23T03:20:14.862840Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=67 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.862875Z 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-04-23T03:20:14.862950Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=68 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.862983Z 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-04-23T03:20:14.863056Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=69 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.863089Z 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-04-23T03:20:14.863158Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=70 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.863194Z 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-04-23T03:20:14.863282Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=71 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.863318Z 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-04-23T03:20:14.863400Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=72 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.863436Z 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-04-23T03:20:14.863514Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=73 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.863548Z 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-04-23T03:20:14.863652Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=74 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.863689Z 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-04-23T03:20:14.863762Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=75 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.863795Z 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-04-23T03:20:14.863896Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=76 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.863937Z 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-04-23T03:20:14.864015Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=77 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.864049Z 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-04-23T03:20:14.864123Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=78 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.864146Z 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-04-23T03:20:14.864224Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=79 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.864251Z 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-04-23T03:20:14.864326Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=80 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.864352Z 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] 2026-04-23T03:20:14.864425Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=81 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.864452Z 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-04-23T03:20:14.864523Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=82 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.864633Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=38 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.864663Z 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-04-23T03:20:14.832392Z 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: 1, 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-04-23T03:20:14.865048Z TRACE kestrel_protocol::timer::wheel::core: Batch added timers to timing wheel batch_size=10000 [INFO] [stdout] 2026-04-23T03:20:14.864791Z TRACE kestrel_protocol::core::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: 1, 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-04-23T03:20:14.865107Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=116 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.865131Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=116 seq=2 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.865170Z 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: 267, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.865234Z 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: 1, 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] test timer::task::tests::tests::test_global_timer_task_lifecycle ... ok [INFO] [stdout] 2026-04-23T03:20:14.865767Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.865540Z TRACE kestrel_protocol::core::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: 1, 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-04-23T03:20:14.865865Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=116 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.865900Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=116 seq=3 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.865918Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.865949Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.865942Z 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: 268, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.865990Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=12 delay_ms=120 [INFO] [stdout] 2026-04-23T03:20:14.866028Z 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-04-23T03:20:14.866106Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=17 delay_ms=170 [INFO] [stdout] 2026-04-23T03:20:14.866140Z 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-04-23T03:20:14.866223Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=3 slot_index=22 delay_ms=220 [INFO] [stdout] 2026-04-23T03:20:14.866255Z 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-04-23T03:20:14.865991Z 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: 1, 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-04-23T03:20:14.866324Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=4 slot_index=27 delay_ms=270 [INFO] [stdout] 2026-04-23T03:20:14.866361Z 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-04-23T03:20:14.838957Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2846786072 [INFO] [stdout] 2026-04-23T03:20:14.866485Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2846786072 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.866310Z TRACE kestrel_protocol::core::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: 1, 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-04-23T03:20:14.866637Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=116 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.866660Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=116 seq=4 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.866659Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1367191249 [INFO] [stdout] 2026-04-23T03:20:14.866688Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1367191249 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.866689Z 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: 269, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.841059Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1391485104 [INFO] [stdout] 2026-04-23T03:20:14.866765Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1391485104 state=FinWait [INFO] [stdout] 2026-04-23T03:20:14.866852Z  INFO kestrel_protocol::socket::tests::rebind: ⚠️ 测试跳过 - rebind后现有连接预期会断开,因为传输层已切换到新地址 [INFO] [stdout] 2026-04-23T03:20:14.866919Z TRACE mio::poll: registering event source with poller: token=Token(128929281344128), interests=READABLE | WRITABLE [INFO] [stdout] 2026-04-23T03:20:14.866728Z 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: 1, 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-04-23T03:20:14.867184Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.867225Z DEBUG kestrel_protocol::socket::transport::manager: 创建传输管理器 | Creating transport manager [INFO] [stdout] 2026-04-23T03:20:14.867235Z DEBUG kestrel_protocol::socket::event_loop::routing: 创建帧路由管理器 | Creating frame router manager [INFO] [stdout] 2026-04-23T03:20:14.867251Z  INFO kestrel_protocol::socket::handle: TransportReliableUdpSocket actor created and running addr=Some(127.0.0.1:60468) [INFO] [stdout] 2026-04-23T03:20:14.867032Z TRACE kestrel_protocol::core::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: 1, 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-04-23T03:20:14.867354Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=116 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.867371Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport send actor started [INFO] [stdout] 2026-04-23T03:20:14.867376Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=116 seq=5 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.867395Z DEBUG kestrel_protocol::socket::transport::udp: UDP transport receiver task started [INFO] [stdout] 2026-04-23T03:20:14.867404Z 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: 269, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.867444Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.867511Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Generated unique connection ID cid=372553714 [INFO] [stdout] 2026-04-23T03:20:14.867559Z  INFO kestrel_protocol::core::endpoint::lifecycle::manager: Connection lifecycle initialized cid=372553714 remote_addr=127.0.0.1:33254 [INFO] [stdout] 2026-04-23T03:20:14.867646Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.867680Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=1 entry_id=1 connection_id=372553714 delay_ms=5000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.867441Z 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: 1, 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-04-23T03:20:14.867745Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=440 delay_ms=30000 [INFO] [stdout] 2026-04-23T03:20:14.867767Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=372553714 delay_ms=30000 event_type=ConnectionTimeout [INFO] [stdout] 2026-04-23T03:20:14.867824Z DEBUG kestrel_protocol::socket::event_loop::routing: 注册新连接 | Registering new connection cid=372553714 addr=127.0.0.1:33254 [INFO] [stdout] 2026-04-23T03:20:14.867870Z DEBUG kestrel_protocol::socket::event_loop::session_coordinator: Connection registered to frame router cid=372553714 addr=127.0.0.1:33254 [INFO] [stdout] 2026-04-23T03:20:14.867927Z  INFO kestrel_protocol::socket::event_loop::session_coordinator: Spawning new endpoint task for outbound connection addr=127.0.0.1:33254 cid=372553714 [INFO] [stdout] 2026-04-23T03:20:14.867967Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=372553714 remote_addr=127.0.0.1:33254 frame_count=1 first_frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 372553714 } } [INFO] [stdout] 2026-04-23T03:20:14.868006Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=372553714 state=Connecting [INFO] [stdout] 2026-04-23T03:20:14.867771Z TRACE kestrel_protocol::core::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: 1, 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-04-23T03:20:14.868093Z  INFO kestrel_protocol::socket::tests::rebind: ✅ rebind后可以建立新连接 [INFO] [stdout] 2026-04-23T03:20:14.868090Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=116 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.868114Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=116 seq=6 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.845078Z 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-04-23T03:20:14.868143Z 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: 270, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.868229Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=3616125308 [INFO] [stdout] 2026-04-23T03:20:14.868051Z DEBUG kestrel_protocol::socket::transport::sender: transport_sender_task sending frame batch addr=127.0.0.1:33254 frame_count=1 [INFO] [stdout] 2026-04-23T03:20:14.850337Z 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-04-23T03:20:14.868262Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-04-23T03:20:14.870675Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=372553714 [INFO] [stdout] 2026-04-23T03:20:14.870788Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-04-23T03:20:14.870813Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-04-23T03:20:14.870861Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=1391485104 [INFO] [stdout] 2026-04-23T03:20:14.868389Z TRACE mio::poll: deregistering event source from poller [INFO] [stdout] 2026-04-23T03:20:14.841306Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:56881 frame_count=1 bytes=27 [INFO] [stdout] 2026-04-23T03:20:14.868193Z 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: 1, 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-04-23T03:20:14.868491Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=115 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.871096Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=115 seq=7 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.871142Z 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: 274, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.871203Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:36316 frame_count=1 bytes=27 [INFO] [stdout] 2026-04-23T03:20:14.871186Z 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-04-23T03:20:14.871486Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=101 slot_index=128 delay_ms=160000 [INFO] [stdout] 2026-04-23T03:20:14.871519Z 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-04-23T03:20:14.871381Z TRACE kestrel_protocol::core::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-04-23T03:20:14.871555Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=115 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-04-23T03:20:14.871596Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=115 seq=8 payload_len=640 [INFO] [stdout] 2026-04-23T03:20:14.871609Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=102 slot_index=228 delay_ms=161000 [INFO] [stdout] 2026-04-23T03:20:14.871625Z 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: 274, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.871635Z 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-04-23T03:20:14.871661Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=115 [INFO] [stdout] 2026-04-23T03:20:14.871684Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=115 count=9 [INFO] [stdout] 2026-04-23T03:20:14.871703Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=103 slot_index=328 delay_ms=162000 [INFO] [stdout] 2026-04-23T03:20:14.871719Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=115 state=Established [INFO] [stdout] 2026-04-23T03:20:14.871728Z 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-04-23T03:20:14.871795Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=104 slot_index=428 delay_ms=163000 [INFO] [stdout] 2026-04-23T03:20:14.871818Z 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-04-23T03:20:14.871883Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=105 slot_index=16 delay_ms=164000 [INFO] [stdout] 2026-04-23T03:20:14.871907Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=48 [INFO] [stdout] 2026-04-23T03:20:14.853361Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.871952Z ERROR kestrel_protocol::socket::transport::sender: Failed to send frame batch: Internal channel is broken [INFO] [stdout] 2026-04-23T03:20:14.871954Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=120 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.871974Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=120 seq=3 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.872003Z 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: 270, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] test socket::tests::rebind::test_rebind_with_existing_connections ... ok [INFO] [stdout] 2026-04-23T03:20:14.872039Z 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: 0, 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-04-23T03:20:14.872329Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.872617Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=120 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.872637Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=120 seq=4 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.872671Z 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: 271, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.872851Z 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-04-23T03:20:14.872710Z 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: 0, 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-04-23T03:20:14.872977Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.873256Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=120 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.873277Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=120 seq=5 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.873315Z 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: 271, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.873359Z 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: 0, 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-04-23T03:20:14.873647Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.873918Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=120 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.873945Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=120 seq=6 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.873979Z 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: 272, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.874024Z 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: 0, 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-04-23T03:20:14.874301Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.868559Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=39 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.874611Z 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-04-23T03:20:14.874759Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=40 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.874802Z 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-04-23T03:20:14.874924Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=41 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.874966Z 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-04-23T03:20:14.868715Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=116 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.875088Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=116 entry_id=116 connection_id=1402 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.875161Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=117 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.875196Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=117 entry_id=117 connection_id=1502 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.875253Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=118 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.875285Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=118 entry_id=118 connection_id=1602 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.875332Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=119 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.875363Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=119 entry_id=119 connection_id=1702 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.875406Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=120 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.875437Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=120 entry_id=120 connection_id=1802 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.875487Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=121 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.875519Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=121 entry_id=121 connection_id=1902 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.875583Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=122 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.875615Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=122 entry_id=122 connection_id=2002 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.875666Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=123 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.875697Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=123 entry_id=123 connection_id=2102 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.875743Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=124 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.875773Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=124 entry_id=124 connection_id=2202 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.875813Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=125 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.875841Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=125 entry_id=125 connection_id=2302 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.875878Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=126 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.875904Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=126 entry_id=126 connection_id=2402 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.875952Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=127 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.875983Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=127 entry_id=127 connection_id=2502 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.876025Z  INFO kestrel_protocol::core::tests::retransmission: --- RTO Recovery Test Passed --- [INFO] [stdout] 2026-04-23T03:20:14.876223Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=42 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.876253Z 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-04-23T03:20:14.871906Z 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-04-23T03:20:14.876364Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=106 slot_index=116 delay_ms=165000 [INFO] [stdout] 2026-04-23T03:20:14.876369Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=43 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.876396Z 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-04-23T03:20:14.876399Z 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-04-23T03:20:14.876475Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=107 slot_index=216 delay_ms=166000 [INFO] [stdout] 2026-04-23T03:20:14.876502Z 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-04-23T03:20:14.876505Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.876529Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.876542Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.876554Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-04-23T03:20:14.876584Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-04-23T03:20:14.876598Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-04-23T03:20:14.876608Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-04-23T03:20:14.876604Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=108 slot_index=316 delay_ms=167000 [INFO] [stdout] 2026-04-23T03:20:14.876619Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-04-23T03:20:14.876633Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-04-23T03:20:14.876634Z 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-04-23T03:20:14.876715Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=109 slot_index=416 delay_ms=168000 [INFO] [stdout] 2026-04-23T03:20:14.876650Z 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: 194, sequence_number: 0, recv_next_sequence: 1 }, payload: b"////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" } [INFO] [stdout] 2026-04-23T03:20:14.876739Z 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-04-23T03:20:14.876813Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=110 slot_index=4 delay_ms=169000 [INFO] [stdout] 2026-04-23T03:20:14.876839Z 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-04-23T03:20:14.876769Z 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: 194, sequence_number: 1, recv_next_sequence: 1 }, payload: b"////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" } [INFO] [stdout] 2026-04-23T03:20:14.876915Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=111 slot_index=104 delay_ms=170000 [INFO] [stdout] 2026-04-23T03:20:14.876944Z 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-04-23T03:20:14.876879Z 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: 194, sequence_number: 2, recv_next_sequence: 1 }, payload: b"////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" } [INFO] [stdout] 2026-04-23T03:20:14.877022Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=112 slot_index=204 delay_ms=171000 [INFO] [stdout] 2026-04-23T03:20:14.877049Z 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-04-23T03:20:14.876987Z 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: 194, sequence_number: 3, recv_next_sequence: 1 }, payload: b"////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" } [INFO] [stdout] 2026-04-23T03:20:14.877180Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=113 slot_index=304 delay_ms=172000 [INFO] [stdout] 2026-04-23T03:20:14.877101Z 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: 194, sequence_number: 4, recv_next_sequence: 1 }, payload: b"////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" } [INFO] [stdout] 2026-04-23T03:20:14.877302Z 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-04-23T03:20:14.877225Z 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: 194, sequence_number: 5, recv_next_sequence: 1 }, payload: b"////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" } [INFO] [stdout] 2026-04-23T03:20:14.877387Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=114 slot_index=404 delay_ms=173000 [INFO] [stdout] 2026-04-23T03:20:14.877414Z 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-04-23T03:20:14.877337Z 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: 194, sequence_number: 6, recv_next_sequence: 1 }, payload: b"////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" } [INFO] [stdout] 2026-04-23T03:20:14.877493Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=115 slot_index=504 delay_ms=174000 [INFO] [stdout] 2026-04-23T03:20:14.877520Z 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-04-23T03:20:14.877452Z 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: 194, sequence_number: 7, recv_next_sequence: 1 }, payload: b"////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" } [INFO] [stdout] 2026-04-23T03:20:14.877614Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=116 slot_index=92 delay_ms=175000 [INFO] [stdout] 2026-04-23T03:20:14.877631Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=44 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.877639Z 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-04-23T03:20:14.877663Z 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-04-23T03:20:14.877716Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=117 slot_index=192 delay_ms=176000 [INFO] [stdout] 2026-04-23T03:20:14.877742Z 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-04-23T03:20:14.877781Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=45 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.877811Z 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-04-23T03:20:14.877818Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=118 slot_index=292 delay_ms=177000 [INFO] [stdout] 2026-04-23T03:20:14.877846Z 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-04-23T03:20:14.861486Z 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: 0, 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-04-23T03:20:14.877922Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=119 slot_index=392 delay_ms=178000 [INFO] [stdout] 2026-04-23T03:20:14.877949Z 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-04-23T03:20:14.878025Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=120 slot_index=492 delay_ms=179000 [INFO] [stdout] 2026-04-23T03:20:14.878051Z 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-04-23T03:20:14.878120Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=121 slot_index=80 delay_ms=180000 [INFO] [stdout] 2026-04-23T03:20:14.878147Z 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-04-23T03:20:14.877912Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.878183Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=123 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.878216Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=123 seq=2 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.878232Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=122 slot_index=180 delay_ms=181000 [INFO] [stdout] 2026-04-23T03:20:14.878245Z 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: 272, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.878259Z 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-04-23T03:20:14.878335Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=123 slot_index=280 delay_ms=182000 [INFO] [stdout] 2026-04-23T03:20:14.878362Z 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-04-23T03:20:14.878439Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=124 slot_index=380 delay_ms=183000 [INFO] [stdout] 2026-04-23T03:20:14.878466Z 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-04-23T03:20:14.878283Z 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: 0, 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-04-23T03:20:14.878544Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=125 slot_index=480 delay_ms=184000 [INFO] [stdout] 2026-04-23T03:20:14.878594Z 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-04-23T03:20:14.878672Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=126 slot_index=68 delay_ms=185000 [INFO] [stdout] 2026-04-23T03:20:14.878699Z 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-04-23T03:20:14.878778Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=127 slot_index=168 delay_ms=186000 [INFO] [stdout] 2026-04-23T03:20:14.878547Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.878805Z 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-04-23T03:20:14.878832Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=123 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.878853Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=123 seq=3 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.878885Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=128 slot_index=268 delay_ms=187000 [INFO] [stdout] 2026-04-23T03:20:14.878882Z 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: 273, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.878912Z 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-04-23T03:20:14.878982Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=129 slot_index=368 delay_ms=188000 [INFO] [stdout] 2026-04-23T03:20:14.879009Z 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-04-23T03:20:14.879085Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=130 slot_index=468 delay_ms=189000 [INFO] [stdout] 2026-04-23T03:20:14.879112Z 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-04-23T03:20:14.878920Z 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: 0, 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-04-23T03:20:14.879197Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=131 slot_index=56 delay_ms=190000 [INFO] [stdout] 2026-04-23T03:20:14.879844Z 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-04-23T03:20:14.879952Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=132 slot_index=156 delay_ms=191000 [INFO] [stdout] 2026-04-23T03:20:14.879981Z 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-04-23T03:20:14.879754Z TRACE kestrel_protocol::core::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: 1, 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-04-23T03:20:14.880022Z 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-04-23T03:20:14.880041Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=116 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.880055Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=133 slot_index=256 delay_ms=192000 [INFO] [stdout] 2026-04-23T03:20:14.880062Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=116 seq=7 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.880082Z 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-04-23T03:20:14.880094Z 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: 282, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.880157Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=134 slot_index=356 delay_ms=193000 [INFO] [stdout] 2026-04-23T03:20:14.880184Z 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-04-23T03:20:14.880273Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=135 slot_index=456 delay_ms=194000 [INFO] [stdout] 2026-04-23T03:20:14.880132Z 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: 1, 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-04-23T03:20:14.880301Z 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-04-23T03:20:14.880377Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=136 slot_index=44 delay_ms=195000 [INFO] [stdout] 2026-04-23T03:20:14.880403Z 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-04-23T03:20:14.880308Z TRACE kestrel_protocol::core::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: 1, 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-04-23T03:20:14.880477Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=116 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-04-23T03:20:14.880481Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=137 slot_index=144 delay_ms=196000 [INFO] [stdout] 2026-04-23T03:20:14.880496Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=116 seq=8 payload_len=640 [INFO] [stdout] 2026-04-23T03:20:14.880509Z 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-04-23T03:20:14.880523Z 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: 282, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.879189Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.864558Z 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-04-23T03:20:14.880605Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=138 slot_index=244 delay_ms=197000 [INFO] [stdout] 2026-04-23T03:20:14.880634Z 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-04-23T03:20:14.880690Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=83 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.880709Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=139 slot_index=344 delay_ms=198000 [INFO] [stdout] 2026-04-23T03:20:14.880721Z 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-04-23T03:20:14.880736Z 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-04-23T03:20:14.880798Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=84 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.880810Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=140 slot_index=444 delay_ms=199000 [INFO] [stdout] 2026-04-23T03:20:14.880825Z 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-04-23T03:20:14.880838Z 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-04-23T03:20:14.880899Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=85 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.880913Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=141 slot_index=32 delay_ms=200000 [INFO] [stdout] 2026-04-23T03:20:14.880926Z 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-04-23T03:20:14.880939Z 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-04-23T03:20:14.880995Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=86 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.881015Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=142 slot_index=132 delay_ms=201000 [INFO] [stdout] 2026-04-23T03:20:14.881024Z 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-04-23T03:20:14.881044Z 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-04-23T03:20:14.881091Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=87 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.881117Z 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-04-23T03:20:14.881120Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=143 slot_index=232 delay_ms=202000 [INFO] [stdout] 2026-04-23T03:20:14.881147Z 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-04-23T03:20:14.881185Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=88 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.881225Z 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-04-23T03:20:14.881236Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=144 slot_index=332 delay_ms=203000 [INFO] [stdout] 2026-04-23T03:20:14.881263Z 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-04-23T03:20:14.881302Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=89 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.881329Z 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-04-23T03:20:14.881342Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=145 slot_index=432 delay_ms=204000 [INFO] [stdout] 2026-04-23T03:20:14.881372Z 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-04-23T03:20:14.881403Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=90 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.881430Z 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-04-23T03:20:14.881453Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=146 slot_index=20 delay_ms=205000 [INFO] [stdout] 2026-04-23T03:20:14.881481Z 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-04-23T03:20:14.881504Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=91 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.881530Z 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-04-23T03:20:14.881557Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=147 slot_index=120 delay_ms=206000 [INFO] [stdout] 2026-04-23T03:20:14.881603Z 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-04-23T03:20:14.881623Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=92 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.881650Z 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-04-23T03:20:14.881681Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=148 slot_index=220 delay_ms=207000 [INFO] [stdout] 2026-04-23T03:20:14.881707Z 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-04-23T03:20:14.881720Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=93 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.881747Z 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-04-23T03:20:14.881785Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=149 slot_index=320 delay_ms=208000 [INFO] [stdout] 2026-04-23T03:20:14.881814Z 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-04-23T03:20:14.881821Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=94 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.881848Z 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-04-23T03:20:14.881887Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=150 slot_index=420 delay_ms=209000 [INFO] [stdout] 2026-04-23T03:20:14.881914Z 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-04-23T03:20:14.881920Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=95 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.881947Z 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-04-23T03:20:14.881983Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=151 slot_index=8 delay_ms=210000 [INFO] [stdout] 2026-04-23T03:20:14.882006Z 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-04-23T03:20:14.882016Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=96 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.882042Z 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-04-23T03:20:14.882076Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=152 slot_index=108 delay_ms=211000 [INFO] [stdout] 2026-04-23T03:20:14.882102Z 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-04-23T03:20:14.882114Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=97 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.882142Z 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-04-23T03:20:14.882169Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=153 slot_index=208 delay_ms=212000 [INFO] [stdout] 2026-04-23T03:20:14.882203Z 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-04-23T03:20:14.882232Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=98 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.882259Z 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-04-23T03:20:14.882271Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=154 slot_index=308 delay_ms=213000 [INFO] [stdout] 2026-04-23T03:20:14.882295Z 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-04-23T03:20:14.882333Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=99 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.882358Z 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-04-23T03:20:14.882367Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=155 slot_index=408 delay_ms=214000 [INFO] [stdout] 2026-04-23T03:20:14.882392Z 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-04-23T03:20:14.882425Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=100 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.882449Z 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-04-23T03:20:14.882461Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=156 slot_index=508 delay_ms=215000 [INFO] [stdout] 2026-04-23T03:20:14.882487Z 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-04-23T03:20:14.882517Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=101 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.882546Z 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-04-23T03:20:14.882555Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=157 slot_index=96 delay_ms=216000 [INFO] [stdout] 2026-04-23T03:20:14.882601Z 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-04-23T03:20:14.882644Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=102 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.882672Z 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-04-23T03:20:14.882674Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=158 slot_index=196 delay_ms=217000 [INFO] [stdout] 2026-04-23T03:20:14.882699Z 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-04-23T03:20:14.882744Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=103 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.882767Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=159 slot_index=296 delay_ms=218000 [INFO] [stdout] 2026-04-23T03:20:14.882771Z 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-04-23T03:20:14.882790Z 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-04-23T03:20:14.882843Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=104 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.882855Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=160 slot_index=396 delay_ms=219000 [INFO] [stdout] 2026-04-23T03:20:14.882870Z 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-04-23T03:20:14.882880Z 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-04-23T03:20:14.882944Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=105 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.882951Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=161 slot_index=496 delay_ms=220000 [INFO] [stdout] 2026-04-23T03:20:14.882971Z 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-04-23T03:20:14.882974Z 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-04-23T03:20:14.883042Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=162 slot_index=84 delay_ms=221000 [INFO] [stdout] 2026-04-23T03:20:14.883047Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=106 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.883065Z 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-04-23T03:20:14.883072Z 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-04-23T03:20:14.883135Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=163 slot_index=184 delay_ms=222000 [INFO] [stdout] 2026-04-23T03:20:14.883145Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=107 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.883159Z 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-04-23T03:20:14.883169Z 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-04-23T03:20:14.883243Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=164 slot_index=284 delay_ms=223000 [INFO] [stdout] 2026-04-23T03:20:14.883247Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=108 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.883267Z 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-04-23T03:20:14.883271Z 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-04-23T03:20:14.883333Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=165 slot_index=384 delay_ms=224000 [INFO] [stdout] 2026-04-23T03:20:14.883341Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=109 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.883358Z 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-04-23T03:20:14.883368Z 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-04-23T03:20:14.883425Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=166 slot_index=484 delay_ms=225000 [INFO] [stdout] 2026-04-23T03:20:14.883441Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=110 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.883453Z 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-04-23T03:20:14.883469Z 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-04-23T03:20:14.883526Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=167 slot_index=72 delay_ms=226000 [INFO] [stdout] 2026-04-23T03:20:14.883540Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=111 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.883586Z 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-04-23T03:20:14.883666Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=112 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.879550Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=46 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.883804Z 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-04-23T03:20:14.883946Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=47 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.883977Z 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-04-23T03:20:14.884091Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=48 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.884122Z 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-04-23T03:20:14.884246Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=49 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.884276Z 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-04-23T03:20:14.884372Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=50 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.884402Z 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-04-23T03:20:14.884477Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=51 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.884514Z 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-04-23T03:20:14.884613Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=52 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.884641Z 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-04-23T03:20:14.884703Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=53 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.884728Z 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-04-23T03:20:14.884787Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=54 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.884810Z 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-04-23T03:20:14.884881Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=55 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.884909Z 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-04-23T03:20:14.884982Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=56 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.885009Z 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-04-23T03:20:14.885104Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=57 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.885181Z 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-04-23T03:20:14.883552Z 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-04-23T03:20:14.879605Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=120 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.885259Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=120 seq=7 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.885301Z 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: 283, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.885314Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=168 slot_index=172 delay_ms=227000 [INFO] [stdout] 2026-04-23T03:20:14.885343Z 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-04-23T03:20:14.885416Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=169 slot_index=272 delay_ms=228000 [INFO] [stdout] 2026-04-23T03:20:14.885442Z 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-04-23T03:20:14.885344Z 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: 0, 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-04-23T03:20:14.885514Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=170 slot_index=372 delay_ms=229000 [INFO] [stdout] 2026-04-23T03:20:14.885539Z 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-04-23T03:20:14.885637Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=171 slot_index=472 delay_ms=230000 [INFO] [stdout] 2026-04-23T03:20:14.885501Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.885664Z 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-04-23T03:20:14.885677Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=120 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-04-23T03:20:14.885697Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=120 seq=8 payload_len=640 [INFO] [stdout] 2026-04-23T03:20:14.885727Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=172 slot_index=60 delay_ms=231000 [INFO] [stdout] 2026-04-23T03:20:14.885728Z 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: 284, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.885751Z 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-04-23T03:20:14.885763Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=120 [INFO] [stdout] 2026-04-23T03:20:14.885785Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=120 count=9 [INFO] [stdout] 2026-04-23T03:20:14.885815Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=173 slot_index=160 delay_ms=232000 [INFO] [stdout] 2026-04-23T03:20:14.885822Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=120 state=Established [INFO] [stdout] 2026-04-23T03:20:14.885839Z 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-04-23T03:20:14.885899Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=174 slot_index=260 delay_ms=233000 [INFO] [stdout] 2026-04-23T03:20:14.885926Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=20 [INFO] [stdout] test core::tests::retransmission::test_rto_recovery_on_single_packet_loss ... 2026-04-23T03:20:14.885966Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=20 state=Established [INFO] [stdout] 2026-04-23T03:20:14.876028Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=128 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.886010Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=128 entry_id=128 connection_id=2602 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.886024Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=277 slots_to_advance=27 max_advance=27 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.886070Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=276 slots_to_advance=27 max_advance=27 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.886098Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=129 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.886114Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=231 slots_to_advance=23 max_advance=23 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.886128Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=129 entry_id=129 connection_id=2702 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.886160Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=232 slots_to_advance=23 max_advance=23 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.886173Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=130 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.886207Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=130 entry_id=130 connection_id=2802 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.886251Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=131 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.886272Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=131 entry_id=131 connection_id=3102 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.886280Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=12 frame=Ack { header: ShortHeader { command: Ack, connection_id: 12, 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-04-23T03:20:14.886310Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=132 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.886311Z 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: 12, 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-04-23T03:20:14.886331Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=132 entry_id=132 connection_id=3202 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.886334Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=12 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.886355Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=12 [INFO] [stdout] 2026-04-23T03:20:14.886360Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=133 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.886371Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=12 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-04-23T03:20:14.886381Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=133 entry_id=133 connection_id=2902 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.886411Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.886414Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=134 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.886431Z 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-04-23T03:20:14.886435Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=134 entry_id=134 connection_id=3302 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.886452Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=293 srtt_ms=293 rttvar_ms=146 rto_ms=880 [INFO] [stdout] 2026-04-23T03:20:14.886469Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.886468Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=135 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.886481Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.886487Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=135 entry_id=135 connection_id=3002 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.886503Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=12 frame=Ack { header: ShortHeader { command: Ack, connection_id: 12, payload_length: 8, recv_window_size: 254, timestamp: 150, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.886520Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=136 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.886528Z 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: 12, payload_length: 8, recv_window_size: 254, timestamp: 150, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.886540Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=136 entry_id=136 connection_id=3402 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.886550Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=12 recv_next_seq=0 recv_window=254 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.886592Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=12 [INFO] [stdout] 2026-04-23T03:20:14.886590Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=137 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.886607Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=12 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=254 [INFO] [stdout] 2026-04-23T03:20:14.886611Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=137 entry_id=137 connection_id=3502 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.886636Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-04-23T03:20:14.886651Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=138 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.886651Z 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-04-23T03:20:14.886670Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=293 srtt_ms=293 rttvar_ms=110 rto_ms=733 [INFO] [stdout] 2026-04-23T03:20:14.886672Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=138 entry_id=138 connection_id=3602 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.886688Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.886700Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.886709Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=139 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.886719Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=12 frame=Ack { header: ShortHeader { command: Ack, connection_id: 12, payload_length: 8, recv_window_size: 253, timestamp: 151, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.886730Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=139 entry_id=139 connection_id=3702 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.886745Z 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: 12, payload_length: 8, recv_window_size: 253, timestamp: 151, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.886759Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=140 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.886765Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=12 recv_next_seq=0 recv_window=253 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.886783Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=12 [INFO] [stdout] 2026-04-23T03:20:14.886779Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=140 entry_id=140 connection_id=3802 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.886796Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=12 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=253 [INFO] [stdout] 2026-04-23T03:20:14.886806Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=141 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.886821Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-04-23T03:20:14.886825Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=141 entry_id=141 connection_id=3902 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.886835Z 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-04-23T03:20:14.886853Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=293 srtt_ms=293 rttvar_ms=82 rto_ms=624 [INFO] [stdout] 2026-04-23T03:20:14.886859Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=142 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.886868Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-04-23T03:20:14.886881Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-04-23T03:20:14.886879Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=142 entry_id=142 connection_id=4002 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.886898Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=12 frame=Ack { header: ShortHeader { command: Ack, connection_id: 12, payload_length: 8, recv_window_size: 252, timestamp: 154, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.886912Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=143 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.886920Z 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: 12, payload_length: 8, recv_window_size: 252, timestamp: 154, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.886931Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=143 entry_id=143 connection_id=4102 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.886939Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=12 recv_next_seq=0 recv_window=252 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.886957Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=12 [INFO] [stdout] 2026-04-23T03:20:14.886966Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=144 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.886969Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=12 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=252 [INFO] [stdout] 2026-04-23T03:20:14.886994Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] 2026-04-23T03:20:14.886988Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=144 entry_id=144 connection_id=4202 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.887008Z 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-04-23T03:20:14.887025Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=293 srtt_ms=293 rttvar_ms=62 rto_ms=541 [INFO] [stdout] 2026-04-23T03:20:14.887027Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=145 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.883752Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=123 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.887060Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=123 seq=4 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.887060Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=145 entry_id=145 connection_id=4302 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.887097Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=146 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.887090Z 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: 281, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.887121Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=146 entry_id=146 connection_id=4402 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.887156Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=147 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.887173Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=147 entry_id=147 connection_id=4502 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.887212Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=148 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.887231Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=148 entry_id=148 connection_id=4602 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.887267Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=149 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.887285Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=149 entry_id=149 connection_id=4802 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.887313Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=150 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.887330Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=150 entry_id=150 connection_id=4702 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.887356Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=151 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.887372Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=151 entry_id=151 connection_id=4902 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.887131Z 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: 0, 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-04-23T03:20:14.887403Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=152 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.887425Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=152 entry_id=152 connection_id=102 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.887467Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=153 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.887485Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=153 entry_id=153 connection_id=303 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.887518Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=154 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.887535Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=154 entry_id=154 connection_id=203 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.887582Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=155 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.887604Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=155 entry_id=155 connection_id=3 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.887633Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=156 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.887651Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=156 entry_id=156 connection_id=503 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.887416Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.887684Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=157 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.887705Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=157 entry_id=157 connection_id=403 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.887705Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=123 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.887728Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=123 seq=5 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.887736Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=158 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.887754Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=158 entry_id=158 connection_id=903 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.887757Z 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: 282, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.887785Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=159 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.887802Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=159 entry_id=159 connection_id=605 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.887834Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=160 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.887852Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=160 entry_id=160 connection_id=703 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.887881Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=161 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.887899Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=161 entry_id=161 connection_id=803 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.887925Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=162 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.887942Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=162 entry_id=162 connection_id=1103 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.888346Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=163 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.888374Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=163 entry_id=163 connection_id=1003 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.888424Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=164 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.888448Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=164 entry_id=164 connection_id=1203 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.888508Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=165 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.888533Z 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-04-23T03:20:14.888617Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=166 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.888645Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=166 entry_id=166 connection_id=1303 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.888705Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=167 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.888729Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=167 entry_id=167 connection_id=1403 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.888785Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=168 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.888811Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=168 entry_id=168 connection_id=1503 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.888859Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=169 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.888882Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=169 entry_id=169 connection_id=1603 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.888923Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=170 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.888947Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=170 entry_id=170 connection_id=1703 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.889003Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=171 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.889027Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=171 entry_id=171 connection_id=2103 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.889077Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=172 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.889101Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=172 entry_id=172 connection_id=1903 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.889152Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=173 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.889175Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=173 entry_id=173 connection_id=2003 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.889246Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=174 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.889272Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=174 entry_id=174 connection_id=2303 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.889328Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=175 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.889353Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=175 entry_id=175 connection_id=2203 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.889412Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=176 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.889438Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=176 entry_id=176 connection_id=2403 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.889499Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=177 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.889526Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=177 entry_id=177 connection_id=4103 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.889598Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=178 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.889625Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=178 entry_id=178 connection_id=2503 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.889685Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=179 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.889710Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=179 entry_id=179 connection_id=2603 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.889771Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=180 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.889796Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=180 entry_id=180 connection_id=2703 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.889857Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=181 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.889882Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=181 entry_id=181 connection_id=2803 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.889938Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=182 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.889963Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=182 entry_id=182 connection_id=3103 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.890023Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=183 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.890049Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=183 entry_id=183 connection_id=3203 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.890136Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=184 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.890162Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=184 entry_id=184 connection_id=2903 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.890229Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=185 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.890258Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=185 entry_id=185 connection_id=3303 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.890307Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=186 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.890329Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=186 entry_id=186 connection_id=3003 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.890372Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=187 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.890394Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=187 entry_id=187 connection_id=3403 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.890451Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=188 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.890476Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=188 entry_id=188 connection_id=3503 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.890535Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=189 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.890560Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=189 entry_id=189 connection_id=3603 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.890646Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=190 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.890673Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=190 entry_id=190 connection_id=3703 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.890725Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=191 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.890750Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=191 entry_id=191 connection_id=3803 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.890808Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=192 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.890832Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=192 entry_id=192 connection_id=3903 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.890894Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=193 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.890921Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=193 entry_id=193 connection_id=4003 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.890975Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=194 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.891000Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=194 entry_id=194 connection_id=103 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.891059Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=195 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.891084Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=195 entry_id=195 connection_id=4203 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.891134Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=196 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.891157Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=196 entry_id=196 connection_id=4303 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.891220Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=197 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.891245Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=197 entry_id=197 connection_id=4403 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.891300Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=198 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.891324Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=198 entry_id=198 connection_id=4503 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.891379Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=199 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.891403Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=199 entry_id=199 connection_id=4603 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.891464Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=200 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.891494Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=200 entry_id=200 connection_id=4803 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.891545Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=201 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.887796Z 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: 0, 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-04-23T03:20:14.891612Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.880558Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=116 [INFO] [stdout] 2026-04-23T03:20:14.885923Z 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-04-23T03:20:14.892070Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=123 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.892096Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=123 seq=6 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.892130Z 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: 286, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.892176Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=175 slot_index=360 delay_ms=234000 [INFO] [stdout] 2026-04-23T03:20:14.892224Z 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-04-23T03:20:14.892292Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=176 slot_index=460 delay_ms=235000 [INFO] [stdout] 2026-04-23T03:20:14.892316Z 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-04-23T03:20:14.892407Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=177 slot_index=48 delay_ms=236000 [INFO] [stdout] 2026-04-23T03:20:14.892170Z 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: 0, 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-04-23T03:20:14.879641Z 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: 194, sequence_number: 8, recv_next_sequence: 1 }, payload: b"////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" } [INFO] [stdout] 2026-04-23T03:20:14.892491Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=48 state=Established [INFO] [stdout] 2026-04-23T03:20:14.892592Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=50 [INFO] [stdout] 2026-04-23T03:20:14.892626Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.892641Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=1 [INFO] [stdout] 2026-04-23T03:20:14.892653Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=2 [INFO] [stdout] 2026-04-23T03:20:14.892663Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=3 [INFO] [stdout] 2026-04-23T03:20:14.892674Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=4 [INFO] [stdout] 2026-04-23T03:20:14.892684Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=5 [INFO] [stdout] 2026-04-23T03:20:14.892694Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=6 [INFO] [stdout] 2026-04-23T03:20:14.892704Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=7 [INFO] [stdout] 2026-04-23T03:20:14.892714Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=8 [INFO] [stdout] 2026-04-23T03:20:14.892477Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.892766Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=123 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.892788Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=123 seq=7 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.892732Z 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: 207, sequence_number: 0, recv_next_sequence: 1 }, payload: b"111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" } [INFO] [stdout] 2026-04-23T03:20:14.892816Z 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: 287, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.892848Z 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: 207, sequence_number: 1, recv_next_sequence: 1 }, payload: b"111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" } [INFO] [stdout] 2026-04-23T03:20:14.892854Z 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: 0, 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-04-23T03:20:14.892958Z 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: 207, sequence_number: 2, recv_next_sequence: 1 }, payload: b"111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" } [INFO] [stdout] 2026-04-23T03:20:14.893011Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.893065Z 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: 207, sequence_number: 3, recv_next_sequence: 1 }, payload: b"111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" } [INFO] [stdout] 2026-04-23T03:20:14.893167Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=123 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-04-23T03:20:14.893188Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=123 seq=8 payload_len=640 [INFO] [stdout] 2026-04-23T03:20:14.893226Z 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: 287, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.893260Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=123 [INFO] [stdout] 2026-04-23T03:20:14.893171Z 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: 207, sequence_number: 4, recv_next_sequence: 1 }, payload: b"111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" } [INFO] [stdout] 2026-04-23T03:20:14.893282Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=123 count=9 [INFO] [stdout] 2026-04-23T03:20:14.893287Z TRACE kestrel_protocol::timer::task::global: Batch registered timers successfully using wheel batch API batch_size=10000 [INFO] [stdout] 2026-04-23T03:20:14.893313Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=123 state=Established [INFO] [stdout] 2026-04-23T03:20:14.893288Z 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: 207, sequence_number: 5, recv_next_sequence: 1 }, payload: b"111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" } [INFO] [stdout] 2026-04-23T03:20:14.893396Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=274 slots_to_advance=27 max_advance=27 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.893449Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=274 slots_to_advance=27 max_advance=27 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.893393Z 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: 207, sequence_number: 6, recv_next_sequence: 1 }, payload: b"111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" } [INFO] [stdout] 2026-04-23T03:20:14.893499Z 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: 207, sequence_number: 7, recv_next_sequence: 1 }, payload: b"111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" } [INFO] [stdout] 2026-04-23T03:20:14.893626Z 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: 207, sequence_number: 8, recv_next_sequence: 1 }, payload: b"1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" } [INFO] [stdout] 2026-04-23T03:20:14.893703Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=50 state=Established [INFO] [stdout] 2026-04-23T03:20:14.893774Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.893793Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.893833Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=23 [INFO] [stdout] 2026-04-23T03:20:14.893828Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=92 slots_to_advance=9 max_advance=9 current_slot=21 [INFO] [stdout] 2026-04-23T03:20:14.893841Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=64 slots_to_advance=6 max_advance=6 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.893851Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=23 state=Established [INFO] [stdout] 2026-04-23T03:20:14.888192Z 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-04-23T03:20:14.893888Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=124 slots_to_advance=12 max_advance=12 current_slot=16 [INFO] [stdout] 2026-04-23T03:20:14.893931Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=133 slots_to_advance=13 max_advance=13 current_slot=15 [INFO] [stdout] 2026-04-23T03:20:14.893973Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=123 slots_to_advance=12 max_advance=12 current_slot=16 [INFO] [stdout] 2026-04-23T03:20:14.894018Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=132 slots_to_advance=13 max_advance=13 current_slot=15 [INFO] [stdout] 2026-04-23T03:20:14.894027Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=113 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.894062Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=132 slots_to_advance=13 max_advance=13 current_slot=15 [INFO] [stdout] 2026-04-23T03:20:14.894119Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=39 [INFO] [stdout] 2026-04-23T03:20:14.894147Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=39 state=Established [INFO] [stdout] 2026-04-23T03:20:14.894152Z 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-04-23T03:20:14.894197Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=30 [INFO] [stdout] 2026-04-23T03:20:14.894242Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=30 state=Established [INFO] [stdout] 2026-04-23T03:20:14.894272Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=114 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.894285Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=33 [INFO] [stdout] 2026-04-23T03:20:14.894307Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=33 state=Established [INFO] [stdout] 2026-04-23T03:20:14.894304Z 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-04-23T03:20:14.894345Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=32 [INFO] [stdout] 2026-04-23T03:20:14.894368Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=32 state=Established [INFO] [stdout] 2026-04-23T03:20:14.894379Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=115 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.894406Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=7 [INFO] [stdout] 2026-04-23T03:20:14.894404Z 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-04-23T03:20:14.894423Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=7 state=Established [INFO] [stdout] 2026-04-23T03:20:14.894463Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=34 [INFO] [stdout] 2026-04-23T03:20:14.894483Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=34 state=Established [INFO] [stdout] 2026-04-23T03:20:14.894482Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=116 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.894509Z 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-04-23T03:20:14.894523Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=43 [INFO] [stdout] 2026-04-23T03:20:14.894542Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=43 state=Established [INFO] [stdout] 2026-04-23T03:20:14.894603Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=13 [INFO] [stdout] 2026-04-23T03:20:14.894606Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=117 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.894623Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=13 state=Established [INFO] [stdout] 2026-04-23T03:20:14.894633Z 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-04-23T03:20:14.894662Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=130 slots_to_advance=13 max_advance=13 current_slot=15 [INFO] [stdout] 2026-04-23T03:20:14.894697Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=118 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.894708Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=130 slots_to_advance=13 max_advance=13 current_slot=15 [INFO] [stdout] 2026-04-23T03:20:14.894720Z 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-04-23T03:20:14.894777Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=119 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.894788Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=45 [INFO] [stdout] 2026-04-23T03:20:14.894799Z 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-04-23T03:20:14.894811Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=45 state=Established [INFO] [stdout] 2026-04-23T03:20:14.894850Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=19 [INFO] [stdout] 2026-04-23T03:20:14.895001Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=44 [INFO] [stdout] 2026-04-23T03:20:14.888083Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=58 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.895022Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=44 state=Established [INFO] [stdout] 2026-04-23T03:20:14.895039Z 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-04-23T03:20:14.895049Z 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-04-23T03:20:14.895069Z 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-04-23T03:20:14.895088Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=124 peer_cid=24 state=Established [INFO] [stdout] 2026-04-23T03:20:14.895103Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=124 state=Established [INFO] [stdout] 2026-04-23T03:20:14.895118Z 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-04-23T03:20:14.895138Z 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-04-23T03:20:14.895157Z 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-04-23T03:20:14.895176Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=124 [INFO] [stdout] 2026-04-23T03:20:14.895201Z 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] 2026-04-23T03:20:14.895194Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=59 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.895236Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.895239Z 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-04-23T03:20:14.895253Z 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-04-23T03:20:14.895271Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=287 srtt_ms=287 rttvar_ms=143 rto_ms=861 [INFO] [stdout] 2026-04-23T03:20:14.895288Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.895299Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.895363Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=60 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.895395Z 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-04-23T03:20:14.895516Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=61 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.895547Z 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-04-23T03:20:14.895596Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=116 count=9 [INFO] [stdout] 2026-04-23T03:20:14.895628Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=116 state=Established [INFO] [stdout] 2026-04-23T03:20:14.895635Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=62 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.895661Z 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-04-23T03:20:14.895699Z 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-04-23T03:20:14.895723Z 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-04-23T03:20:14.895733Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=63 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.895745Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=117 peer_cid=17 state=Established [INFO] [stdout] 2026-04-23T03:20:14.895760Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=117 state=Established [INFO] [stdout] 2026-04-23T03:20:14.895760Z 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-04-23T03:20:14.895774Z 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-04-23T03:20:14.895793Z 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-04-23T03:20:14.895811Z 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-04-23T03:20:14.895829Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=117 [INFO] [stdout] 2026-04-23T03:20:14.895832Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=64 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.895842Z 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-04-23T03:20:14.895859Z 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-04-23T03:20:14.895868Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.895882Z 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-04-23T03:20:14.895900Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=295 srtt_ms=295 rttvar_ms=147 rto_ms=887 [INFO] [stdout] 2026-04-23T03:20:14.895918Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.895928Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.895934Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=65 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.895960Z 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-04-23T03:20:14.891906Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=201 entry_id=201 connection_id=4703 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.896054Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=202 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.896082Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=202 entry_id=202 connection_id=4903 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.896123Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=203 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.896148Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=203 entry_id=203 connection_id=504 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.896190Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=204 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.895945Z 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-04-23T03:20:14.896224Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=204 entry_id=204 connection_id=304 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.896260Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=205 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.896282Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=205 entry_id=205 connection_id=204 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.896311Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=206 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.896331Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=206 entry_id=206 connection_id=4 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.896359Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=207 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.896378Z 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-04-23T03:20:14.896418Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=208 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.896441Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=208 entry_id=208 connection_id=606 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.896224Z TRACE kestrel_protocol::core::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-04-23T03:20:14.896482Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=209 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.896492Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=117 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.896511Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=117 seq=0 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.896507Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=209 entry_id=209 connection_id=404 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.896535Z 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: 297, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.896547Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=210 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.896591Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=210 entry_id=210 connection_id=704 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.896632Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=211 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.896654Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=211 entry_id=211 connection_id=804 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.896690Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=212 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.896711Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=212 entry_id=212 connection_id=1104 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.896750Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=213 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.896770Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=213 entry_id=213 connection_id=1004 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.896832Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=214 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.896589Z 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-04-23T03:20:14.896857Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=214 entry_id=214 connection_id=1204 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.896914Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=215 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.896939Z 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-04-23T03:20:14.896996Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=216 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.897021Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=216 entry_id=216 connection_id=1404 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.897070Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=217 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.897092Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=217 entry_id=217 connection_id=1504 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.896861Z TRACE kestrel_protocol::core::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-04-23T03:20:14.897129Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=117 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.897145Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=117 seq=1 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.897145Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=218 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.897166Z 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: 298, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.897170Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=218 entry_id=218 connection_id=1304 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.897239Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=219 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.897265Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=219 entry_id=219 connection_id=1704 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.897312Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=220 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.897336Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=220 entry_id=220 connection_id=1604 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.897390Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=221 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.897413Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=221 entry_id=221 connection_id=2104 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.897202Z 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-04-23T03:20:14.897471Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=222 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.897497Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=222 entry_id=222 connection_id=1904 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.897546Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=223 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.897588Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=223 entry_id=223 connection_id=2004 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.897649Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=224 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.897675Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=224 entry_id=224 connection_id=2304 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.897479Z TRACE kestrel_protocol::core::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-04-23T03:20:14.897766Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=117 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.888233Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-04-23T03:20:14.894857Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=120 slot_index=20 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.894934Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:56881 frame_count=1 bytes=27 [INFO] [stdout] 2026-04-23T03:20:14.898094Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-04-23T03:20:14.898142Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=12 frame=Ack { header: ShortHeader { command: Ack, connection_id: 12, payload_length: 8, recv_window_size: 251, timestamp: 154, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.898170Z 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: 12, payload_length: 8, recv_window_size: 251, timestamp: 154, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.898191Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=12 recv_next_seq=0 recv_window=251 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.898219Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=12 [INFO] [stdout] 2026-04-23T03:20:14.898234Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=12 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=251 [INFO] [stdout] 2026-04-23T03:20:14.898265Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-04-23T03:20:14.898261Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:36316 frame_count=1 bytes=27 [INFO] [stdout] 2026-04-23T03:20:14.898282Z 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-04-23T03:20:14.898300Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=305 srtt_ms=294 rttvar_ms=49 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.898317Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-04-23T03:20:14.898328Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] ok [INFO] [stdout] 2026-04-23T03:20:14.898351Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=12 frame=Ack { header: ShortHeader { command: Ack, connection_id: 12, payload_length: 8, recv_window_size: 255, timestamp: 205, sequence_number: 0, recv_next_sequence: 5 }, payload: b"\0\0\0\x05\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.898374Z 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: 12, payload_length: 8, recv_window_size: 255, timestamp: 205, sequence_number: 0, recv_next_sequence: 5 }, payload: b"\0\0\0\x05\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.898393Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=12 recv_next_seq=5 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.898411Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=12 [INFO] [stdout] 2026-04-23T03:20:14.898424Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=12 recv_next_seq=5 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-04-23T03:20:14.898449Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=5 [INFO] [stdout] 2026-04-23T03:20:14.898463Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=5 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-04-23T03:20:14.898481Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=305 srtt_ms=296 rttvar_ms=39 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.898498Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=38 [INFO] [stdout] 2026-04-23T03:20:14.898508Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=37 new_cwnd=38 [INFO] [stdout] 2026-04-23T03:20:14.898520Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.898526Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=12 frame=Ack { header: ShortHeader { command: Ack, connection_id: 12, payload_length: 8, recv_window_size: 254, timestamp: 206, sequence_number: 0, recv_next_sequence: 5 }, payload: b"\0\0\0\x05\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.898550Z 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: 12, payload_length: 8, recv_window_size: 254, timestamp: 206, sequence_number: 0, recv_next_sequence: 5 }, payload: b"\0\0\0\x05\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.898591Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=12 recv_next_seq=5 recv_window=254 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.898611Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=12 [INFO] [stdout] 2026-04-23T03:20:14.898624Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=12 recv_next_seq=5 sack_ranges_count=1 peer_recv_window=254 [INFO] [stdout] 2026-04-23T03:20:14.898648Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=6 [INFO] [stdout] 2026-04-23T03:20:14.898663Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=5 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-04-23T03:20:14.898681Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=305 srtt_ms=297 rttvar_ms=32 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.898698Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=39 [INFO] [stdout] 2026-04-23T03:20:14.898696Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.898708Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=38 new_cwnd=39 [INFO] [stdout] 2026-04-23T03:20:14.898735Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.898729Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=12 frame=Ack { header: ShortHeader { command: Ack, connection_id: 12, payload_length: 8, recv_window_size: 253, timestamp: 211, sequence_number: 0, recv_next_sequence: 5 }, payload: b"\0\0\0\x05\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.898753Z 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: 12, payload_length: 8, recv_window_size: 253, timestamp: 211, sequence_number: 0, recv_next_sequence: 5 }, payload: b"\0\0\0\x05\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.898773Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=12 recv_next_seq=5 recv_window=253 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.898792Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=12 [INFO] [stdout] 2026-04-23T03:20:14.898805Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=12 recv_next_seq=5 sack_ranges_count=1 peer_recv_window=253 [INFO] [stdout] 2026-04-23T03:20:14.898830Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=7 [INFO] [stdout] 2026-04-23T03:20:14.898847Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=5 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-04-23T03:20:14.898865Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=305 srtt_ms=298 rttvar_ms=26 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.898881Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=40 [INFO] [stdout] 2026-04-23T03:20:14.898892Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=39 new_cwnd=40 [INFO] [stdout] 2026-04-23T03:20:14.898910Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=12 frame=Ack { header: ShortHeader { command: Ack, connection_id: 12, payload_length: 8, recv_window_size: 252, timestamp: 211, sequence_number: 0, recv_next_sequence: 5 }, payload: b"\0\0\0\x05\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.898934Z 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: 12, payload_length: 8, recv_window_size: 252, timestamp: 211, sequence_number: 0, recv_next_sequence: 5 }, payload: b"\0\0\0\x05\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.898940Z TRACE kestrel_protocol::timer::wheel::core: Batch added timers to timing wheel batch_size=64 [INFO] [stdout] 2026-04-23T03:20:14.898953Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=12 recv_next_seq=5 recv_window=252 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.898970Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=12 [INFO] [stdout] 2026-04-23T03:20:14.898983Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=12 recv_next_seq=5 sack_ranges_count=1 peer_recv_window=252 [INFO] [stdout] 2026-04-23T03:20:14.899007Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=8 [INFO] [stdout] 2026-04-23T03:20:14.899021Z DEBUG kestrel_protocol::core::reliability::retransmission: Processed ACK with unified retransmission manager cumulative_ack=5 sack_ranges_count=1 sack_acked_count=1 simple_acked_count=0 rtt_samples_count=1 [INFO] [stdout] 2026-04-23T03:20:14.899038Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=305 srtt_ms=299 rttvar_ms=21 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.899053Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=41 [INFO] [stdout] 2026-04-23T03:20:14.899063Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=40 new_cwnd=41 [INFO] [stdout] 2026-04-23T03:20:14.899082Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=12 [INFO] [stdout] 2026-04-23T03:20:14.899103Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=12 state=Established [INFO] [stdout] 2026-04-23T03:20:14.899169Z TRACE kestrel_protocol::timer::task::global: Batch registered timers successfully using wheel batch API batch_size=64 [INFO] [stdout] 2026-04-23T03:20:14.899164Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=235 slots_to_advance=23 max_advance=23 current_slot=1 [INFO] [stdout] 2026-04-23T03:20:14.892432Z 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-04-23T03:20:14.899290Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=104 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.899330Z TRACE kestrel_protocol::timer::wheel::core: Timer moved to new slot entry_id=110 new_slot_index=4 [INFO] [stdout] 2026-04-23T03:20:14.899347Z TRACE kestrel_protocol::timer::wheel::core: Timer moved to new slot entry_id=23 new_slot_index=8 [INFO] [stdout] 2026-04-23T03:20:14.899361Z TRACE kestrel_protocol::timer::wheel::core: Timer moved to new slot entry_id=151 new_slot_index=8 [INFO] [stdout] 2026-04-23T03:20:14.899401Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=178 slot_index=158 delay_ms=237000 [INFO] [stdout] 2026-04-23T03:20:14.899407Z TRACE kestrel_protocol::timer::wheel::core: Batch cancelled timers batch_size=64 cancelled_count=64 [INFO] [stdout] 2026-04-23T03:20:14.899426Z 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-04-23T03:20:14.899503Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=179 slot_index=258 delay_ms=238000 [INFO] [stdout] 2026-04-23T03:20:14.899529Z 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-04-23T03:20:14.899625Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=180 slot_index=358 delay_ms=239000 [INFO] [stdout] 2026-04-23T03:20:14.899658Z 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-04-23T03:20:14.899715Z 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-04-23T03:20:14.899730Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=181 slot_index=458 delay_ms=240000 [INFO] [stdout] 2026-04-23T03:20:14.899755Z 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-04-23T03:20:14.899825Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=182 slot_index=46 delay_ms=241000 [INFO] [stdout] 2026-04-23T03:20:14.899851Z 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-04-23T03:20:14.899926Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=183 slot_index=146 delay_ms=242000 [INFO] [stdout] 2026-04-23T03:20:14.899963Z 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-04-23T03:20:14.895318Z 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] 2026-04-23T03:20:14.900042Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=184 slot_index=246 delay_ms=243000 [INFO] [stdout] 2026-04-23T03:20:14.900070Z 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-04-23T03:20:14.900141Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=185 slot_index=346 delay_ms=244000 [INFO] [stdout] 2026-04-23T03:20:14.900164Z 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-04-23T03:20:14.900249Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=186 slot_index=446 delay_ms=245000 [INFO] [stdout] 2026-04-23T03:20:14.900009Z TRACE kestrel_protocol::core::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-04-23T03:20:14.900284Z 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-04-23T03:20:14.900298Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=124 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.900316Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=124 seq=0 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.900343Z 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: 294, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.900362Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=187 slot_index=34 delay_ms=246000 [INFO] [stdout] 2026-04-23T03:20:14.900378Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=124 [INFO] [stdout] 2026-04-23T03:20:14.900387Z 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-04-23T03:20:14.900394Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=124 count=1 [INFO] [stdout] 2026-04-23T03:20:14.900420Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=124 state=Established [INFO] [stdout] 2026-04-23T03:20:14.900461Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=188 slot_index=134 delay_ms=247000 [INFO] [stdout] 2026-04-23T03:20:14.900479Z DEBUG kestrel_protocol::core::endpoint::lifecycle::manager: Attempting state transition cid=147 current_state=SynReceived target_state=Established [INFO] [stdout] 2026-04-23T03:20:14.900486Z 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-04-23T03:20:14.900501Z TRACE kestrel_protocol::core::endpoint::lifecycle::transitions: State transition executed cid=147 from="SynReceived" to="Established" [INFO] [stdout] 2026-04-23T03:20:14.900525Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to simple retransmission [INFO] [stdout] 2026-04-23T03:20:14.900535Z TRACE kestrel_protocol::core::reliability::retransmission: Adding frame to SACK-based retransmission seq=0 [INFO] [stdout] 2026-04-23T03:20:14.900549Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending 0-RTT packets with intelligent splitting cid=147 packet_count=1 [INFO] [stdout] 2026-04-23T03:20:14.900552Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=189 slot_index=234 delay_ms=248000 [INFO] [stdout] 2026-04-23T03:20:14.900562Z 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-04-23T03:20:14.900602Z 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-04-23T03:20:14.900614Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=147 [INFO] [stdout] 2026-04-23T03:20:14.900632Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=147 state=Established [INFO] [stdout] 2026-04-23T03:20:14.900675Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=190 slot_index=334 delay_ms=249000 [INFO] [stdout] 2026-04-23T03:20:14.900679Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=268 slots_to_advance=26 max_advance=26 current_slot=1 [INFO] [stdout] 2026-04-23T03:20:14.900700Z 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-04-23T03:20:14.900730Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=268 slots_to_advance=26 max_advance=26 current_slot=1 [INFO] [stdout] 2026-04-23T03:20:14.900768Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=191 slot_index=434 delay_ms=250000 [INFO] [stdout] 2026-04-23T03:20:14.900787Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=37 [INFO] [stdout] 2026-04-23T03:20:14.900792Z 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-04-23T03:20:14.900805Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=37 state=Established [INFO] [stdout] 2026-04-23T03:20:14.900834Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=127 [INFO] [stdout] 2026-04-23T03:20:14.900846Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=127 state=Established [INFO] [stdout] 2026-04-23T03:20:14.900860Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=192 slot_index=22 delay_ms=251000 [INFO] [stdout] 2026-04-23T03:20:14.900873Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=27 [INFO] [stdout] 2026-04-23T03:20:14.900887Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=27 state=Established [INFO] [stdout] 2026-04-23T03:20:14.900885Z 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-04-23T03:20:14.900927Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=38 [INFO] [stdout] 2026-04-23T03:20:14.900943Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=38 state=Established [INFO] [stdout] 2026-04-23T03:20:14.900963Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=193 slot_index=122 delay_ms=252000 [INFO] [stdout] 2026-04-23T03:20:14.900972Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=24 [INFO] [stdout] 2026-04-23T03:20:14.900988Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=24 state=Established [INFO] [stdout] 2026-04-23T03:20:14.900989Z 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-04-23T03:20:14.901065Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=194 slot_index=222 delay_ms=253000 [INFO] [stdout] 2026-04-23T03:20:14.901092Z 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-04-23T03:20:14.901163Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=195 slot_index=322 delay_ms=254000 [INFO] [stdout] 2026-04-23T03:20:14.901189Z 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-04-23T03:20:14.901275Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=196 slot_index=422 delay_ms=255000 [INFO] [stdout] 2026-04-23T03:20:14.901303Z 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-04-23T03:20:14.901365Z 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-04-23T03:20:14.901371Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=197 slot_index=10 delay_ms=256000 [INFO] [stdout] 2026-04-23T03:20:14.901391Z 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-04-23T03:20:14.901396Z 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-04-23T03:20:14.901410Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=125 peer_cid=25 state=Established [INFO] [stdout] 2026-04-23T03:20:14.901425Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=125 state=Established [INFO] [stdout] 2026-04-23T03:20:14.901440Z 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-04-23T03:20:14.901461Z 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-04-23T03:20:14.901471Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=198 slot_index=110 delay_ms=257000 [INFO] [stdout] 2026-04-23T03:20:14.901479Z 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-04-23T03:20:14.901497Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=125 [INFO] [stdout] 2026-04-23T03:20:14.901497Z 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-04-23T03:20:14.901510Z 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-04-23T03:20:14.901537Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.897951Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=19 state=Established [INFO] [stdout] 2026-04-23T03:20:14.901628Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=128 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 28 } } [INFO] [stdout] 2026-04-23T03:20:14.901653Z 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: 28 } } [INFO] [stdout] 2026-04-23T03:20:14.901671Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=128 peer_cid=28 state=Established [INFO] [stdout] 2026-04-23T03:20:14.901685Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=128 state=Established [INFO] [stdout] 2026-04-23T03:20:14.901700Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=128 frame=Ack { header: ShortHeader { command: Ack, connection_id: 128, 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-04-23T03:20:14.901719Z 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: 128, 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-04-23T03:20:14.901737Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=128 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.901754Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=128 [INFO] [stdout] 2026-04-23T03:20:14.901766Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=128 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-04-23T03:20:14.901792Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.901799Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=81 slots_to_advance=8 max_advance=8 current_slot=22 [INFO] [stdout] 2026-04-23T03:20:14.901805Z 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-04-23T03:20:14.901827Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=289 srtt_ms=289 rttvar_ms=144 rto_ms=869 [INFO] [stdout] 2026-04-23T03:20:14.901843Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.901854Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.901862Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=239 slots_to_advance=23 max_advance=23 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.901923Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=242 slots_to_advance=24 max_advance=24 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.902003Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=157 slots_to_advance=15 max_advance=15 current_slot=8 [INFO] [stdout] 2026-04-23T03:20:14.901872Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=128 frame=Push { header: ShortHeader { command: Push, connection_id: 128, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b" } [INFO] [stdout] 2026-04-23T03:20:14.902119Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=81 slots_to_advance=8 max_advance=8 current_slot=22 [INFO] [stdout] 2026-04-23T03:20:14.902153Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=117 seq=2 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.902335Z 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-04-23T03:20:14.902387Z 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-04-23T03:20:14.902376Z 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: 303, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.902143Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 128, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b" } [INFO] [stdout] 2026-04-23T03:20:14.902422Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=128 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.902440Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=128 seq=0 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.902463Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=128 remote_addr=127.0.0.1:9027 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 28, payload_length: 8, recv_window_size: 255, timestamp: 292, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.902424Z 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-04-23T03:20:14.902498Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=128 frame=Push { header: ShortHeader { command: Push, connection_id: 128, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b" } [INFO] [stdout] 2026-04-23T03:20:14.902712Z TRACE kestrel_protocol::core::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-04-23T03:20:14.902977Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=117 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.903000Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=117 seq=3 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.902789Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 128, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b" } [INFO] [stdout] 2026-04-23T03:20:14.903027Z 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: 304, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.903045Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=128 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.903063Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=128 seq=1 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.903086Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=128 remote_addr=127.0.0.1:9027 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 28, payload_length: 8, recv_window_size: 254, timestamp: 292, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.903065Z 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-04-23T03:20:14.903117Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=128 frame=Push { header: ShortHeader { command: Push, connection_id: 128, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b" } [INFO] [stdout] 2026-04-23T03:20:14.903334Z TRACE kestrel_protocol::core::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-04-23T03:20:14.903617Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=117 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.903640Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=117 seq=4 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.903383Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 128, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b" } [INFO] [stdout] 2026-04-23T03:20:14.903666Z 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: 305, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.902182Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=199 slot_index=210 delay_ms=258000 [INFO] [stdout] 2026-04-23T03:20:14.903901Z 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-04-23T03:20:14.903997Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=200 slot_index=310 delay_ms=259000 [INFO] [stdout] 2026-04-23T03:20:14.904025Z 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-04-23T03:20:14.904102Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=201 slot_index=410 delay_ms=260000 [INFO] [stdout] 2026-04-23T03:20:14.904128Z 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-04-23T03:20:14.904223Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=202 slot_index=510 delay_ms=261000 [INFO] [stdout] 2026-04-23T03:20:14.904252Z 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-04-23T03:20:14.904333Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=203 slot_index=98 delay_ms=262000 [INFO] [stdout] 2026-04-23T03:20:14.904358Z 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-04-23T03:20:14.904418Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=204 slot_index=198 delay_ms=263000 [INFO] [stdout] 2026-04-23T03:20:14.904443Z 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-04-23T03:20:14.904509Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=205 slot_index=298 delay_ms=264000 [INFO] [stdout] 2026-04-23T03:20:14.904532Z 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-04-23T03:20:14.904621Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=206 slot_index=398 delay_ms=265000 [INFO] [stdout] 2026-04-23T03:20:14.904645Z 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-04-23T03:20:14.904703Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=207 slot_index=498 delay_ms=266000 [INFO] [stdout] 2026-04-23T03:20:14.904725Z 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-04-23T03:20:14.904782Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=208 slot_index=86 delay_ms=267000 [INFO] [stdout] 2026-04-23T03:20:14.904803Z 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-04-23T03:20:14.904859Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=209 slot_index=186 delay_ms=268000 [INFO] [stdout] 2026-04-23T03:20:14.904880Z 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-04-23T03:20:14.904938Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=210 slot_index=286 delay_ms=269000 [INFO] [stdout] 2026-04-23T03:20:14.904959Z 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-04-23T03:20:14.905014Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=211 slot_index=386 delay_ms=270000 [INFO] [stdout] 2026-04-23T03:20:14.905035Z 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-04-23T03:20:14.905091Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=212 slot_index=486 delay_ms=271000 [INFO] [stdout] 2026-04-23T03:20:14.905112Z 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-04-23T03:20:14.905169Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=213 slot_index=74 delay_ms=272000 [INFO] [stdout] 2026-04-23T03:20:14.905193Z 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-04-23T03:20:14.905263Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=214 slot_index=174 delay_ms=273000 [INFO] [stdout] 2026-04-23T03:20:14.905285Z 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-04-23T03:20:14.905342Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=215 slot_index=274 delay_ms=274000 [INFO] [stdout] 2026-04-23T03:20:14.905364Z 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-04-23T03:20:14.905422Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=216 slot_index=374 delay_ms=275000 [INFO] [stdout] 2026-04-23T03:20:14.905443Z 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-04-23T03:20:14.905505Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=217 slot_index=474 delay_ms=276000 [INFO] [stdout] 2026-04-23T03:20:14.905527Z 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-04-23T03:20:14.905608Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=218 slot_index=62 delay_ms=277000 [INFO] [stdout] 2026-04-23T03:20:14.905632Z 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-04-23T03:20:14.905696Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=219 slot_index=162 delay_ms=278000 [INFO] [stdout] 2026-04-23T03:20:14.905720Z 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-04-23T03:20:14.905786Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=220 slot_index=262 delay_ms=279000 [INFO] [stdout] 2026-04-23T03:20:14.905811Z 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-04-23T03:20:14.905885Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=221 slot_index=362 delay_ms=280000 [INFO] [stdout] 2026-04-23T03:20:14.905910Z 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-04-23T03:20:14.905983Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=222 slot_index=462 delay_ms=281000 [INFO] [stdout] 2026-04-23T03:20:14.906009Z 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-04-23T03:20:14.906081Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=223 slot_index=50 delay_ms=282000 [INFO] [stdout] 2026-04-23T03:20:14.906108Z 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-04-23T03:20:14.906179Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=224 slot_index=150 delay_ms=283000 [INFO] [stdout] 2026-04-23T03:20:14.906216Z 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-04-23T03:20:14.906401Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=225 slot_index=250 delay_ms=284000 [INFO] [stdout] 2026-04-23T03:20:14.906629Z 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-04-23T03:20:14.906725Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=226 slot_index=350 delay_ms=285000 [INFO] [stdout] 2026-04-23T03:20:14.906753Z 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-04-23T03:20:14.906826Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=227 slot_index=450 delay_ms=286000 [INFO] [stdout] 2026-04-23T03:20:14.906853Z 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-04-23T03:20:14.906925Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=228 slot_index=38 delay_ms=287000 [INFO] [stdout] 2026-04-23T03:20:14.906954Z 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-04-23T03:20:14.907028Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=229 slot_index=138 delay_ms=288000 [INFO] [stdout] 2026-04-23T03:20:14.907055Z 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-04-23T03:20:14.907128Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=230 slot_index=238 delay_ms=289000 [INFO] [stdout] 2026-04-23T03:20:14.907155Z 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-04-23T03:20:14.907247Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=231 slot_index=338 delay_ms=290000 [INFO] [stdout] 2026-04-23T03:20:14.907276Z 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-04-23T03:20:14.907351Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=232 slot_index=438 delay_ms=291000 [INFO] [stdout] 2026-04-23T03:20:14.907379Z 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-04-23T03:20:14.907456Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=233 slot_index=26 delay_ms=292000 [INFO] [stdout] 2026-04-23T03:20:14.907484Z 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-04-23T03:20:14.903675Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=128 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.897893Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=66 slot_index=369 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.901552Z 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-04-23T03:20:14.907609Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=128 seq=2 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.897832Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=225 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.907652Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=128 remote_addr=127.0.0.1:9027 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 28, payload_length: 8, recv_window_size: 253, timestamp: 297, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.907833Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=225 entry_id=225 connection_id=2204 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.907913Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=226 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.907697Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=128 frame=Push { header: ShortHeader { command: Push, connection_id: 128, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b" } [INFO] [stdout] test timer::task::tests::tests::test_simd_compatibility_and_fallback ... ok [INFO] [stdout] 2026-04-23T03:20:14.903719Z 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-04-23T03:20:14.908008Z TRACE kestrel_protocol::timer::wheel::core: Timer expired entry_id=9 expiry_time=Instant { tv_sec: 43816, tv_nsec: 383029375 } [INFO] [stdout] 2026-04-23T03:20:14.908032Z DEBUG kestrel_protocol::timer::wheel::core: Timing wheel advance completed expired_count=1 [INFO] [stdout] 2026-04-23T03:20:14.908085Z TRACE kestrel_protocol::timer::event: Timer event triggered successfully timer_id=9 connection_id=1 event_type=ConnectionTimeout [INFO] [stdout] 2026-04-23T03:20:14.903756Z 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-04-23T03:20:14.908110Z TRACE kestrel_protocol::timer::task::global: Timer event processed entry_id=9 connection_id=1 event_type=ConnectionTimeout [INFO] [stdout] 2026-04-23T03:20:14.908140Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.908179Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=113 slots_to_advance=11 max_advance=11 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.907983Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 128, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b" } [INFO] [stdout] 2026-04-23T03:20:14.908239Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=121 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.908256Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=128 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.908264Z 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-04-23T03:20:14.908277Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.908277Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=128 seq=3 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.908303Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.908305Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=128 remote_addr=127.0.0.1:9027 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 28, payload_length: 8, recv_window_size: 252, timestamp: 297, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.908328Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=122 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.908327Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=10 delay_ms=100 [INFO] [stdout] 2026-04-23T03:20:14.908359Z 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-04-23T03:20:14.908350Z 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-04-23T03:20:14.903763Z 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-04-23T03:20:14.908422Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=123 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.908418Z 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-04-23T03:20:14.908448Z 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-04-23T03:20:14.908449Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=119 peer_cid=19 state=Established [INFO] [stdout] 2026-04-23T03:20:14.908475Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=119 state=Established [INFO] [stdout] 2026-04-23T03:20:14.908496Z 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: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.908516Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=124 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.908520Z 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: 0, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.908539Z 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-04-23T03:20:14.908540Z 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-04-23T03:20:14.908560Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=119 [INFO] [stdout] 2026-04-23T03:20:14.908601Z 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-04-23T03:20:14.908341Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=128 frame=Push { header: ShortHeader { command: Push, connection_id: 128, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b" } [INFO] [stdout] 2026-04-23T03:20:14.908627Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=125 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.908642Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.908654Z 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-04-23T03:20:14.908661Z 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-04-23T03:20:14.908681Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=306 srtt_ms=306 rttvar_ms=153 rto_ms=920 [INFO] [stdout] 2026-04-23T03:20:14.908699Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.908710Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.908718Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=126 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.908741Z 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-04-23T03:20:14.908747Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.908778Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.908798Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=127 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.908820Z 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-04-23T03:20:14.908879Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=128 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.908636Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 128, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b" } [INFO] [stdout] 2026-04-23T03:20:14.908902Z 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-04-23T03:20:14.908910Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=128 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.908930Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=128 seq=4 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.908964Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=129 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.908959Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=128 remote_addr=127.0.0.1:9027 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 28, payload_length: 8, recv_window_size: 251, timestamp: 298, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.908732Z 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: 0, 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-04-23T03:20:14.908988Z 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] test timer::task::tests::tests::test_connection_lifecycle_management ... ok [INFO] [stdout] 2026-04-23T03:20:14.909904Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.907936Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=226 entry_id=226 connection_id=2404 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.910366Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=227 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.910403Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=227 entry_id=227 connection_id=4104 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.910449Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=228 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.910470Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=228 entry_id=228 connection_id=2504 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.910513Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=229 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.910540Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=229 entry_id=229 connection_id=2604 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.910603Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=230 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.910633Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=230 entry_id=230 connection_id=2704 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.910660Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=231 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.910678Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=231 entry_id=231 connection_id=2804 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.910722Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=232 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.910749Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=232 entry_id=232 connection_id=3104 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.910782Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=233 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.910808Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=233 entry_id=233 connection_id=3204 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.910946Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.910985Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.910994Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=234 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.911026Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=234 entry_id=234 connection_id=2904 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.909059Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=292 srtt_ms=292 rttvar_ms=146 rto_ms=878 [INFO] [stdout] 2026-04-23T03:20:14.911137Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.911157Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.911202Z 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-04-23T03:20:14.911488Z TRACE kestrel_protocol::core::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-04-23T03:20:14.911784Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=125 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.911803Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=125 seq=0 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.911830Z 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: 304, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.912016Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.911873Z 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-04-23T03:20:14.912186Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.912239Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.912272Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=10 delay_ms=100 [INFO] [stdout] 2026-04-23T03:20:14.912296Z 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-04-23T03:20:14.912404Z TRACE kestrel_protocol::timer::wheel::core: Timer cancelled successfully entry_id=1 [INFO] [stdout] 2026-04-23T03:20:14.908998Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=128 frame=Push { header: ShortHeader { command: Push, connection_id: 128, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b" } [INFO] [stdout] 2026-04-23T03:20:14.912463Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=235 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.912491Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=235 entry_id=235 connection_id=3304 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.912558Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=104 slots_to_advance=10 max_advance=10 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.912623Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=236 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.912644Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=236 entry_id=236 connection_id=3004 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.912681Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=237 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.912699Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=237 entry_id=237 connection_id=3404 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.912732Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=238 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.909012Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.912750Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=238 entry_id=238 connection_id=3504 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.909297Z 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-04-23T03:20:14.912782Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=239 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.912803Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=239 entry_id=239 connection_id=3604 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.912832Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=240 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.907558Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=234 slot_index=126 delay_ms=293000 [INFO] [stdout] 2026-04-23T03:20:14.912863Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=240 entry_id=240 connection_id=3704 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.912880Z 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-04-23T03:20:14.912899Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=241 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.912918Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=241 entry_id=241 connection_id=3804 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.912943Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=242 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.912961Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=242 entry_id=242 connection_id=3904 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.912985Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=243 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.913002Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=243 entry_id=243 connection_id=4004 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.912999Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=235 slot_index=226 delay_ms=294000 [INFO] [stdout] 2026-04-23T03:20:14.913034Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=244 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.913030Z 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-04-23T03:20:14.913052Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=244 entry_id=244 connection_id=104 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.912804Z TRACE kestrel_protocol::core::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-04-23T03:20:14.913086Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=245 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.913089Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=117 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.913105Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=245 entry_id=245 connection_id=4204 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.913108Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=236 slot_index=326 delay_ms=295000 [INFO] [stdout] 2026-04-23T03:20:14.913115Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=117 seq=5 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.913138Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=246 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.913136Z 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-04-23T03:20:14.913157Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=246 entry_id=246 connection_id=4304 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.913153Z 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: 314, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.913182Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=247 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.913212Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=247 entry_id=247 connection_id=4404 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.913228Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=237 slot_index=426 delay_ms=296000 [INFO] [stdout] 2026-04-23T03:20:14.913250Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=248 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.913255Z 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-04-23T03:20:14.913269Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=248 entry_id=248 connection_id=4504 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.913302Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=249 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.913321Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=249 entry_id=249 connection_id=4604 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.913330Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=238 slot_index=14 delay_ms=297000 [INFO] [stdout] 2026-04-23T03:20:14.913357Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=250 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.913357Z 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-04-23T03:20:14.913375Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=250 entry_id=250 connection_id=905 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.913409Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=251 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.913426Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=251 entry_id=251 connection_id=205 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.913429Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=239 slot_index=114 delay_ms=298000 [INFO] [stdout] 2026-04-23T03:20:14.913197Z 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-04-23T03:20:14.913461Z 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-04-23T03:20:14.913538Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=240 slot_index=214 delay_ms=299000 [INFO] [stdout] 2026-04-23T03:20:14.913588Z 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-04-23T03:20:14.909089Z 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-04-23T03:20:14.913667Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=241 slot_index=314 delay_ms=300000 [INFO] [stdout] 2026-04-23T03:20:14.913694Z 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-04-23T03:20:14.913732Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=98 slots_to_advance=9 max_advance=9 current_slot=1 [INFO] [stdout] 2026-04-23T03:20:14.913494Z TRACE kestrel_protocol::core::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-04-23T03:20:14.913792Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=117 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.913812Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=117 seq=6 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.912484Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 128, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b" } [INFO] [stdout] 2026-04-23T03:20:14.913839Z 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: 315, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.913948Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=128 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.913971Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=128 seq=5 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.914001Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=128 remote_addr=127.0.0.1:9027 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 28, payload_length: 8, recv_window_size: 250, timestamp: 303, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.913982Z 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-04-23T03:20:14.914041Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=128 frame=Push { header: ShortHeader { command: Push, connection_id: 128, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b" } [INFO] [stdout] 2026-04-23T03:20:14.914264Z TRACE kestrel_protocol::core::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-04-23T03:20:14.914526Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=130 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.914537Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=117 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.914557Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=117 seq=7 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.914559Z 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-04-23T03:20:14.914320Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 128, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b" } [INFO] [stdout] 2026-04-23T03:20:14.914602Z 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: 316, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.913884Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=67 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.914842Z 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-04-23T03:20:14.914986Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=68 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.915018Z 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-04-23T03:20:14.913459Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=252 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.915090Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=252 entry_id=252 connection_id=5 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.915135Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=69 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.915164Z 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-04-23T03:20:14.912148Z TRACE kestrel_protocol::core::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-04-23T03:20:14.914639Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=119 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.914656Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=131 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.915230Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=125 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.915254Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=125 seq=1 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.915251Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=70 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.915267Z 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-04-23T03:20:14.915279Z 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-04-23T03:20:14.915282Z 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: 307, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.915351Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=71 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.915363Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=132 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.915377Z 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-04-23T03:20:14.915389Z 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-04-23T03:20:14.915448Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=72 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.915462Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=133 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.915476Z 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-04-23T03:20:14.915488Z 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-04-23T03:20:14.915546Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=73 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.915551Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=134 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.915318Z 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-04-23T03:20:14.915591Z 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-04-23T03:20:14.915679Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=74 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.915706Z 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-04-23T03:20:14.915769Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=75 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.915795Z 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-04-23T03:20:14.915607Z TRACE kestrel_protocol::core::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-04-23T03:20:14.915875Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=125 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.915882Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=76 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.915893Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=125 seq=2 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.915909Z 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-04-23T03:20:14.915914Z 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: 308, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.915979Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=77 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.916003Z 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-04-23T03:20:14.914610Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=128 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.916056Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=128 seq=6 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.916086Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=128 remote_addr=127.0.0.1:9027 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 28, payload_length: 8, recv_window_size: 249, timestamp: 305, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.915944Z 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-04-23T03:20:14.916119Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=128 frame=Push { header: ShortHeader { command: Push, connection_id: 128, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b" } [INFO] [stdout] 2026-04-23T03:20:14.916222Z TRACE kestrel_protocol::core::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-04-23T03:20:14.916487Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=125 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.916506Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=125 seq=3 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.916526Z 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: 308, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.916611Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=253 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.916625Z TRACE kestrel_protocol::timer::wheel::core: Batch cancelled timers batch_size=10000 cancelled_count=10000 [INFO] [stdout] 2026-04-23T03:20:14.916636Z 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-04-23T03:20:14.916390Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 128, payload_length: 1200, recv_window_size: 256, timestamp: 1, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b" } [INFO] [stdout] 2026-04-23T03:20:14.916676Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=128 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.916683Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=254 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.916700Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=128 seq=7 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.916705Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=254 entry_id=254 connection_id=607 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.916735Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=255 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.916727Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=128 remote_addr=127.0.0.1:9027 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 28, payload_length: 8, recv_window_size: 248, timestamp: 306, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.916754Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=255 entry_id=255 connection_id=4704 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.916783Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=256 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.916801Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=256 entry_id=256 connection_id=4804 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.916830Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=257 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.916848Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=257 entry_id=257 connection_id=705 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.916877Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=258 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.916764Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=128 frame=Push { header: ShortHeader { command: Push, connection_id: 128, payload_length: 640, recv_window_size: 256, timestamp: 1, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b" } [INFO] [stdout] 2026-04-23T03:20:14.916895Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=258 entry_id=258 connection_id=4904 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.916920Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=259 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.916938Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=259 entry_id=259 connection_id=505 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.916968Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=260 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.916986Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=260 entry_id=260 connection_id=805 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.917401Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.917458Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=261 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.917488Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=261 entry_id=261 connection_id=305 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.915593Z 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-04-23T03:20:14.916917Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 128, payload_length: 640, recv_window_size: 256, timestamp: 1, sequence_number: 8, recv_next_sequence: 1 }, payload: b"\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b" } [INFO] [stdout] 2026-04-23T03:20:14.913768Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=242 slot_index=414 delay_ms=301000 [INFO] [stdout] 2026-04-23T03:20:14.917628Z 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-04-23T03:20:14.917659Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=135 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.917686Z 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-04-23T03:20:14.917720Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=243 slot_index=2 delay_ms=302000 [INFO] [stdout] 2026-04-23T03:20:14.917748Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=136 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.917749Z 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-04-23T03:20:14.917771Z 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-04-23T03:20:14.917824Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=244 slot_index=102 delay_ms=303000 [INFO] [stdout] 2026-04-23T03:20:14.917833Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=137 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.917850Z 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-04-23T03:20:14.917855Z 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-04-23T03:20:14.917915Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=138 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.917924Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=245 slot_index=202 delay_ms=304000 [INFO] [stdout] 2026-04-23T03:20:14.916555Z 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-04-23T03:20:14.917937Z 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-04-23T03:20:14.917952Z 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-04-23T03:20:14.917997Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=139 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.918020Z 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-04-23T03:20:14.918026Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=246 slot_index=302 delay_ms=305000 [INFO] [stdout] 2026-04-23T03:20:14.918053Z 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-04-23T03:20:14.918079Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=140 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.918102Z 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-04-23T03:20:14.918129Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=247 slot_index=402 delay_ms=306000 [INFO] [stdout] 2026-04-23T03:20:14.918157Z 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-04-23T03:20:14.918166Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=141 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.918188Z 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-04-23T03:20:14.918241Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2846786072 [INFO] [stdout] 2026-04-23T03:20:14.918248Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=142 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.918246Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=248 slot_index=502 delay_ms=307000 [INFO] [stdout] 2026-04-23T03:20:14.918264Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2846786072 state=SynReceived [INFO] [stdout] 2026-04-23T03:20:14.918270Z 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-04-23T03:20:14.918276Z 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-04-23T03:20:14.918330Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=143 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.918352Z 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-04-23T03:20:14.918354Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=249 slot_index=90 delay_ms=308000 [INFO] [stdout] 2026-04-23T03:20:14.918382Z 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-04-23T03:20:14.917958Z TRACE kestrel_protocol::core::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-04-23T03:20:14.918407Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=144 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.918424Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=125 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.918430Z 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-04-23T03:20:14.918445Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=125 seq=4 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.918461Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=250 slot_index=190 delay_ms=309000 [INFO] [stdout] 2026-04-23T03:20:14.918472Z 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: 310, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.918489Z 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-04-23T03:20:14.918495Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=145 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.918517Z 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-04-23T03:20:14.918586Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=146 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.918586Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=251 slot_index=290 delay_ms=310000 [INFO] [stdout] 2026-04-23T03:20:14.918608Z 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-04-23T03:20:14.918616Z 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-04-23T03:20:14.918662Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=147 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.918682Z 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-04-23T03:20:14.918689Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=252 slot_index=390 delay_ms=311000 [INFO] [stdout] 2026-04-23T03:20:14.918717Z 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-04-23T03:20:14.918732Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=148 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.918751Z 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-04-23T03:20:14.918506Z 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-04-23T03:20:14.918799Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=149 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.918796Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=253 slot_index=490 delay_ms=312000 [INFO] [stdout] 2026-04-23T03:20:14.918829Z 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-04-23T03:20:14.918829Z 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-04-23T03:20:14.918880Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=150 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.918899Z 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-04-23T03:20:14.918906Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=254 slot_index=78 delay_ms=313000 [INFO] [stdout] 2026-04-23T03:20:14.918934Z 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-04-23T03:20:14.918946Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=151 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.918965Z 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-04-23T03:20:14.919011Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=152 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.919012Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=255 slot_index=178 delay_ms=314000 [INFO] [stdout] 2026-04-23T03:20:14.919030Z 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-04-23T03:20:14.919039Z 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-04-23T03:20:14.918796Z TRACE kestrel_protocol::core::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-04-23T03:20:14.919064Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=125 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.919079Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=153 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.919081Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=125 seq=5 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.919099Z 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-04-23T03:20:14.919105Z 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: 311, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.919117Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=256 slot_index=278 delay_ms=315000 [INFO] [stdout] 2026-04-23T03:20:14.919143Z 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-04-23T03:20:14.919146Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=154 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.919167Z 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-04-23T03:20:14.919217Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=155 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.919233Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=257 slot_index=378 delay_ms=316000 [INFO] [stdout] 2026-04-23T03:20:14.919262Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=119 seq=0 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.919273Z 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-04-23T03:20:14.919288Z 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: 318, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.919353Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=258 slot_index=478 delay_ms=317000 [INFO] [stdout] 2026-04-23T03:20:14.919381Z 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-04-23T03:20:14.919134Z 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-04-23T03:20:14.919453Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=259 slot_index=66 delay_ms=318000 [INFO] [stdout] 2026-04-23T03:20:14.919483Z 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-04-23T03:20:14.919555Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=260 slot_index=166 delay_ms=319000 [INFO] [stdout] 2026-04-23T03:20:14.919321Z 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: 0, 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-04-23T03:20:14.917101Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=78 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.919891Z 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-04-23T03:20:14.920011Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=79 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.920034Z 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-04-23T03:20:14.920137Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=80 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.919891Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.920164Z 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-04-23T03:20:14.920178Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=119 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.920210Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=119 seq=1 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.920242Z 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: 319, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.920255Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=81 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.920282Z 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-04-23T03:20:14.919605Z 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-04-23T03:20:14.920417Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=261 slot_index=266 delay_ms=320000 [INFO] [stdout] 2026-04-23T03:20:14.920443Z 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-04-23T03:20:14.920513Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=262 slot_index=366 delay_ms=321000 [INFO] [stdout] 2026-04-23T03:20:14.920284Z 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: 0, 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-04-23T03:20:14.920534Z 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-04-23T03:20:14.920619Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=263 slot_index=466 delay_ms=322000 [INFO] [stdout] 2026-04-23T03:20:14.912445Z TRACE kestrel_protocol::timer::task::global: Timer cancelled successfully entry_id=1 [INFO] [stdout] 2026-04-23T03:20:14.920645Z 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-04-23T03:20:14.917144Z 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-04-23T03:20:14.919659Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=262 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.919411Z TRACE kestrel_protocol::core::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-04-23T03:20:14.920708Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=264 slot_index=54 delay_ms=323000 [INFO] [stdout] 2026-04-23T03:20:14.920712Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=262 entry_id=262 connection_id=1105 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.919732Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1367191249 [INFO] [stdout] 2026-04-23T03:20:14.920740Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=125 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.920764Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=125 seq=6 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.920769Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1367191249 state=Closing [INFO] [stdout] 2026-04-23T03:20:14.920793Z 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: 313, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.917385Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.920694Z TRACE kestrel_protocol::core::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-04-23T03:20:14.919820Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:56881 frame_count=1 bytes=27 [INFO] [stdout] 2026-04-23T03:20:14.920841Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=263 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.920849Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=117 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-04-23T03:20:14.920868Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=117 seq=8 payload_len=640 [INFO] [stdout] 2026-04-23T03:20:14.920870Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=263 entry_id=263 connection_id=1005 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.920887Z 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-04-23T03:20:14.920895Z 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: 322, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.920933Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=117 [INFO] [stdout] 2026-04-23T03:20:14.920956Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=117 count=9 [INFO] [stdout] 2026-04-23T03:20:14.920964Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=265 slot_index=154 delay_ms=324000 [INFO] [stdout] 2026-04-23T03:20:14.920976Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=264 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.920976Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.920990Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=117 state=Established [INFO] [stdout] 2026-04-23T03:20:14.920986Z 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-04-23T03:20:14.921004Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=264 entry_id=264 connection_id=1205 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.921001Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:36316 frame_count=1 bytes=27 [INFO] [stdout] 2026-04-23T03:20:14.921010Z 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-04-23T03:20:14.921045Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=266 slot_index=254 delay_ms=325000 [INFO] [stdout] 2026-04-23T03:20:14.921066Z 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-04-23T03:20:14.921078Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.921102Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=265 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.919684Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=128 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-04-23T03:20:14.921117Z 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-04-23T03:20:14.921119Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=267 slot_index=354 delay_ms=326000 [INFO] [stdout] 2026-04-23T03:20:14.921122Z 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-04-23T03:20:14.921128Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=128 seq=8 payload_len=640 [INFO] [stdout] 2026-04-23T03:20:14.921142Z 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-04-23T03:20:14.921160Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=128 remote_addr=127.0.0.1:9027 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 28, payload_length: 8, recv_window_size: 247, timestamp: 310, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.921187Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=3 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.921195Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=268 slot_index=454 delay_ms=327000 [INFO] [stdout] 2026-04-23T03:20:14.921204Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=128 [INFO] [stdout] 2026-04-23T03:20:14.921218Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=266 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.921212Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=32 slots_to_advance=3 max_advance=3 current_slot=27 [INFO] [stdout] 2026-04-23T03:20:14.921224Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=128 count=9 [INFO] [stdout] 2026-04-23T03:20:14.921238Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=266 entry_id=266 connection_id=1405 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.921215Z 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-04-23T03:20:14.921265Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=128 state=Established [INFO] [stdout] 2026-04-23T03:20:14.921274Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=82 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.921277Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=108 slots_to_advance=10 max_advance=10 current_slot=21 [INFO] [stdout] 2026-04-23T03:20:14.921296Z 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-04-23T03:20:14.921311Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=4 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.921320Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=99 slots_to_advance=9 max_advance=9 current_slot=22 [INFO] [stdout] 2026-04-23T03:20:14.921328Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=267 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.921343Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=139 [INFO] [stdout] 2026-04-23T03:20:14.921343Z 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-04-23T03:20:14.921348Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=267 entry_id=267 connection_id=1505 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.921357Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=83 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.921356Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=99 slots_to_advance=9 max_advance=9 current_slot=22 [INFO] [stdout] 2026-04-23T03:20:14.921365Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=139 state=Established [INFO] [stdout] 2026-04-23T03:20:14.921377Z 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-04-23T03:20:14.921405Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=42 [INFO] [stdout] 2026-04-23T03:20:14.921409Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=99 slots_to_advance=9 max_advance=9 current_slot=22 [INFO] [stdout] 2026-04-23T03:20:14.921412Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=5 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.921427Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=42 state=Established [INFO] [stdout] 2026-04-23T03:20:14.921426Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=84 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.921439Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=268 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.921439Z 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-04-23T03:20:14.921447Z 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-04-23T03:20:14.921460Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=268 entry_id=268 connection_id=1305 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.921511Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=85 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.921518Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=6 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.921533Z 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-04-23T03:20:14.921545Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=3 [INFO] [stdout] 2026-04-23T03:20:14.921546Z 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-04-23T03:20:14.921547Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=269 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.921600Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=3 state=Established [INFO] [stdout] 2026-04-23T03:20:14.921612Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=86 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.921616Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=269 entry_id=269 connection_id=1705 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.921560Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=20 frame=Ack { header: ShortHeader { command: Ack, connection_id: 20, payload_length: 8, recv_window_size: 255, timestamp: 250, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.921636Z 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-04-23T03:20:14.921642Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=46 [INFO] [stdout] 2026-04-23T03:20:14.921647Z 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: 20, payload_length: 8, recv_window_size: 255, timestamp: 250, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.921661Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=46 state=Established [INFO] [stdout] 2026-04-23T03:20:14.921668Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=20 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.921690Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=20 [INFO] [stdout] 2026-04-23T03:20:14.921690Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=148 [INFO] [stdout] 2026-04-23T03:20:14.921693Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=87 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.921706Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=148 state=Established [INFO] [stdout] 2026-04-23T03:20:14.921706Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=20 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-04-23T03:20:14.921713Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=270 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.921715Z 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-04-23T03:20:14.920550Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.921736Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=35 [INFO] [stdout] 2026-04-23T03:20:14.921883Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=119 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.921901Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=35 state=Established [INFO] [stdout] 2026-04-23T03:20:14.921906Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=119 seq=2 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.921939Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=41 [INFO] [stdout] 2026-04-23T03:20:14.921955Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=41 state=Established [INFO] [stdout] 2026-04-23T03:20:14.921948Z 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: 321, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.921989Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=150 [INFO] [stdout] 2026-04-23T03:20:14.922004Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=150 state=Established [INFO] [stdout] 2026-04-23T03:20:14.922030Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=145 [INFO] [stdout] 2026-04-23T03:20:14.922045Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=145 state=Established [INFO] [stdout] 2026-04-23T03:20:14.922073Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=105 [INFO] [stdout] 2026-04-23T03:20:14.922086Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=105 state=Established [INFO] [stdout] 2026-04-23T03:20:14.922116Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=149 [INFO] [stdout] 2026-04-23T03:20:14.922130Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=149 state=Established [INFO] [stdout] 2026-04-23T03:20:14.922155Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=101 [INFO] [stdout] 2026-04-23T03:20:14.922169Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=101 state=Established [INFO] [stdout] 2026-04-23T03:20:14.922205Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=103 [INFO] [stdout] 2026-04-23T03:20:14.922221Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=103 state=Established [INFO] [stdout] 2026-04-23T03:20:14.921992Z 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: 0, 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-04-23T03:20:14.922255Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=148 slots_to_advance=14 max_advance=14 current_slot=15 [INFO] [stdout] 2026-04-23T03:20:14.922296Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=5 [INFO] [stdout] 2026-04-23T03:20:14.922312Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=5 state=Established [INFO] [stdout] 2026-04-23T03:20:14.922340Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=153 slots_to_advance=15 max_advance=15 current_slot=14 [INFO] [stdout] 2026-04-23T03:20:14.922378Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=4 [INFO] [stdout] 2026-04-23T03:20:14.922393Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=4 state=Established [INFO] [stdout] 2026-04-23T03:20:14.922420Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=106 [INFO] [stdout] 2026-04-23T03:20:14.922434Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=106 state=Established [INFO] [stdout] 2026-04-23T03:20:14.922462Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=114 [INFO] [stdout] 2026-04-23T03:20:14.922477Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=114 state=Established [INFO] [stdout] 2026-04-23T03:20:14.922264Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.922502Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=14 frame=Ack { header: ShortHeader { command: Ack, connection_id: 14, payload_length: 8, recv_window_size: 255, timestamp: 173, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.922526Z 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: 14, payload_length: 8, recv_window_size: 255, timestamp: 173, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.922524Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=119 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.922547Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=119 seq=3 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.922545Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=14 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.922589Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=14 [INFO] [stdout] 2026-04-23T03:20:14.922593Z 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: 321, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.922604Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=14 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-04-23T03:20:14.922632Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.922649Z 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-04-23T03:20:14.922667Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=325 srtt_ms=325 rttvar_ms=162 rto_ms=976 [INFO] [stdout] 2026-04-23T03:20:14.922684Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.922695Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.922714Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=14 frame=Ack { header: ShortHeader { command: Ack, connection_id: 14, payload_length: 8, recv_window_size: 254, timestamp: 174, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.922737Z 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: 14, payload_length: 8, recv_window_size: 254, timestamp: 174, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.922756Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=14 recv_next_seq=0 recv_window=254 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.922773Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=14 [INFO] [stdout] 2026-04-23T03:20:14.922784Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=14 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=254 [INFO] [stdout] 2026-04-23T03:20:14.922804Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-04-23T03:20:14.922817Z 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-04-23T03:20:14.922834Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=325 srtt_ms=325 rttvar_ms=122 rto_ms=813 [INFO] [stdout] 2026-04-23T03:20:14.922850Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.922860Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.922630Z 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: 0, 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-04-23T03:20:14.922876Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=14 frame=Ack { header: ShortHeader { command: Ack, connection_id: 14, 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-04-23T03:20:14.922896Z 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: 14, 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-04-23T03:20:14.922914Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=14 recv_next_seq=0 recv_window=253 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.922931Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=14 [INFO] [stdout] 2026-04-23T03:20:14.922942Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=14 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=253 [INFO] [stdout] 2026-04-23T03:20:14.922962Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-04-23T03:20:14.922974Z 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-04-23T03:20:14.922991Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=325 srtt_ms=325 rttvar_ms=91 rto_ms=691 [INFO] [stdout] 2026-04-23T03:20:14.923006Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-04-23T03:20:14.923016Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-04-23T03:20:14.923031Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=14 frame=Ack { header: ShortHeader { command: Ack, connection_id: 14, payload_length: 8, recv_window_size: 252, timestamp: 178, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.923049Z 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: 14, payload_length: 8, recv_window_size: 252, timestamp: 178, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.923067Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=14 recv_next_seq=0 recv_window=252 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.923084Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=14 [INFO] [stdout] 2026-04-23T03:20:14.923285Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=14 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=252 [INFO] [stdout] 2026-04-23T03:20:14.923310Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] 2026-04-23T03:20:14.923323Z 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-04-23T03:20:14.923344Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=325 srtt_ms=325 rttvar_ms=68 rto_ms=600 [INFO] [stdout] 2026-04-23T03:20:14.923360Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-04-23T03:20:14.923370Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-04-23T03:20:14.923376Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=11 slots_to_advance=1 max_advance=1 current_slot=0 [INFO] [stdout] 2026-04-23T03:20:14.923386Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=14 frame=Ack { header: ShortHeader { command: Ack, connection_id: 14, payload_length: 8, recv_window_size: 251, timestamp: 179, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.923407Z 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: 14, payload_length: 8, recv_window_size: 251, timestamp: 179, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.923425Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=14 recv_next_seq=0 recv_window=251 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.923442Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=14 [INFO] [stdout] 2026-04-23T03:20:14.923454Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=14 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=251 [INFO] [stdout] 2026-04-23T03:20:14.923476Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-04-23T03:20:14.923489Z 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-04-23T03:20:14.923506Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=326 srtt_ms=325 rttvar_ms=51 rto_ms=532 [INFO] [stdout] 2026-04-23T03:20:14.923521Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-04-23T03:20:14.923531Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] 2026-04-23T03:20:14.923547Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=14 frame=Ack { header: ShortHeader { command: Ack, connection_id: 14, payload_length: 8, recv_window_size: 250, timestamp: 179, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.921744Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.919236Z 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-04-23T03:20:14.923630Z 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-04-23T03:20:14.923655Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=318 srtt_ms=318 rttvar_ms=159 rto_ms=955 [INFO] [stdout] 2026-04-23T03:20:14.923672Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.923683Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.923687Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=156 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.923703Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=20 frame=Ack { header: ShortHeader { command: Ack, connection_id: 20, payload_length: 8, recv_window_size: 254, timestamp: 250, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.923714Z 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-04-23T03:20:14.923727Z 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: 20, payload_length: 8, recv_window_size: 254, timestamp: 250, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.923748Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=20 recv_next_seq=0 recv_window=254 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.923766Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=20 [INFO] [stdout] 2026-04-23T03:20:14.923771Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=157 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.923778Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=20 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=254 [INFO] [stdout] 2026-04-23T03:20:14.923794Z 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-04-23T03:20:14.923807Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=1 [INFO] [stdout] 2026-04-23T03:20:14.923822Z 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-04-23T03:20:14.923840Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=320 srtt_ms=318 rttvar_ms=119 rto_ms=798 [INFO] [stdout] 2026-04-23T03:20:14.923849Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=158 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.923856Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.923869Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=33 new_cwnd=34 [INFO] [stdout] 2026-04-23T03:20:14.923870Z 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-04-23T03:20:14.923888Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=20 frame=Ack { header: ShortHeader { command: Ack, connection_id: 20, payload_length: 8, recv_window_size: 253, timestamp: 251, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.923912Z 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: 20, payload_length: 8, recv_window_size: 253, timestamp: 251, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.923921Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=159 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.923932Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=20 recv_next_seq=0 recv_window=253 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.923941Z 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-04-23T03:20:14.923951Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=20 [INFO] [stdout] 2026-04-23T03:20:14.923966Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=20 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=253 [INFO] [stdout] 2026-04-23T03:20:14.923991Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=2 [INFO] [stdout] 2026-04-23T03:20:14.923989Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=160 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.924006Z 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-04-23T03:20:14.924009Z 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-04-23T03:20:14.924025Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=320 srtt_ms=318 rttvar_ms=90 rto_ms=680 [INFO] [stdout] 2026-04-23T03:20:14.924041Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=35 [INFO] [stdout] 2026-04-23T03:20:14.924051Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=34 new_cwnd=35 [INFO] [stdout] 2026-04-23T03:20:14.924059Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=161 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.924069Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=20 frame=Ack { header: ShortHeader { command: Ack, connection_id: 20, payload_length: 8, recv_window_size: 252, timestamp: 270, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.924079Z 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-04-23T03:20:14.924091Z 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: 20, payload_length: 8, recv_window_size: 252, timestamp: 270, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.924109Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=20 recv_next_seq=0 recv_window=252 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.924126Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=20 [INFO] [stdout] 2026-04-23T03:20:14.924128Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=162 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.924138Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=20 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=252 [INFO] [stdout] 2026-04-23T03:20:14.924150Z 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-04-23T03:20:14.924159Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=3 [INFO] [stdout] 2026-04-23T03:20:14.924171Z 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-04-23T03:20:14.924188Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=320 srtt_ms=319 rttvar_ms=68 rto_ms=592 [INFO] [stdout] 2026-04-23T03:20:14.924197Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=163 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.924213Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=36 [INFO] [stdout] 2026-04-23T03:20:14.924223Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=35 new_cwnd=36 [INFO] [stdout] 2026-04-23T03:20:14.924219Z 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-04-23T03:20:14.924240Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=20 frame=Ack { header: ShortHeader { command: Ack, connection_id: 20, payload_length: 8, recv_window_size: 251, timestamp: 271, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.924261Z 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: 20, payload_length: 8, recv_window_size: 251, timestamp: 271, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.924269Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=164 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.924278Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=20 recv_next_seq=0 recv_window=251 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.924288Z 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-04-23T03:20:14.924350Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=165 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.924371Z 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-04-23T03:20:14.924417Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=166 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.924435Z 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-04-23T03:20:14.924494Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=167 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.924515Z 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-04-23T03:20:14.924580Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=168 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.924610Z 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-04-23T03:20:14.924688Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=169 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.924713Z 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-04-23T03:20:14.924774Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=170 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.924803Z 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-04-23T03:20:14.924853Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=171 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.924882Z 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-04-23T03:20:14.924934Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=172 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.924963Z 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-04-23T03:20:14.925013Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=173 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.925039Z 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-04-23T03:20:14.925099Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=174 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.925125Z 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-04-23T03:20:14.925183Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=175 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.925214Z 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-04-23T03:20:14.925267Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=176 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.925295Z 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-04-23T03:20:14.925347Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=177 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.925376Z 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-04-23T03:20:14.925427Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=178 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.925461Z 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-04-23T03:20:14.925523Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=179 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.925554Z 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-04-23T03:20:14.925629Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=180 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.925660Z 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-04-23T03:20:14.925713Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=181 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.925742Z 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-04-23T03:20:14.925794Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=182 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.925822Z 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-04-23T03:20:14.925873Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=183 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.925901Z 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-04-23T03:20:14.925953Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=184 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.925981Z 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-04-23T03:20:14.926044Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=185 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.926074Z 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-04-23T03:20:14.926126Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=186 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.926155Z 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-04-23T03:20:14.926208Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=187 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.926238Z 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-04-23T03:20:14.926290Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=188 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.926319Z 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-04-23T03:20:14.926370Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=189 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.926397Z 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-04-23T03:20:14.926448Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=190 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.926484Z 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-04-23T03:20:14.926539Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=191 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.926558Z 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-04-23T03:20:14.926633Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=192 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.926653Z 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-04-23T03:20:14.926702Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=193 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.926722Z 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-04-23T03:20:14.926771Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=194 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.926790Z 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-04-23T03:20:14.926837Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=195 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.926855Z 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-04-23T03:20:14.926902Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=196 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.926921Z 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-04-23T03:20:14.926967Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=197 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.926985Z 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-04-23T03:20:14.927037Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=198 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.927056Z 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-04-23T03:20:14.927102Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=199 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.927121Z 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-04-23T03:20:14.927167Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=200 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.927185Z 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-04-23T03:20:14.927238Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=201 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.927258Z 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-04-23T03:20:14.927306Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=202 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.927325Z 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-04-23T03:20:14.927372Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=203 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.927391Z 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-04-23T03:20:14.927437Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=204 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.927467Z 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-04-23T03:20:14.927519Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=205 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.927540Z 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-04-23T03:20:14.921774Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=88 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.921791Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=7 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.921735Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=270 entry_id=270 connection_id=1605 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.921217Z 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-04-23T03:20:14.928690Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=269 slot_index=42 delay_ms=328000 [INFO] [stdout] 2026-04-23T03:20:14.928712Z 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-04-23T03:20:14.928703Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=271 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.928750Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=271 entry_id=271 connection_id=2105 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.928761Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=270 slot_index=142 delay_ms=329000 [INFO] [stdout] 2026-04-23T03:20:14.928780Z 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-04-23T03:20:14.928795Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=272 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.928821Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=272 entry_id=272 connection_id=1905 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.928827Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=271 slot_index=242 delay_ms=330000 [INFO] [stdout] 2026-04-23T03:20:14.928847Z 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-04-23T03:20:14.928858Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=273 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.928881Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=273 entry_id=273 connection_id=2005 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.928899Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=272 slot_index=342 delay_ms=331000 [INFO] [stdout] 2026-04-23T03:20:14.928911Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=274 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.928920Z 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-04-23T03:20:14.928929Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=274 entry_id=274 connection_id=2305 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.928968Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=275 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.928968Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=273 slot_index=442 delay_ms=332000 [INFO] [stdout] 2026-04-23T03:20:14.928989Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=275 entry_id=275 connection_id=2505 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.928990Z 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-04-23T03:20:14.929014Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=276 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.929032Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=276 entry_id=276 connection_id=2205 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.929041Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=274 slot_index=30 delay_ms=333000 [INFO] [stdout] 2026-04-23T03:20:14.929061Z 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-04-23T03:20:14.929070Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=277 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.929096Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=277 entry_id=277 connection_id=2405 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.929109Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=275 slot_index=130 delay_ms=334000 [INFO] [stdout] 2026-04-23T03:20:14.929128Z 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-04-23T03:20:14.929136Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=278 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.929158Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=278 entry_id=278 connection_id=4105 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.929176Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=276 slot_index=230 delay_ms=335000 [INFO] [stdout] 2026-04-23T03:20:14.929192Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=279 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.929196Z 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-04-23T03:20:14.929214Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=279 entry_id=279 connection_id=2705 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.929247Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=277 slot_index=330 delay_ms=336000 [INFO] [stdout] 2026-04-23T03:20:14.929251Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=280 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.929268Z 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-04-23T03:20:14.929272Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=280 entry_id=280 connection_id=2605 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.929303Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=281 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.929318Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=278 slot_index=430 delay_ms=337000 [INFO] [stdout] 2026-04-23T03:20:14.929325Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=281 entry_id=281 connection_id=2805 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.929340Z 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-04-23T03:20:14.929367Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=282 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.929389Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=279 slot_index=18 delay_ms=338000 [INFO] [stdout] 2026-04-23T03:20:14.929390Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=282 entry_id=282 connection_id=3105 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.929409Z 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-04-23T03:20:14.929427Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=283 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.929460Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=283 entry_id=283 connection_id=3205 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.929466Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=280 slot_index=118 delay_ms=339000 [INFO] [stdout] 2026-04-23T03:20:14.929487Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=280 entry_id=280 connection_id=279 delay_ms=339000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.929500Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=284 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.929522Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=284 entry_id=284 connection_id=2905 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.929538Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=281 slot_index=218 delay_ms=340000 [INFO] [stdout] 2026-04-23T03:20:14.929549Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=285 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.929558Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=281 entry_id=281 connection_id=280 delay_ms=340000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.929583Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=285 entry_id=285 connection_id=3905 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.929620Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=286 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.929634Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=282 slot_index=318 delay_ms=341000 [INFO] [stdout] 2026-04-23T03:20:14.929641Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=286 entry_id=286 connection_id=3305 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.929655Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=282 entry_id=282 connection_id=281 delay_ms=341000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.929679Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=287 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.929701Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=287 entry_id=287 connection_id=3005 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.929705Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=283 slot_index=418 delay_ms=342000 [INFO] [stdout] 2026-04-23T03:20:14.929730Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=283 entry_id=283 connection_id=282 delay_ms=342000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.929739Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=288 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.929759Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=288 entry_id=288 connection_id=3405 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.929786Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=284 slot_index=6 delay_ms=343000 [INFO] [stdout] 2026-04-23T03:20:14.929798Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=289 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.929806Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=284 entry_id=284 connection_id=283 delay_ms=343000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.929819Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=289 entry_id=289 connection_id=3505 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.929856Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=285 slot_index=106 delay_ms=344000 [INFO] [stdout] 2026-04-23T03:20:14.929861Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=290 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.929876Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=285 entry_id=285 connection_id=284 delay_ms=344000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.929884Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=290 entry_id=290 connection_id=3605 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.929912Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=291 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.929926Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=286 slot_index=206 delay_ms=345000 [INFO] [stdout] 2026-04-23T03:20:14.929929Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=291 entry_id=291 connection_id=3705 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.929946Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=286 entry_id=286 connection_id=285 delay_ms=345000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.929960Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=292 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.929980Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=292 entry_id=292 connection_id=3805 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.929993Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=287 slot_index=306 delay_ms=346000 [INFO] [stdout] 2026-04-23T03:20:14.930013Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=287 entry_id=287 connection_id=286 delay_ms=346000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.930016Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=293 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.930038Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=293 entry_id=293 connection_id=4305 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.930061Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=288 slot_index=406 delay_ms=347000 [INFO] [stdout] 2026-04-23T03:20:14.930076Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=294 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.930082Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=288 entry_id=288 connection_id=287 delay_ms=347000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.930125Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=294 entry_id=294 connection_id=4005 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.930157Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=295 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.930169Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=289 slot_index=506 delay_ms=348000 [INFO] [stdout] 2026-04-23T03:20:14.930175Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=295 entry_id=295 connection_id=105 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.930190Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=289 entry_id=289 connection_id=288 delay_ms=348000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.930208Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=296 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.930230Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=296 entry_id=296 connection_id=4205 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.930249Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=290 slot_index=94 delay_ms=349000 [INFO] [stdout] 2026-04-23T03:20:14.930267Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=297 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.930271Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=290 entry_id=290 connection_id=289 delay_ms=349000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.930288Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=297 entry_id=297 connection_id=4505 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.930323Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=291 slot_index=194 delay_ms=350000 [INFO] [stdout] 2026-04-23T03:20:14.930329Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=298 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.930342Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=291 entry_id=291 connection_id=290 delay_ms=350000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.930354Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=298 entry_id=298 connection_id=4405 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.930390Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=299 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.930391Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=292 slot_index=294 delay_ms=351000 [INFO] [stdout] 2026-04-23T03:20:14.930410Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=299 entry_id=299 connection_id=4605 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.930410Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=292 entry_id=292 connection_id=291 delay_ms=351000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.930441Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=300 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.930469Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=300 entry_id=300 connection_id=906 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.930469Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=293 slot_index=394 delay_ms=352000 [INFO] [stdout] 2026-04-23T03:20:14.930501Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=301 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.930500Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=293 entry_id=293 connection_id=292 delay_ms=352000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.930522Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=301 entry_id=301 connection_id=206 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.930552Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=294 slot_index=494 delay_ms=353000 [INFO] [stdout] 2026-04-23T03:20:14.930562Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=302 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.930596Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=294 entry_id=294 connection_id=293 delay_ms=353000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.930607Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=302 entry_id=302 connection_id=4705 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.930645Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=303 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.930658Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=295 slot_index=82 delay_ms=354000 [INFO] [stdout] 2026-04-23T03:20:14.930664Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=303 entry_id=303 connection_id=6 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.930678Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=295 entry_id=295 connection_id=294 delay_ms=354000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.930703Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=304 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.930724Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=304 entry_id=304 connection_id=406 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.930729Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=296 slot_index=182 delay_ms=355000 [INFO] [stdout] 2026-04-23T03:20:14.930749Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=305 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.930750Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=296 entry_id=296 connection_id=295 delay_ms=355000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.930768Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=305 entry_id=305 connection_id=608 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.930803Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=306 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.930803Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=297 slot_index=282 delay_ms=356000 [INFO] [stdout] 2026-04-23T03:20:14.930825Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=297 entry_id=297 connection_id=296 delay_ms=356000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.930824Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=306 entry_id=306 connection_id=706 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.930866Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=307 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.930875Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=298 slot_index=382 delay_ms=357000 [INFO] [stdout] 2026-04-23T03:20:14.930901Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=298 entry_id=298 connection_id=297 delay_ms=357000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.930888Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=307 entry_id=307 connection_id=4805 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.930942Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=308 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.930965Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=299 slot_index=482 delay_ms=358000 [INFO] [stdout] 2026-04-23T03:20:14.930965Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=308 entry_id=308 connection_id=4905 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.930986Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=299 entry_id=299 connection_id=298 delay_ms=358000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.931004Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=309 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.931023Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=309 entry_id=309 connection_id=506 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.931037Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=300 slot_index=70 delay_ms=359000 [INFO] [stdout] 2026-04-23T03:20:14.931053Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=310 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.931057Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=300 entry_id=300 connection_id=299 delay_ms=359000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.931073Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=310 entry_id=310 connection_id=806 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.931109Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=311 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.931122Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=301 slot_index=170 delay_ms=360000 [INFO] [stdout] 2026-04-23T03:20:14.931132Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=311 entry_id=311 connection_id=306 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.931147Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=301 entry_id=301 connection_id=300 delay_ms=360000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.931163Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=312 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.931183Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=312 entry_id=312 connection_id=1106 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.931219Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=313 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.931222Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=302 slot_index=270 delay_ms=361000 [INFO] [stdout] 2026-04-23T03:20:14.931238Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=313 entry_id=313 connection_id=1006 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.931248Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=302 entry_id=302 connection_id=301 delay_ms=361000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.931278Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=314 slot_index=378 delay_ms=60000 [INFO] [stdout] test timer::parallel::tests::test_error_handling ... ok [INFO] [stdout] 2026-04-23T03:20:14.931298Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=314 entry_id=314 connection_id=1206 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.931331Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=303 slot_index=370 delay_ms=362000 [INFO] [stdout] 2026-04-23T03:20:14.931337Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=315 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.931357Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=303 entry_id=303 connection_id=302 delay_ms=362000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.931359Z 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-04-23T03:20:14.931393Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=316 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.931413Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=316 entry_id=316 connection_id=1406 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.931434Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=304 slot_index=470 delay_ms=363000 [INFO] [stdout] 2026-04-23T03:20:14.931446Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=317 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.931469Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=304 entry_id=304 connection_id=303 delay_ms=363000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.931475Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=317 entry_id=317 connection_id=1506 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.931478Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [INFO] [stdout] 2026-04-23T03:20:14.931507Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=318 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.931525Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=318 entry_id=318 connection_id=1306 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.931536Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=305 slot_index=58 delay_ms=364000 [INFO] [stdout] 2026-04-23T03:20:14.931615Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=319 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.931635Z  INFO kestrel_protocol::timer::task::handle: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.931642Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=319 entry_id=319 connection_id=1307 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.931668Z  INFO kestrel_protocol::timer::task::global: Global timer task started [INFO] [stdout] 2026-04-23T03:20:14.931694Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=1 slot_index=500 delay_ms=5000 [INFO] [stdout] 2026-04-23T03:20:14.931717Z 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-04-23T03:20:14.931792Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=2 slot_index=10 delay_ms=100 [INFO] [stdout] 2026-04-23T03:20:14.931814Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=2 entry_id=2 connection_id=1 delay_ms=100 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.931903Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=320 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.931932Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=320 entry_id=320 connection_id=1308 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.931975Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=321 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.931995Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=321 entry_id=321 connection_id=1706 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.932026Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=322 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.932043Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=322 entry_id=322 connection_id=1606 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.932070Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=323 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.932087Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=323 entry_id=323 connection_id=2106 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.932116Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=324 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.932134Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=324 entry_id=324 connection_id=1906 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.932164Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=325 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.932182Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=325 entry_id=325 connection_id=2006 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.932210Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=326 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.932229Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=326 entry_id=326 connection_id=2306 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.932256Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=327 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.932274Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=327 entry_id=327 connection_id=2506 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.932297Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=328 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.932313Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=328 entry_id=328 connection_id=2206 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.932337Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=329 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.932354Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=329 entry_id=329 connection_id=2406 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.932389Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=330 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.932407Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=330 entry_id=330 connection_id=4106 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.932435Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=331 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.932464Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=331 entry_id=331 connection_id=2706 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.932492Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=332 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.932510Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=332 entry_id=332 connection_id=2606 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.932540Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=333 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.922890Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.947947Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=119 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.947996Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=119 seq=4 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.948046Z 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: 347, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.948177Z 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: 0, 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-04-23T03:20:14.928602Z 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-04-23T03:20:14.932724Z 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-04-23T03:20:14.948737Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=89 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.948777Z 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-04-23T03:20:14.948927Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=8 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.948965Z 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-04-23T03:20:14.949077Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=90 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.949105Z 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-04-23T03:20:14.949223Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=91 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.949251Z 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-04-23T03:20:14.949362Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=92 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.949385Z 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-04-23T03:20:14.949507Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=93 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.949532Z 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-04-23T03:20:14.949665Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=94 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.949694Z 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-04-23T03:20:14.932556Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=333 entry_id=333 connection_id=2806 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.921755Z 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-04-23T03:20:14.949878Z TRACE kestrel_protocol::core::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-04-23T03:20:14.950169Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=125 seq=7 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.950191Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=125 seq=7 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.950226Z 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: 342, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.950267Z 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-04-23T03:20:14.950415Z TRACE kestrel_protocol::core::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-04-23T03:20:14.950588Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=125 seq=8 payload_len=640 state=Established [INFO] [stdout] 2026-04-23T03:20:14.950609Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=125 seq=8 payload_len=640 [INFO] [stdout] 2026-04-23T03:20:14.950636Z 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: 343, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.950668Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=125 [INFO] [stdout] 2026-04-23T03:20:14.950691Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Reassembled data, sending to stream. cid=125 count=9 [INFO] [stdout] 2026-04-23T03:20:14.950724Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=125 state=Established [INFO] [stdout] 2026-04-23T03:20:14.950825Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=25 [INFO] [stdout] 2026-04-23T03:20:14.950847Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=25 state=Established [INFO] [stdout] 2026-04-23T03:20:14.950878Z 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-04-23T03:20:14.950899Z 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-04-23T03:20:14.950926Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=126 peer_cid=26 state=Established [INFO] [stdout] 2026-04-23T03:20:14.950940Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=126 state=Established [INFO] [stdout] 2026-04-23T03:20:14.950957Z 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-04-23T03:20:14.950978Z 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-04-23T03:20:14.950999Z 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-04-23T03:20:14.951018Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=126 [INFO] [stdout] 2026-04-23T03:20:14.951035Z 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-04-23T03:20:14.951074Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.951093Z 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-04-23T03:20:14.951115Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=341 srtt_ms=341 rttvar_ms=170 rto_ms=1023 [INFO] [stdout] 2026-04-23T03:20:14.951132Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.951144Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.951165Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=126 frame=Push { header: ShortHeader { command: Push, connection_id: 126, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19" } [INFO] [stdout] 2026-04-23T03:20:14.951423Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 126, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 0, recv_next_sequence: 1 }, payload: b"\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19" } [INFO] [stdout] 2026-04-23T03:20:14.951721Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=126 seq=0 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.951743Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=126 seq=0 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.951771Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=126 remote_addr=127.0.0.1:9025 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 26, payload_length: 8, recv_window_size: 255, timestamp: 343, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\0" } [INFO] [stdout] 2026-04-23T03:20:14.951812Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=126 frame=Push { header: ShortHeader { command: Push, connection_id: 126, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19" } [INFO] [stdout] 2026-04-23T03:20:14.952079Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 126, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 1, recv_next_sequence: 1 }, payload: b"\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19" } [INFO] [stdout] 2026-04-23T03:20:14.952346Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=126 seq=1 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.952365Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=126 seq=1 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.952390Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=126 remote_addr=127.0.0.1:9025 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 26, payload_length: 8, recv_window_size: 254, timestamp: 344, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x01" } [INFO] [stdout] 2026-04-23T03:20:14.952426Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=126 frame=Push { header: ShortHeader { command: Push, connection_id: 126, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19" } [INFO] [stdout] 2026-04-23T03:20:14.934676Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=206 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.942312Z DEBUG kestrel_protocol::socket::transport::udp: Sending UDP datagram addr=127.0.0.1:56881 frame_count=1 bytes=27 [INFO] [stdout] 2026-04-23T03:20:14.944505Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=101 slots_to_advance=10 max_advance=10 current_slot=30 [INFO] [stdout] 2026-04-23T03:20:14.947788Z TRACE kestrel_protocol::timer::task::global: Batch cancelled timers using wheel batch API batch_size=10000 cancelled_count=10000 wheel_cancelled_count=10000 [INFO] [stdout] 2026-04-23T03:20:14.923590Z 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: 14, payload_length: 8, recv_window_size: 250, timestamp: 179, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.953676Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=14 recv_next_seq=0 recv_window=250 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.953702Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=14 [INFO] [stdout] 2026-04-23T03:20:14.953717Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=14 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=250 [INFO] [stdout] 2026-04-23T03:20:14.953726Z DEBUG kestrel_protocol::socket::transport::udp: Received UDP datagram and pushed to buffer addr=127.0.0.1:36316 frame_count=1 bytes=27 [INFO] [stdout] 2026-04-23T03:20:14.953752Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=5 [INFO] [stdout] 2026-04-23T03:20:14.953768Z 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-04-23T03:20:14.953800Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=326 srtt_ms=325 rttvar_ms=39 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.953817Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=38 [INFO] [stdout] 2026-04-23T03:20:14.953828Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=37 new_cwnd=38 [INFO] [stdout] 2026-04-23T03:20:14.953590Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 126, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 2, recv_next_sequence: 1 }, payload: b"\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19" } [INFO] [stdout] 2026-04-23T03:20:14.953848Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=14 frame=Ack { header: ShortHeader { command: Ack, connection_id: 14, payload_length: 8, recv_window_size: 249, timestamp: 179, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.953857Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=126 seq=2 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.953870Z 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: 14, payload_length: 8, recv_window_size: 249, timestamp: 179, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.953876Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=126 seq=2 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.953887Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=14 recv_next_seq=0 recv_window=249 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.953903Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=14 [INFO] [stdout] 2026-04-23T03:20:14.953902Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=126 remote_addr=127.0.0.1:9025 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 26, payload_length: 8, recv_window_size: 253, timestamp: 345, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x02" } [INFO] [stdout] 2026-04-23T03:20:14.953914Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=14 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=249 [INFO] [stdout] 2026-04-23T03:20:14.953933Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=6 [INFO] [stdout] 2026-04-23T03:20:14.953944Z 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-04-23T03:20:14.953963Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=356 srtt_ms=329 rttvar_ms=37 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.953976Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=39 [INFO] [stdout] 2026-04-23T03:20:14.953985Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=38 new_cwnd=39 [INFO] [stdout] 2026-04-23T03:20:14.953999Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=14 frame=Ack { header: ShortHeader { command: Ack, connection_id: 14, payload_length: 8, recv_window_size: 248, timestamp: 180, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.954016Z 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: 14, payload_length: 8, recv_window_size: 248, timestamp: 180, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.954032Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=14 recv_next_seq=0 recv_window=248 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.954047Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=14 [INFO] [stdout] 2026-04-23T03:20:14.954057Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=14 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=248 [INFO] [stdout] 2026-04-23T03:20:14.954076Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=7 [INFO] [stdout] 2026-04-23T03:20:14.954087Z 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-04-23T03:20:14.954102Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=356 srtt_ms=332 rttvar_ms=34 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.954116Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=40 [INFO] [stdout] 2026-04-23T03:20:14.954124Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=39 new_cwnd=40 [INFO] [stdout] 2026-04-23T03:20:14.954138Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=14 frame=Ack { header: ShortHeader { command: Ack, connection_id: 14, payload_length: 8, recv_window_size: 247, timestamp: 193, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.954157Z 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: 14, payload_length: 8, recv_window_size: 247, timestamp: 193, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.954172Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=14 recv_next_seq=0 recv_window=247 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.953936Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=126 frame=Push { header: ShortHeader { command: Push, connection_id: 126, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19" } [INFO] [stdout] 2026-04-23T03:20:14.954187Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=14 [INFO] [stdout] 2026-04-23T03:20:14.954208Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=14 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=247 [INFO] [stdout] 2026-04-23T03:20:14.954227Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=8 [INFO] [stdout] 2026-04-23T03:20:14.954238Z 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-04-23T03:20:14.954254Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=356 srtt_ms=335 rttvar_ms=31 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.954267Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=41 [INFO] [stdout] 2026-04-23T03:20:14.954276Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=40 new_cwnd=41 [INFO] [stdout] 2026-04-23T03:20:14.954290Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=14 [INFO] [stdout] 2026-04-23T03:20:14.954308Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=14 state=Established [INFO] [stdout] 2026-04-23T03:20:14.954353Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=15 [INFO] [stdout] 2026-04-23T03:20:14.954367Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=15 state=Established [INFO] [stdout] 2026-04-23T03:20:14.954394Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=31 [INFO] [stdout] 2026-04-23T03:20:14.954407Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=31 state=Established [INFO] [stdout] 2026-04-23T03:20:14.954432Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=16 [INFO] [stdout] 2026-04-23T03:20:14.954194Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 126, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 3, recv_next_sequence: 1 }, payload: b"\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19" } [INFO] [stdout] 2026-04-23T03:20:14.954445Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=16 state=Established [INFO] [stdout] 2026-04-23T03:20:14.954456Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=126 seq=3 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.954471Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=17 [INFO] [stdout] 2026-04-23T03:20:14.954473Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=126 seq=3 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.954485Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=17 state=Established [INFO] [stdout] 2026-04-23T03:20:14.954495Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=126 remote_addr=127.0.0.1:9025 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 26, payload_length: 8, recv_window_size: 252, timestamp: 346, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x03" } [INFO] [stdout] 2026-04-23T03:20:14.954518Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=185 slots_to_advance=18 max_advance=18 current_slot=13 [INFO] [stdout] 2026-04-23T03:20:14.954552Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=185 slots_to_advance=18 max_advance=18 current_slot=13 [INFO] [stdout] 2026-04-23T03:20:14.954611Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=18 [INFO] [stdout] 2026-04-23T03:20:14.954627Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=18 state=Established [INFO] [stdout] 2026-04-23T03:20:14.954653Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=182 slots_to_advance=18 max_advance=18 current_slot=13 [INFO] [stdout] 2026-04-23T03:20:14.954685Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=183 slots_to_advance=18 max_advance=18 current_slot=13 [INFO] [stdout] 2026-04-23T03:20:14.954717Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=181 slots_to_advance=18 max_advance=18 current_slot=13 [INFO] [stdout] 2026-04-23T03:20:14.954746Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=202 slots_to_advance=20 max_advance=20 current_slot=11 [INFO] [stdout] 2026-04-23T03:20:14.954526Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=126 frame=Push { header: ShortHeader { command: Push, connection_id: 126, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19" } [INFO] [stdout] 2026-04-23T03:20:14.954861Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=24 [INFO] [stdout] 2026-04-23T03:20:14.954878Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=24 state=Established [INFO] [stdout] 2026-04-23T03:20:14.954904Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=8 [INFO] [stdout] 2026-04-23T03:20:14.954916Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.954940Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=180 slots_to_advance=18 max_advance=18 current_slot=13 [INFO] [stdout] 2026-04-23T03:20:14.954978Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=181 slots_to_advance=18 max_advance=18 current_slot=13 [INFO] [stdout] 2026-04-23T03:20:14.955015Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=179 slots_to_advance=17 max_advance=17 current_slot=13 [INFO] [stdout] 2026-04-23T03:20:14.954799Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 126, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 4, recv_next_sequence: 1 }, payload: b"\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19" } [INFO] [stdout] 2026-04-23T03:20:14.955036Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=126 seq=4 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.955053Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=126 seq=4 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.955056Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=113 [INFO] [stdout] 2026-04-23T03:20:14.955073Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=113 state=Established [INFO] [stdout] 2026-04-23T03:20:14.955075Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=126 remote_addr=127.0.0.1:9025 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 26, payload_length: 8, recv_window_size: 251, timestamp: 346, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x04" } [INFO] [stdout] 2026-04-23T03:20:14.955102Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=179 slots_to_advance=17 max_advance=17 current_slot=13 [INFO] [stdout] 2026-04-23T03:20:14.955140Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=178 slots_to_advance=17 max_advance=17 current_slot=13 [INFO] [stdout] 2026-04-23T03:20:14.955179Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=185 slots_to_advance=18 max_advance=18 current_slot=12 [INFO] [stdout] 2026-04-23T03:20:14.955233Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=178 slots_to_advance=17 max_advance=17 current_slot=13 [INFO] [stdout] 2026-04-23T03:20:14.955272Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=177 slots_to_advance=17 max_advance=17 current_slot=13 [INFO] [stdout] 2026-04-23T03:20:14.955308Z 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-04-23T03:20:14.955104Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=126 frame=Push { header: ShortHeader { command: Push, connection_id: 126, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19" } [INFO] [stdout] 2026-04-23T03:20:14.955353Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=112 [INFO] [stdout] 2026-04-23T03:20:14.931559Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=305 entry_id=305 connection_id=304 delay_ms=364000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.955761Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=306 slot_index=158 delay_ms=365000 [INFO] [stdout] 2026-04-23T03:20:14.955842Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=306 entry_id=306 connection_id=305 delay_ms=365000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.955940Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=307 slot_index=258 delay_ms=366000 [INFO] [stdout] 2026-04-23T03:20:14.956004Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=307 entry_id=307 connection_id=306 delay_ms=366000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.956096Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=308 slot_index=358 delay_ms=367000 [INFO] [stdout] 2026-04-23T03:20:14.956157Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=308 entry_id=308 connection_id=307 delay_ms=367000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.956549Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=309 slot_index=458 delay_ms=368000 [INFO] [stdout] 2026-04-23T03:20:14.956637Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=309 entry_id=309 connection_id=308 delay_ms=368000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.956733Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=310 slot_index=46 delay_ms=369000 [INFO] [stdout] 2026-04-23T03:20:14.956795Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=310 entry_id=310 connection_id=309 delay_ms=369000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.956892Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=311 slot_index=146 delay_ms=370000 [INFO] [stdout] 2026-04-23T03:20:14.956953Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=311 entry_id=311 connection_id=310 delay_ms=370000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.953009Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=9 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.953103Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=95 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.957062Z 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-04-23T03:20:14.957086Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=312 slot_index=246 delay_ms=371000 [INFO] [stdout] 2026-04-23T03:20:14.957169Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=312 entry_id=312 connection_id=311 delay_ms=371000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.957233Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=96 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.957272Z 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-04-23T03:20:14.957321Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=313 slot_index=346 delay_ms=372000 [INFO] [stdout] 2026-04-23T03:20:14.957355Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=97 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.957363Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=313 entry_id=313 connection_id=312 delay_ms=372000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.953542Z 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-04-23T03:20:14.957537Z 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-04-23T03:20:14.957616Z 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-04-23T03:20:14.952769Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=334 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.957671Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=334 entry_id=334 connection_id=3106 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.957732Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=335 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.957766Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=335 entry_id=335 connection_id=3206 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.957810Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=336 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.957841Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=336 entry_id=336 connection_id=2906 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.957888Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=337 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.957911Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=337 entry_id=337 connection_id=3906 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.957953Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=338 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.957983Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=338 entry_id=338 connection_id=3306 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.958032Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=339 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.958064Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=339 entry_id=339 connection_id=3006 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.958103Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=340 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.958130Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=340 entry_id=340 connection_id=3406 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.958172Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=341 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.958198Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=341 entry_id=341 connection_id=3506 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.958244Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=342 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.958272Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=342 entry_id=342 connection_id=3606 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.958315Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=343 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.958343Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=343 entry_id=343 connection_id=3706 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.958386Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=344 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.958413Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=344 entry_id=344 connection_id=3806 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.958461Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=345 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.958489Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=345 entry_id=345 connection_id=4306 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.958527Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=346 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.958554Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=346 entry_id=346 connection_id=4006 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.958617Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=347 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.958645Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=347 entry_id=347 connection_id=106 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.958676Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=348 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.958700Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=348 entry_id=348 connection_id=4206 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.958737Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=349 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.958762Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=349 entry_id=349 connection_id=4506 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.958802Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=350 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.958829Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=350 entry_id=350 connection_id=4406 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.958872Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=351 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.958900Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=351 entry_id=351 connection_id=4606 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.958944Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=352 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.958974Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=352 entry_id=352 connection_id=907 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.959021Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=353 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.959048Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=353 entry_id=353 connection_id=207 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.959093Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=354 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.959124Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=354 entry_id=354 connection_id=4706 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.959171Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=355 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.959205Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=355 entry_id=355 connection_id=7 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.959258Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=356 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.959290Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=356 entry_id=356 connection_id=407 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.959332Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=314 slot_index=446 delay_ms=373000 [INFO] [stdout] 2026-04-23T03:20:14.959603Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=314 entry_id=314 connection_id=313 delay_ms=373000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.955470Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=66 slots_to_advance=6 max_advance=6 current_slot=6 [INFO] [stdout] 2026-04-23T03:20:14.953152Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.957626Z 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-04-23T03:20:14.959730Z DEBUG kestrel_protocol::core::reliability::congestion::vegas: Congestive loss detected! New ssthresh: 8, New cwnd: 8 [INFO] [stdout] 2026-04-23T03:20:14.959751Z DEBUG kestrel_protocol::core::reliability: Congestion window reduced due to retransmissions old_cwnd=16 new_cwnd=8 count=1 [INFO] [stdout] 2026-04-23T03:20:14.959777Z DEBUG kestrel_protocol::core::reliability::retransmission::rtt: RTO backoff old_rto_ms=200 new_rto_ms=400 [INFO] [stdout] 2026-04-23T03:20:14.959804Z 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: 356, sequence_number: 0, recv_next_sequence: 0 }, payload: b"rto test data" } [INFO] [stdout] 2026-04-23T03:20:14.959858Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=1 [INFO] [stdout] 2026-04-23T03:20:14.959858Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=315 slot_index=34 delay_ms=374000 [INFO] [stdout] 2026-04-23T03:20:14.959338Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=357 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.959942Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=357 entry_id=357 connection_id=609 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.959946Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=315 entry_id=315 connection_id=314 delay_ms=374000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.959633Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=10 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.955358Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 126, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 5, recv_next_sequence: 1 }, payload: b"\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19" } [INFO] [stdout] 2026-04-23T03:20:14.960162Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=119 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.960191Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=119 seq=5 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.959890Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=1 state=Established [INFO] [stdout] 2026-04-23T03:20:14.960232Z 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: 359, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.960177Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=126 seq=5 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.960394Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=126 seq=5 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.960447Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=126 remote_addr=127.0.0.1:9025 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 26, payload_length: 8, recv_window_size: 250, timestamp: 352, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.960306Z 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: 0, 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-04-23T03:20:14.960512Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=126 frame=Push { header: ShortHeader { command: Push, connection_id: 126, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19" } [INFO] [stdout] 2026-04-23T03:20:14.960608Z TRACE kestrel_protocol::core::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: 0, 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-04-23T03:20:14.960882Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=119 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.960916Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=119 seq=6 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.960949Z 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: 360, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.960842Z TRACE kestrel_protocol::core::endpoint::processing::processors: Routing frame to processor (static dispatch with type validation) processor_name="PushProcessor" frame_type=Push { header: ShortHeader { command: Push, connection_id: 126, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 6, recv_next_sequence: 1 }, payload: b"\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19" } [INFO] [stdout] 2026-04-23T03:20:14.924296Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=20 [INFO] [stdout] 2026-04-23T03:20:14.961327Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=20 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=251 [INFO] [stdout] 2026-04-23T03:20:14.961302Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=126 seq=6 payload_len=1200 state=Established [INFO] [stdout] 2026-04-23T03:20:14.961381Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=4 [INFO] [stdout] 2026-04-23T03:20:14.961411Z 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-04-23T03:20:14.961437Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=321 srtt_ms=319 rttvar_ms=51 rto_ms=526 [INFO] [stdout] 2026-04-23T03:20:14.961474Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=37 [INFO] [stdout] 2026-04-23T03:20:14.961491Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=36 new_cwnd=37 [INFO] [stdout] 2026-04-23T03:20:14.961518Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=20 frame=Ack { header: ShortHeader { command: Ack, connection_id: 20, payload_length: 8, recv_window_size: 250, timestamp: 271, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.961525Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=112 state=Established [INFO] [stdout] 2026-04-23T03:20:14.962746Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=78 slots_to_advance=7 max_advance=7 current_slot=23 [INFO] [stdout] 2026-04-23T03:20:14.960065Z 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-04-23T03:20:14.957543Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=207 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.962926Z 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-04-23T03:20:14.963035Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=208 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.963090Z 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-04-23T03:20:14.963177Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=209 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.963239Z 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-04-23T03:20:14.963326Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=210 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.963375Z 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-04-23T03:20:14.963463Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=211 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.963515Z 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-04-23T03:20:14.963625Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=212 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.963685Z 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-04-23T03:20:14.963775Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=213 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.963893Z 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-04-23T03:20:14.963973Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=214 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.963998Z 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-04-23T03:20:14.964056Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=215 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.964078Z 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-04-23T03:20:14.964133Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=216 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.964154Z 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-04-23T03:20:14.964219Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=217 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.964241Z 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-04-23T03:20:14.964296Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=218 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.964318Z 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-04-23T03:20:14.964374Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=219 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.964396Z 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-04-23T03:20:14.964457Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=220 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.964482Z 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-04-23T03:20:14.964541Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=221 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.961556Z 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: 20, payload_length: 8, recv_window_size: 250, timestamp: 271, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x05" } [INFO] [stdout] 2026-04-23T03:20:14.964660Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=20 recv_next_seq=0 recv_window=250 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.964718Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=20 [INFO] [stdout] 2026-04-23T03:20:14.964741Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=20 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=250 [INFO] [stdout] 2026-04-23T03:20:14.964779Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=5 [INFO] [stdout] 2026-04-23T03:20:14.964797Z 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-04-23T03:20:14.964817Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=358 srtt_ms=324 rttvar_ms=48 rto_ms=518 [INFO] [stdout] 2026-04-23T03:20:14.964835Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=38 [INFO] [stdout] 2026-04-23T03:20:14.964847Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=37 new_cwnd=38 [INFO] [stdout] 2026-04-23T03:20:14.964871Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=20 frame=Ack { header: ShortHeader { command: Ack, connection_id: 20, payload_length: 8, recv_window_size: 249, timestamp: 272, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.964898Z 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: 20, payload_length: 8, recv_window_size: 249, timestamp: 272, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.964917Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=20 recv_next_seq=0 recv_window=249 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.964934Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=20 [INFO] [stdout] 2026-04-23T03:20:14.964945Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=20 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=249 [INFO] [stdout] 2026-04-23T03:20:14.964966Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=6 [INFO] [stdout] 2026-04-23T03:20:14.964979Z 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-04-23T03:20:14.964995Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=361 srtt_ms=328 rttvar_ms=45 rto_ms=511 [INFO] [stdout] 2026-04-23T03:20:14.965013Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=39 [INFO] [stdout] 2026-04-23T03:20:14.965023Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=38 new_cwnd=39 [INFO] [stdout] 2026-04-23T03:20:14.965038Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=20 frame=Ack { header: ShortHeader { command: Ack, connection_id: 20, payload_length: 8, recv_window_size: 248, timestamp: 283, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.965058Z 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: 20, payload_length: 8, recv_window_size: 248, timestamp: 283, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x07" } [INFO] [stdout] 2026-04-23T03:20:14.965075Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=20 recv_next_seq=0 recv_window=248 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.965092Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=20 [INFO] [stdout] 2026-04-23T03:20:14.965103Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=20 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=248 [INFO] [stdout] 2026-04-23T03:20:14.965124Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=7 [INFO] [stdout] 2026-04-23T03:20:14.965136Z 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-04-23T03:20:14.965153Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=361 srtt_ms=333 rttvar_ms=42 rto_ms=503 [INFO] [stdout] 2026-04-23T03:20:14.965168Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=40 [INFO] [stdout] 2026-04-23T03:20:14.965178Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=39 new_cwnd=40 [INFO] [stdout] 2026-04-23T03:20:14.965204Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=20 frame=Ack { header: ShortHeader { command: Ack, connection_id: 20, payload_length: 8, recv_window_size: 247, timestamp: 284, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.965224Z 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: 20, payload_length: 8, recv_window_size: 247, timestamp: 284, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x08" } [INFO] [stdout] 2026-04-23T03:20:14.965243Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=20 recv_next_seq=0 recv_window=247 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.965260Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=20 [INFO] [stdout] 2026-04-23T03:20:14.965272Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=20 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=247 [INFO] [stdout] 2026-04-23T03:20:14.965294Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=8 [INFO] [stdout] 2026-04-23T03:20:14.965307Z 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-04-23T03:20:14.965324Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=362 srtt_ms=336 rttvar_ms=39 rto_ms=500 [INFO] [stdout] 2026-04-23T03:20:14.965339Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=41 [INFO] [stdout] 2026-04-23T03:20:14.965349Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=40 new_cwnd=41 [INFO] [stdout] 2026-04-23T03:20:14.965364Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=20 [INFO] [stdout] 2026-04-23T03:20:14.965385Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=20 state=Established [INFO] [stdout] 2026-04-23T03:20:14.965472Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=150 slots_to_advance=15 max_advance=15 current_slot=21 [INFO] [stdout] 2026-04-23T03:20:14.965515Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=142 slots_to_advance=14 max_advance=14 current_slot=22 [INFO] [stdout] 2026-04-23T03:20:14.965553Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=150 slots_to_advance=15 max_advance=15 current_slot=21 [INFO] [stdout] 2026-04-23T03:20:14.965612Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=139 slots_to_advance=13 max_advance=13 current_slot=22 [INFO] [stdout] 2026-04-23T03:20:14.965649Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=140 slots_to_advance=14 max_advance=14 current_slot=22 [INFO] [stdout] 2026-04-23T03:20:14.965686Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=139 slots_to_advance=13 max_advance=13 current_slot=22 [INFO] [stdout] 2026-04-23T03:20:14.965728Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=122 [INFO] [stdout] 2026-04-23T03:20:14.965744Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=122 state=Established [INFO] [stdout] 2026-04-23T03:20:14.965775Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=22 [INFO] [stdout] 2026-04-23T03:20:14.965790Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=22 state=Established [INFO] [stdout] 2026-04-23T03:20:14.965819Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=76 slots_to_advance=7 max_advance=7 current_slot=28 [INFO] [stdout] 2026-04-23T03:20:14.965854Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=75 slots_to_advance=7 max_advance=7 current_slot=28 [INFO] [stdout] 2026-04-23T03:20:14.965889Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=75 slots_to_advance=7 max_advance=7 current_slot=28 [INFO] [stdout] 2026-04-23T03:20:14.965922Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=74 slots_to_advance=7 max_advance=7 current_slot=28 [INFO] [stdout] 2026-04-23T03:20:14.965956Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=74 slots_to_advance=7 max_advance=7 current_slot=28 [INFO] [stdout] 2026-04-23T03:20:14.965990Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=71 slots_to_advance=7 max_advance=7 current_slot=28 [INFO] [stdout] 2026-04-23T03:20:14.966024Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=71 slots_to_advance=7 max_advance=7 current_slot=28 [INFO] [stdout] 2026-04-23T03:20:14.966058Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=77 slots_to_advance=7 max_advance=7 current_slot=27 [INFO] [stdout] 2026-04-23T03:20:14.966113Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=26 [INFO] [stdout] 2026-04-23T03:20:14.966132Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=26 state=Established [INFO] [stdout] 2026-04-23T03:20:14.966241Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=109 [INFO] [stdout] 2026-04-23T03:20:14.966260Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=109 state=Established [INFO] [stdout] 2026-04-23T03:20:14.966289Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=131 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 31 } } [INFO] [stdout] 2026-04-23T03:20:14.966309Z 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: 31 } } [INFO] [stdout] 2026-04-23T03:20:14.966328Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=131 peer_cid=31 state=Established [INFO] [stdout] 2026-04-23T03:20:14.966342Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=131 state=Established [INFO] [stdout] 2026-04-23T03:20:14.966358Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=131 frame=Ack { header: ShortHeader { command: Ack, connection_id: 131, 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-04-23T03:20:14.966377Z 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: 131, 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-04-23T03:20:14.966395Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK frame cid=131 recv_next_seq=0 recv_window=255 payload_len=8 state=Established [INFO] [stdout] 2026-04-23T03:20:14.966412Z TRACE kestrel_protocol::core::endpoint::processing::processors::ack: Handling ACK in Established state cid=131 [INFO] [stdout] 2026-04-23T03:20:14.966424Z DEBUG kestrel_protocol::core::endpoint::processing::processors::ack: Processing ACK with SACK ranges cid=131 recv_next_seq=0 sack_ranges_count=1 peer_recv_window=255 [INFO] [stdout] 2026-04-23T03:20:14.966451Z TRACE kestrel_protocol::core::reliability::retransmission::sack_manager: Checking for fast retransmission against in-flight packets highest_sacked=0 [INFO] [stdout] 2026-04-23T03:20:14.966466Z 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-04-23T03:20:14.966483Z TRACE kestrel_protocol::core::reliability::retransmission::rtt: RTT updated sample_ms=342 srtt_ms=342 rttvar_ms=171 rto_ms=1027 [INFO] [stdout] 2026-04-23T03:20:14.966499Z TRACE kestrel_protocol::core::reliability::congestion::vegas: Slow Start: cwnd increased cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.966509Z TRACE kestrel_protocol::core::reliability: Congestion window updated on ACK old_cwnd=32 new_cwnd=33 [INFO] [stdout] 2026-04-23T03:20:14.966650Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=12 slots_to_advance=1 max_advance=1 current_slot=30 [INFO] [stdout] 2026-04-23T03:20:14.966726Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=83 slots_to_advance=8 max_advance=8 current_slot=23 [INFO] [stdout] 2026-04-23T03:20:14.960141Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=316 slot_index=134 delay_ms=375000 [INFO] [stdout] 2026-04-23T03:20:14.962485Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.966891Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.966898Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=190 slots_to_advance=19 max_advance=19 current_slot=12 [INFO] [stdout] 2026-04-23T03:20:14.964605Z TRACE kestrel_protocol::timer::wheel::core: Batch added timers to timing wheel batch_size=1000 [INFO] [stdout] 2026-04-23T03:20:14.957398Z 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-04-23T03:20:14.966956Z DEBUG kestrel_protocol::timer::wheel::core: Advancing timing wheel elapsed_ms=180 slots_to_advance=18 max_advance=18 current_slot=13 [INFO] [stdout] 2026-04-23T03:20:14.967002Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=6 [INFO] [stdout] 2026-04-23T03:20:14.967020Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=6 state=Established [INFO] [stdout] 2026-04-23T03:20:14.961397Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=126 seq=6 payload_len=1200 [INFO] [stdout] 2026-04-23T03:20:14.967053Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=40 [INFO] [stdout] 2026-04-23T03:20:14.967044Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=98 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.967069Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=40 state=Established [INFO] [stdout] 2026-04-23T03:20:14.967081Z 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-04-23T03:20:14.967074Z DEBUG kestrel_protocol::core::endpoint::core::sender: Sending frames to remote address cid=126 remote_addr=127.0.0.1:9025 frame_count=1 first_frame=Ack { header: ShortHeader { command: Ack, connection_id: 26, payload_length: 8, recv_window_size: 249, timestamp: 358, sequence_number: 0, recv_next_sequence: 0 }, payload: b"\0\0\0\0\0\0\0\x06" } [INFO] [stdout] 2026-04-23T03:20:14.967097Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=104 [INFO] [stdout] 2026-04-23T03:20:14.967112Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=104 state=Established [INFO] [stdout] 2026-04-23T03:20:14.967139Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=107 [INFO] [stdout] 2026-04-23T03:20:14.967153Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=107 state=Established [INFO] [stdout] 2026-04-23T03:20:14.967179Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=102 [INFO] [stdout] 2026-04-23T03:20:14.966794Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=11 slot_index=368 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.967218Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=102 state=Established [INFO] [stdout] 2026-04-23T03:20:14.967226Z 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-04-23T03:20:14.967251Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=108 [INFO] [stdout] 2026-04-23T03:20:14.967267Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=108 state=Established [INFO] [stdout] 2026-04-23T03:20:14.967293Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=110 [INFO] [stdout] 2026-04-23T03:20:14.967307Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=110 state=Established [INFO] [stdout] 2026-04-23T03:20:14.967332Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=130 frame=Syn { header: LongHeader { command: Syn, protocol_version: 1, destination_cid: 0, source_cid: 30 } } [INFO] [stdout] 2026-04-23T03:20:14.967353Z 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: 30 } } [INFO] [stdout] 2026-04-23T03:20:14.967372Z TRACE kestrel_protocol::core::endpoint::processing::processors::connection: Processing SYN frame cid=130 peer_cid=30 state=Established [INFO] [stdout] 2026-04-23T03:20:14.967387Z  WARN kestrel_protocol::core::endpoint::processing::processors::connection: Ignoring SYN frame in unexpected state cid=130 state=Established [INFO] [stdout] 2026-04-23T03:20:14.967155Z TRACE kestrel_protocol::core::endpoint::processing::dispatcher: Processing incoming frame local_cid=126 frame=Push { header: ShortHeader { command: Push, connection_id: 126, payload_length: 1200, recv_window_size: 256, timestamp: 0, sequence_number: 7, recv_next_sequence: 1 }, payload: b"\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19" } [INFO] [stdout] 2026-04-23T03:20:14.960130Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=358 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.967452Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=358 entry_id=358 connection_id=707 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.967521Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=359 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.967544Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=359 entry_id=359 connection_id=4806 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.967598Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=360 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.967620Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=360 entry_id=360 connection_id=4906 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.967671Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=361 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.967692Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=361 entry_id=361 connection_id=507 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.967700Z 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-04-23T03:20:14.967739Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=362 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.967759Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=362 entry_id=362 connection_id=807 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.967803Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=363 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.967823Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=363 entry_id=363 connection_id=307 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.966983Z 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: 356, sequence_number: 0, recv_next_sequence: 0 }, payload: b"rto test data" } [INFO] [stdout] 2026-04-23T03:20:14.967875Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=364 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.967895Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=364 entry_id=364 connection_id=1107 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.967935Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=365 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.967954Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=365 entry_id=365 connection_id=1007 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.967991Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=366 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.968010Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=366 entry_id=366 connection_id=1207 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.968054Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=367 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.968073Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=367 entry_id=367 connection_id=1807 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.968025Z TRACE kestrel_protocol::core::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: 356, sequence_number: 0, recv_next_sequence: 0 }, payload: b"rto test data" } [INFO] [stdout] 2026-04-23T03:20:14.968146Z 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-04-23T03:20:14.968162Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Processing PUSH frame cid=2 seq=0 payload_len=13 state=Established [INFO] [stdout] 2026-04-23T03:20:14.968188Z TRACE kestrel_protocol::core::endpoint::processing::processors::data: Handling PUSH in Established state cid=2 seq=0 payload_len=13 [INFO] [stdout] 2026-04-23T03:20:14.968209Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Event handled, performing follow-up actions. cid=2 [INFO] [stdout] 2026-04-23T03:20:14.968230Z TRACE kestrel_protocol::core::endpoint::core::event_loop: Main loop waiting for event. cid=2 state=Established [INFO] [stdout] 2026-04-23T03:20:14.968230Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=222 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.968255Z 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-04-23T03:20:14.968315Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=223 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.968320Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=1 [INFO] [stdout] 2026-04-23T03:20:14.968340Z 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-04-23T03:20:14.968388Z TRACE kestrel_protocol::core::endpoint: Failed to send remove command during drop: channel closed cid=2 [INFO] [stdout] 2026-04-23T03:20:14.968397Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=224 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.968419Z 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-04-23T03:20:14.968592Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=225 slot_index=31 delay_ms=200 [INFO] [stdout] test core::tests::reliability::test_endpoint_rto_retransmission ... ok [INFO] [stdout] 2026-04-23T03:20:14.968117Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=368 slot_index=378 delay_ms=60000 [INFO] [stdout] 2026-04-23T03:20:14.968776Z TRACE kestrel_protocol::timer::task::global: Timer registered successfully event_id=368 entry_id=368 connection_id=1407 delay_ms=60000 event_type=IdleTimeout [INFO] [stdout] 2026-04-23T03:20:14.968811Z 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-04-23T03:20:14.968885Z TRACE kestrel_protocol::timer::wheel::core: Added timer to timing wheel entry_id=226 slot_index=31 delay_ms=200 [INFO] [stdout] 2026-04-23T03:20:14.968903Z TRACE mio::poll: registering event source with poller: token=Token(1), interests=READABLE [WARN] too many lines in the log, truncating it