Skip to content

Fix/sustained load death spiral#41

Merged
FumingPower3925 merged 3 commits intomainfrom
fix/sustained-load-death-spiral
Mar 9, 2026
Merged

Fix/sustained load death spiral#41
FumingPower3925 merged 3 commits intomainfrom
fix/sustained-load-death-spiral

Conversation

@FumingPower3925
Copy link
Contributor

No description provided.

- Replace MSG_PEEK-based protocol detection with inline detection in
  handleRecv, fixing 20x slowdown on arm64 where MSG_PEEK behaves
  differently. Detection now happens on first received data, matching
  epoll's approach.

- Remove dead code: prepRecvPeek, udPeek, msgPeek, handlePeek.

- Eliminate per-DATA-frame map allocation in FlushWindowUpdates by
  writing WINDOW_UPDATE frames directly while iterating pending updates.

- Lower windowUpdateThreshold from 16384 to 1024 so small bodies (4KB)
  get timely flow control credits on multiplexed connections.

- Clean up pendingStreamUpdates in DeleteStream to prevent unbounded
  map growth over long-lived connections.
@FumingPower3925 FumingPower3925 self-assigned this Mar 9, 2026
@FumingPower3925 FumingPower3925 merged commit 20f9e24 into main Mar 9, 2026
8 checks passed
@FumingPower3925 FumingPower3925 deleted the fix/sustained-load-death-spiral branch March 9, 2026 14:30
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.

1 participant