Skip to content

Configure HTTP/2 timeouts via environment - #76

Merged
wyeth930203 merged 2 commits into
DeepLink-org:mainfrom
wyeth93:agent/http2-timeout-env
Jul 27, 2026
Merged

Configure HTTP/2 timeouts via environment#76
wyeth930203 merged 2 commits into
DeepLink-org:mainfrom
wyeth93:agent/http2-timeout-env

Conversation

@wyeth93

@wyeth93 wyeth93 commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add strict PULSING_HTTP2_* timeout environment variables across ActorSystem, Connect, Python, and RustPython entry points
  • preserve explicit Http2Config precedence over environment-derived defaults
  • enforce a hard streaming deadline and surface typed RequestTimeout errors
  • document defaults, validation, precedence, and scope in English and Chinese
  • add regression coverage for environment parsing and silent streaming timeouts

Why

HTTP/2 timeouts were hard-coded, and the stream timeout was only checked when frames arrived. A silent stream could therefore remain open indefinitely and terminate without a typed timeout error.

Impact

Operators can tune remote HTTP/2 transport timeouts per process without code changes. Existing defaults remain 5s / 30s / 300s when variables are unset. Invalid or zero values fail configuration loading. Local actor asks and server handler deadlines are unchanged.

Validation

  • cargo fmt --all -- --check
  • cargo test -p pulsing-actor
  • cargo check --workspace
  • cargo clippy -p pulsing-actor --all-targets -- -D warnings
  • git diff --check

@codecov-commenter

codecov-commenter commented Jul 27, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 64.92891% with 74 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
crates/pulsing-actor/src/transport/http2/client.rs 46.55% 31 Missing ⚠️
crates/pulsing-actor/src/system/config.rs 14.28% 18 Missing ⚠️
crates/pulsing-actor/src/transport/http2/config.rs 91.74% 9 Missing ⚠️
crates/pulsing-actor/src/connect/mod.rs 50.00% 7 Missing ⚠️
crates/pulsing-rpymod/src/bindings/message.rs 0.00% 5 Missing ⚠️
crates/pulsing-rpymod/src/runtime.rs 0.00% 4 Missing ⚠️
Files with missing lines Coverage Δ
crates/pulsing-rpymod/src/runtime.rs 0.00% <0.00%> (ø)
crates/pulsing-rpymod/src/bindings/message.rs 0.00% <0.00%> (ø)
crates/pulsing-actor/src/connect/mod.rs 25.66% <50.00%> (+3.66%) ⬆️
crates/pulsing-actor/src/transport/http2/config.rs 83.21% <91.74%> (+7.51%) ⬆️
crates/pulsing-actor/src/system/config.rs 81.08% <14.28%> (-2.70%) ⬇️
crates/pulsing-actor/src/transport/http2/client.rs 59.74% <46.55%> (+3.68%) ⬆️

... and 5 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@wyeth93
wyeth93 marked this pull request as ready for review July 27, 2026 10:49
@wyeth930203
wyeth930203 merged commit 857bfa8 into DeepLink-org:main Jul 27, 2026
22 of 23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants