Repository navigation
Conversation
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #6977 +/- ##
=======================================
Coverage 49.93% 49.93%
=======================================
Files 443 443
Lines 55498 55496 -2
Branches 8095 8095
=======================================
Hits 27711 27711
+ Misses 25864 25862 -2
Partials 1923 1923
*This pull request uses carry forward flags. Click here to find out more.
Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|
4 tasks done
dbbvitor
added a commit
to dbbvitor/feast
that referenced
this pull request
Oct 8, 2026
Route the MCP --host through withBindHost, so mcpServer.dualStack renders :: instead of 0.0.0.0. The MCP server itself needs feast mcp --host :: support (feast-dev#6977). Signed-off-by: dbbvitor <vitor.diniz@gympass.com>
ntkathole
added a commit
that referenced
this pull request
Oct 9, 2026
* feat: Add dualStack server option to the Feast operator Add a DualStack field to ServerConfigs that binds server processes to the IPv6 wildcard address instead of 0.0.0.0, so they also accept IPv4 clients on dual-stack or IPv6-only clusters. Online and offline servers use the bracketed [::] form required by gunicorn and Arrow Flight; ui, lineage, and registry keep their existing behavior or use the bare :: form uvicorn expects. The registry server always binds dual-stack and ignores this setting. Signed-off-by: dbbvitor <vitor.diniz@gympass.com> * test: Cover -h boundary positions in withBindHost Mutation testing found survivors in withBindHost's loop bounds: an -h flag as the very last argument (no value to replace) and one as the first argument were both untested edge cases. Signed-off-by: dbbvitor <vitor.diniz@gympass.com> * fix: Let the registry opt out of its dual-stack REST bind The registry's REST server binds dual-stack by default in the SDK CLI. Render -h 0.0.0.0 only when the shared DualStack field is explicitly set to false, so nil/true keep today's dual-stack default instead of silently going IPv4-only. Signed-off-by: dbbvitor <vitor.diniz@gympass.com> * chore: Refresh secrets baseline timestamp to match master Only the generated_at metadata field diverged from master, which was enough for GitHub to report this PR as unmergeable and apparently skip queuing CI. No scan content changed. Signed-off-by: dbbvitor <vitor.diniz@gympass.com> * fix(operator): Make default registry REST to IPv4 and dualStack opt-in Make unset or false dualStack render an explicit 0.0.0.0 host flag. Only dualStack=true selects the bare IPv6 wildcard, aligning registry REST defaults with other host-flag servers. Signed-off-by: dbbvitor <vitor.diniz@gympass.com> * feat: Bind the standalone MCP server dual-stack with dualStack Route the MCP --host through withBindHost, so mcpServer.dualStack renders :: instead of 0.0.0.0. The MCP server itself needs feast mcp --host :: support (#6977). Signed-off-by: dbbvitor <vitor.diniz@gympass.com> --------- Signed-off-by: dbbvitor <vitor.diniz@gympass.com> Co-authored-by: Nikhil Kathole <nikhilkathole2683@gmail.com>
ntkathole
force-pushed
the
feat/mcp-dual-stack
branch
from
October 9, 2026 07:28
a85785f to
bd07723
Compare
ntkathole
force-pushed
the
feat/mcp-dual-stack
branch
from
October 9, 2026 07:48
bd07723 to
53b793b
Compare
ntkathole
approved these changes
Oct 9, 2026
ntkathole
force-pushed
the
feat/mcp-dual-stack
branch
from
October 9, 2026 08:37
53b793b to
0779d7a
Compare
feast mcp now takes --host :: and serves IPv4 and IPv6: a pre-bound dual-stack socket for uvicorn (as for ui and lineage), [::] for gunicorn. Signed-off-by: dbbvitor <vitor.diniz@gympass.com>
ntkathole
force-pushed
the
feat/mcp-dual-stack
branch
from
October 9, 2026 09:11
0779d7a to
c6418f6
Compare
This branch has not been deployed
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.
What this PR does / why we need it:
feast mcp --host ::did not serve IPv4 and IPv6 clients correctly:uvicorn.run(host="::")makes asyncio setIPV6_V6ONLY=1, so the server becomes IPv6-only and silently drops IPv4 clients. It now pre-binds a dual-stack socket withfeast.utils._make_dual_stack_socket, the same approach fix: Bind metrics, REST registry, ui, and lineage servers dual-stack #6886 used for the ui and lineage servers.--workers): the bind string wasf"{host}:{port}", so::produced the invalid:::8000. A new_gunicorn_bind()turns::into[::](dual-stack; checked with a real gunicorn serving127.0.0.1and::1), or0.0.0.0where IPv6 is unavailable.The default host stays
0.0.0.0; nothing changes unless--host ::(orserver.host: "::"infeast_mcp.yaml) is set. Docs updated.The Operator half (rendering
--host ::formcpServer.dualStack: true) is a separate follow-up that depends on #6887.Which issue(s) this PR fixes:
Part of #6862 (don't let this auto-close the issue on merge).
Checks
git commit -s)Testing Strategy
Misc
New unit tests in
sdk/python/tests/unit/mcp/test_dual_stack.py(uvicorn dual-stack socket, the plain-run fallback for other hosts, and four gunicorn bind cases).