fix(xds): keep indexed HTTP filters within their own order band - #10063
Closed
zhaohuabing wants to merge 1 commit into
Closed
zhaohuabing wants to merge 1 commit into
zhaohuabing wants to merge 1 commit into
Conversation
Filter types that can appear several times on a listener got their order by adding the index within the type to the type's base order. Lua starts at 13 and filters the ordering does not recognize sit at 50, so a listener with 38 Lua filters sorted its last ones after those, and at 88 they reached ext_proc at 100. The same applies to ext_proc, wasm and dynamic modules. Keep the index as a separate sort key instead, compared after the order and before the name, so a type's filters can never reach the next type's position. Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> Signed-off-by: Huabing (Robin) Zhao <huabing@tetrate.io>
✅ Deploy Preview for cerulean-figolla-1f9435 ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Member
Author
|
Folding this into #10056 instead — it sits naturally with the Lua slot work that surfaced it. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #10063 +/- ##
==========================================
+ Coverage 81.31% 81.35% +0.03%
==========================================
Files 264 264
Lines 40994 40998 +4
==========================================
+ Hits 33336 33355 +19
+ Misses 7657 7642 -15
Partials 1 1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
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.
Filter types that can appear more than once on a listener get their position in the chain by adding the index within the type to the type's base order. Lua starts at 13, and a filter the ordering does not recognize gets 50, so a listener with 38 Lua filters sorts the last of them after those, and at 88 they reach ext_proc at 100. Ext_proc, wasm and dynamic modules have the same shape, with less headroom in some cases than it looks.
Keeping the index as a separate sort key, compared after the order and before the name, means a type's filters can never reach the next type's position however many of them there are. Relative ordering is unchanged for every case that fits today, so no generated configuration moves.
The new test fails without the fix at exactly the 38th Lua filter.