Repository navigation
fix(proxies): shorten refused-egress set-aside and rest slow egress - #14891
Merged
diegosouzapw merged 4 commits intoSep 28, 2026
Merged
diegosouzapw merged 4 commits into
diegosouzapw merged 4 commits into
Conversation
maxmad64bis
force-pushed
the
fix/refusal-setaside-tuning
branch
2 times, most recently
from
September 26, 2026 15:49
6a93af6 to
3162888
Compare
maxmad64bis
marked this pull request as ready for review
September 26, 2026 16:36
5 tasks done
maxmad64bis
force-pushed
the
fix/refusal-setaside-tuning
branch
from
September 28, 2026 12:30
3162888 to
3eca790
Compare
5 tasks done
Refused egresses were parked up to an hour and slow egresses never rested. Shortens the refused curve and adds a short slow curve on repeated headers-wait overruns.
maxmad64bis
force-pushed
the
fix/refusal-setaside-tuning
branch
from
September 28, 2026 17:56
3eca790 to
e8c8f9c
Compare
diegosouzapw
merged commit Sep 28, 2026
99bd98a
into
diegosouzapw:release/v3.8.51
2 of 3 checks passed
diegosouzapw
pushed a commit
that referenced
this pull request
Sep 28, 2026
The selector is now steered to pool members with no recent refusals, reusing the refusal curve from #14891 (merged first). The author's rebase changes no content (patch identical to the one already validated). Validated on the tip that includes #14891: the selector refusal-memory, refusal-memory and proxySubscription suites pass 165/165. typecheck:core, open-sse typecheck and eslint are clean; the file-size reds are inherited from the tip. Thank you @maxmad64bis!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Default change:
PROXY_QUOTA_429_BASE_MS120s → 300s,PROXY_QUOTA_429_MAX_MS3600s → 900s — a refused egress rarely recovers within minutes, while the lower cap lets a recovered member return within the quarter-hour.Repeatedly refused egresses were parked for up to an hour, and egresses stalling on response headers were never rested at all. This PR shortens the refused-egress curve to 300s → 600s → 900s and adds a short 60s/600s slow curve that sets an egress aside after three settled headers-waits in five minutes under the same opt-in flag; the pool screen labels that motive ("slow responses") instead of printing the raw kind. Three existing default tests were adapted to the new values.
Related Issues
Validation
npm run lintTests Added Or Updated
tests/unit/proxy-slow-overrun.test.ts(new): k=3/W=5min gating, lone/pair without effect, null key, flag off, expired window, served-clears-slow, 60s/600s curve, 20min purge, store size.tests/unit/proxy-refusal-memory.test.ts(adapted): curve 5/10/15/15min, purge 29/30min.tests/unit/proxy-refusal-memory-quota-tuning.test.ts(adapted): default periods and fallback expectations.tests/unit/opencode-proxy-refusal-memory.test.ts(adapted): a refused member is still set aside after the former 2-minute default and returns after 5 minutes.tests/unit/ui/PoolMemberEgressLines.test.tsx(1 new case): aslowset-aside is labelled, never printed raw.Coverage Notes
The new store counter, gated helper, and expiry call site in
open-sse/are exercised by the new slow-overrun tests, and the adapted tests pin the new default curve; the two widened reason unions are type-only with no runtime path.Reviewer Notes
open-sse/utils/proxyRefusalMemory.tswith fix(proxies): steer selector to members without recent refusals #14804 andopen-sse/executors/opencode.tswith fix(opencode): bound the opt-in Responses first-byte stall window by the stream readiness timeout #14940 (disjoint hunks) — whichever lands first, the others rebase. The one-line comment reflow inopencode.tskeeps that frozen file at its size cap.mutation-test-coverage --strictfails the same way on the release base; no file of this PR is involved. The new label key is translated in all 66 locales.Maintainer rework (merge-batch 2026-09-28)
.env.exampleso thePROXY_QUOTA_429_MAX_MSexample shows the new900000cap instead of the old3600000.release/v3.8.51into the branch (real merge, no conflicts).PoolMemberEgressLinespasses 7/7 under vitest.typecheck:core,check:open-sse-typecheck, eslint (with the suppressions file) andcheck:env-doc-syncare all clean. The twocheck-file-sizereds (SystemStorageTab.tsxandresponse-sanitizer.test.ts) are inherited from the tip; this PR does not touch either file.