fix(supervisor-middleware): configure HTTP/2 keepalive on middleware gRPC channel - #5
fix(supervisor-middleware): configure HTTP/2 keepalive on middleware gRPC channel#5letv1nnn wants to merge 1 commit into
Conversation
Review: does this solve NVIDIA#2474?Yes for the core fix. The four keepalive settings requested in the issue's Proposed Fix are applied to the middleware
Placed on the builder before the TLS branch, so both Gaps vs. the issue
VerdictCorrect, minimal, matches the house pattern. Solves the stated issue. Fix the test-checkbox claim before merge; file a follow-up for the |
|
@coderabbitai full review |
✅ Action performedFull review finished. Your included review limit is currently reached under our Fair Usage Limits Policy. This review may still proceed through usage-based billing if eligible. Your next included review will be available in 49 minutes. |
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughWalkthroughChangesRemote middleware connection
Estimated code review effort: 1 (Trivial) | ~5 minutes Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
|
@coderabbitai review |
✅ Action performedReview finished.
|
There was a problem hiding this comment.
🧹 Nitpick comments (1)
crates/openshell-supervisor-middleware/src/remote.rs (1)
33-37: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winAdd a regression test for the endpoint settings.
The builder chain matches
crates/openshell-core/src/grpc_client.rs:125-145and covers both HTTP and HTTPS paths. Add an endpoint-configuration test for the four settings, or uncheck the completed unit-test checklist item.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@crates/openshell-supervisor-middleware/src/remote.rs` around lines 33 - 37, Add a regression test for the endpoint builder configuration in the relevant remote client setup, covering http2_keep_alive_interval, keep_alive_while_idle, keep_alive_timeout, and http2_adaptive_window for both HTTP and HTTPS paths, matching the existing grpc_client endpoint test pattern; otherwise remove the completed unit-test checklist indication.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@crates/openshell-supervisor-middleware/src/remote.rs`:
- Around line 33-37: Add a regression test for the endpoint builder
configuration in the relevant remote client setup, covering
http2_keep_alive_interval, keep_alive_while_idle, keep_alive_timeout, and
http2_adaptive_window for both HTTP and HTTPS paths, matching the existing
grpc_client endpoint test pattern; otherwise remove the completed unit-test
checklist indication.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 1360a6e6-a9f2-4ceb-bd3e-b572cb12de57
📒 Files selected for processing (1)
crates/openshell-supervisor-middleware/src/remote.rs
…gRPC channel Signed-off-by: Artem Lytvyn <alytvyn@redhat.com>
dc3b339 to
5c87d01
Compare
Summary
The middleware gRPC channel was the only long-lived client in the repo without HTTP/2 keepalive config. Without it, idle connections are silently reaped by intermediaries and dead peers go undetected until the next evaluation attempt.
This is a prerequisite for NVIDIA#2428 (WebSocket middleware), where long-lived bidirectional streams make a stale connection session-fatal rather than a single-retry inconvenience.
Related Issue
NVIDIA#2474
Changes
http2_keep_alive_interval,keep_alive_while_idle,keep_alive_timeout, andhttp2_adaptive_windowto the Endpoint builder incrates/openshell-supervisor-middleware/src/remote.rs. The configuration is the same as in thecrates/openshell-core/src/grpc_client.rsgRPC channel builder.Testing
mise run pre-commitpassesChecklist
Summary by CodeRabbit