Skip to content

feat: make ext_proc circuit breaker max_requests configurable via Helm#1884

Open
PatilHrushikesh wants to merge 4 commits into
envoyproxy:mainfrom
PatilHrushikesh:configure_max_requests
Open

feat: make ext_proc circuit breaker max_requests configurable via Helm#1884
PatilHrushikesh wants to merge 4 commits into
envoyproxy:mainfrom
PatilHrushikesh:configure_max_requests

Conversation

@PatilHrushikesh
Copy link
Copy Markdown
Contributor

@PatilHrushikesh PatilHrushikesh commented Feb 23, 2026

Description

The default Envoy circuit breaker max_requests of 1024 causes gRPC overflow errors
(ext_proc_error_gRPC_error_14{...overflow}) when many concurrent requests open gRPC
streams to the ext_proc server simultaneously.

This makes the ext_proc UDS cluster circuit breaker max_requests configurable via the
--extProcMaxRequests controller flag, exposed through the Helm chart as
controller.extProcMaxRequests. The default remains 1024, matching Envoy's built-in default.

The extensionserver.New() function signature changed to accept the new extProcMaxRequests uint32
parameter.

Related Issues/PRs (if applicable)
N/A
Special notes for reviewers (if applicable)
N/A

@PatilHrushikesh PatilHrushikesh requested a review from a team as a code owner February 23, 2026 09:17
@dosubot dosubot Bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Feb 23, 2026
@PatilHrushikesh PatilHrushikesh marked this pull request as draft February 23, 2026 09:43
@PatilHrushikesh PatilHrushikesh marked this pull request as ready for review February 23, 2026 16:14
}}, nil
}

func (s *Server) getExtProcMaxRequests() uint32 {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this getter needed? The logic in this getter is already handled in hte constructor.

@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Feb 24, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 84.43%. Comparing base (edef4c5) to head (f60a1e5).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1884   +/-   ##
=======================================
  Coverage   84.42%   84.43%           
=======================================
  Files         134      134           
  Lines       19162    19174   +12     
=======================================
+ Hits        16177    16189   +12     
  Misses       1998     1998           
  Partials      987      987           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@PatilHrushikesh PatilHrushikesh force-pushed the configure_max_requests branch 2 times, most recently from edbec4a to 49899f4 Compare February 25, 2026 12:37
@PatilHrushikesh PatilHrushikesh marked this pull request as draft February 25, 2026 19:05
@nacx
Copy link
Copy Markdown
Member

nacx commented Apr 22, 2026

Can you take a look at the failing tests?

@PatilHrushikesh
Copy link
Copy Markdown
Contributor Author

/retest

1 similar comment
@PatilHrushikesh
Copy link
Copy Markdown
Contributor Author

/retest

@PatilHrushikesh PatilHrushikesh marked this pull request as ready for review May 21, 2026 17:28
@dosubot dosubot Bot added size:M This PR changes 30-99 lines, ignoring generated files. and removed size:L This PR changes 100-499 lines, ignoring generated files. labels May 21, 2026
@PatilHrushikesh PatilHrushikesh marked this pull request as draft May 21, 2026 17:51
Signed-off-by: Hrushikesh Patil <hrushi2900@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@PatilHrushikesh PatilHrushikesh force-pushed the configure_max_requests branch from d73e120 to a22c23c Compare May 21, 2026 20:07
@PatilHrushikesh PatilHrushikesh marked this pull request as ready for review May 21, 2026 20:20
Copy link
Copy Markdown
Member

@mathetake mathetake left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why don't you just set MAXINT32 instead of adding an option? The limit could be effectively applied on the downstream/upstream side config instead of at extrproc

@PatilHrushikesh
Copy link
Copy Markdown
Contributor Author

PatilHrushikesh commented May 24, 2026

why don't you just set MAXINT32 instead of adding an option? The limit could be effectively applied on the downstream/upstream side config instead of at extrproc

This can also be done, but this will bring back upgrade failure issue, where after upgrade is cluster configuration is different which causes CDS update and streaming requests in progress are dropped by extproc

@PatilHrushikesh
Copy link
Copy Markdown
Contributor Author

/retest

@PatilHrushikesh PatilHrushikesh requested a review from nacx May 26, 2026 05:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M This PR changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants