seed_gateway_terminated_listener binds 0.0.0.0:9997 (IPv4 only) — TFGrid Web Gateway cannot reach backend via mycelium IPv6 #55
Labels
No labels
prio_critical
prio_low
type_bug
type_contact
type_issue
type_lead
type_question
type_story
type_task
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lhumina_code/hero_proxy#55
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The s152 D-28 seed function
seed_gateway_terminated_listeneratcrates/hero_proxy_server/src/db.rs:1312callsadd_listener(\"0.0.0.0:9997\", ...)which binds IPv4-only.TFGrid Web Gateway routes traffic to backends specified by URL. When the backend is on a tenant VM the gateway reaches it via mycelium overlay (IPv6 ULA). With hero_proxy bound to
0.0.0.0:9997, the gateway cannot establish a TCP connection to the mycelium IPv6 backend — every public request returns HTTP 502 Bad Gateway from the upstream.Reproduced live at s158:
deploy_webgatewaysucceeded substrate-side, gateway URL resolved with valid TLS, but every request returned 502 because the backendhttp://[mycelium_ip]:9997was unreachable. Workaround: manually add[::]:9998listener vialistener.addadmin RPC and redeploy gateway with backend on:9998. Confirmed working — public URL https://hcockpit.gent01.qa.grid.tf/hero_cockpit/web/services returns HTTP 200 with the IPv6 listener.Fix: change the seed bind from
0.0.0.0:9997to[::]:9997(dual-stack — accepts both IPv4-mapped IPv6 and native IPv6 on Linux whenIPV6_V6ONLY=false, which is the default for hyper/axum).This unblocks every Hero OS TFGrid deploy from needing the manual IPv6 listener workaround.
Closed by hero_proxy
7a4aa68—seed_gateway_terminated_listener()atdb.rs:1318now binds[::]:9997dual-stack instead of IPv4-only0.0.0.0:9997. Removes the s158 manual:9998workaround listener. Direct-push squash did not trigger auto-close. 39/39 hero_proxy_server unit tests pass.