Fix DevTunnel health check for auto-selected regions - #19230
Fix DevTunnel health check for auto-selected regions#19230Vladyslav Danilchuk (Vladipz) wants to merge 3 commits into
Conversation
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 19230Or
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 19230" |
|
@microsoft-github-policy-service agree |
|
I'm also suffering with this issue and this fix might solve it. However, sharing two things that might be relevant here:
|
Thanks, this is helpful context. Explicitly setting This change addresses that case by using the cluster-qualified tunnel ID returned by |
Damian Edwards (DamianEdwards)
left a comment
There was a problem hiding this comment.
Found one qualified-ID compatibility gap in the startup path.
PR #19230 Testing ReportPR information
Artifact verificationThe PR's common The normal Windows dogfood installation could not be used because the workflow Behavior verificationCurrent behaviorA disposable tunnel created with an unqualified ID returned a qualified ID from
The bare-ID query later succeeded after propagation for a tunnel in the account's Regression testThe new
PR package end-to-endTwo fresh file-based AppHosts used the PR package:
The complete Review finding
Other observations
ResultThe health-check change is correct and fixes the claimed access-query failure, |
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
Thanks, this makes sense. I preserved the cluster-qualified ID returned by |
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
PR Testing ReportPR Information
Artifact Version Verification
The installed PR artifact's embedded commit matches the PR head. Test Environment
Test ScenariosScenario 1: Focused DevTunnel regression testsStatus: PASS Ran the four startup and health-check tests that exercise explicit and auto-selected regions:
Result: 4 passed, 0 failed. Scenario 2: Fresh auto-selected-region AppHostStatus: PASS Started a fresh anonymous DevTunnel without specifying a region.
This exercised the changed production path end to end: Aspire created the tunnel with a bare ID, captured the qualified ID returned by the DevTunnel service, created the port, and completed the tunnel health check. Scenario 3: Existing-tunnel restartStatus: PASS Stopped and restarted the same AppHost so Aspire encountered the existing tunnel and exercised its update/recreation path.
Scenario 4: Bare versus qualified per-port access lookupStatus: PASS, with changed upstream behavior Compared direct per-port access-list calls against the same live tunnel:
DevTunnel CLI Scenario 5: Explicit
|
| Scenario | Status | Notes |
|---|---|---|
| PR artifact/version verification | PASS | Installed artifact matches PR head |
| Focused regression tests | PASS | 4/4 passed |
| Fresh auto-region E2E | PASS | Qualified ID captured; tunnel and port healthy |
| Existing-tunnel restart | PASS | Update/recreation path healthy on new port |
| Bare/qualified access comparison | PASS | Both accepted by current DevTunnel CLI |
| Explicit-region control | BLOCKED | Regional endpoint treated logged-in client as anonymous before changed logic ran |
Overall Result
PR VERIFIED for the changed auto-selected-region behavior.
The exact production scenario targeted by the PR passed with the PR artifact, including a restart. No PR regression was found. The explicit-region control remains inconclusive because the regional DevTunnel service rejected tunnel creation before the relevant code path.
Cleanup
- Explicit-region AppHost stopped successfully.
- Auto-region AppHost stopped successfully.
- Test tunnel
tunnel-2f17adde.aue01deleted successfully.
Description
Fixes #18790
When a DevTunnel region is selected automatically,
devtunnel showresolvesthe bare tunnel ID and returns a cluster-qualified ID. Per-port access queries
require that qualified form.
Use the returned tunnel ID for tunnel and port access queries.
Checklist