Skip to content

[ci-scan] Skip System.Net.Sockets IPv6 tests on Android (refs #127565)#127964

Draft
github-actions[bot] wants to merge 2 commits intomainfrom
ci-scan/skip-sockets-ipv6-android-9e0af103cd1b5980
Draft

[ci-scan] Skip System.Net.Sockets IPv6 tests on Android (refs #127565)#127964
github-actions[bot] wants to merge 2 commits intomainfrom
ci-scan/skip-sockets-ipv6-android-9e0af103cd1b5980

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot commented May 8, 2026

Reasoning

Five System.Net.Sockets tests fail on Android because IPv6 loopback (::1) connectivity is unavailable in the Android emulator environment used in CI. The failures fall into two categories:

  1. DualMode connect tests (DualModeConnect_LoopbackDnsToHost_Helper, DualModeConnect_DnsEndPointToHost_Helper, DualModeConnectAsync_DnsEndPointToHost_Helper) — attempt to connect to ::1 and receive SocketException: Connection refused.
  2. Connect_Parallel_FailsOver — the parallel connect fallback test hits the same IPv6 connectivity issue.
  3. ConnectAsync_WithBuffer_SucceedsAssert.False() failure on the socket connection state, linked to the same Android emulator networking limitation.

Each annotation is scoped only to TestPlatforms.Android, matching the exact observed failure scope. Connect_Parallel_FailsOver already had an [ActiveIssue] for iOS/tvOS/MacCatalyst (#124079); a separate [ActiveIssue] line is added for the Android issue (#127565) to keep the two trackers distinct.

KBE verification (4-question check):

  1. ✅ Tracker System.Net.Sockets IPv6 dual-mode tests fail on Android with Connection refused #127565 describes the same tests — DualMode IPv6 socket tests on Android.
  2. ✅ The tracker's description matches the same failure signatureSocketException: Connection refused on ::1.
  3. ✅ The failing OS (Android) matches the tracker's stated scope.
  4. ✅ The failing architecture (arm64) matches the tracker's stated scope.

Impact on platforms

  • runtime-extra-platforms (def 154) · android-arm64 CoreCLR · Ubuntu.2204.Amd64.Android.29.Open · no stress · exit code 1
    • DualModeConnect_LoopbackDnsToHost_HelperConnection refused ::1:80
    • DualModeConnect_DnsEndPointToHost_HelperConnection refused ::1:80
    • DualModeConnectAsync_DnsEndPointToHost_HelperConnection refused ::1:80
    • Connect_Parallel_FailsOverConnection refused
    • ConnectAsync_WithBuffer_SucceedsAssert.False() Failure

Errors log

[FAIL] System.Net.Sockets.Tests.DualModeConnectToHostString.DualModeConnect_LoopbackDnsToHost_Helper
System.Net.Sockets.SocketException : Connection refused [::1]:80

[FAIL] System.Net.Sockets.Tests.SocketAsyncEventArgsTest.Connect_Parallel_FailsOver(preferIPv6: True)
System.Net.Sockets.SocketException : Connection refused

[FAIL] System.Net.Sockets.Tests.SocketBlockingModeTransitionTests.ConnectAsync_WithBuffer_Succeeds
Assert.False() Failure
Expected: False
Actual:   True

First build it occurred

runtime-extra-platforms build 1411505 — finished 2026-05-07. Also present in latest build 1413202. ≥2 occurrences in the scanned window. Note: this is computed within the ~10-build scan window and may not be the true origin.

Linked issue

Linked tracker: #127565

Note

🔒 Integrity filter blocked 2 items

The following items were blocked because they don't meet the GitHub integrity level.

  • #114222 search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #124716 search_pull_requests: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".

To allow these resources, lower min-integrity in your GitHub frontmatter:

tools:
  github:
    min-integrity: approved  # merged | approved | unapproved | none

Generated by CI Outer-Loop Failure Scanner · ● 116.3M ·

IPv6 loopback (::1) connectivity is not available in the Android
emulator environment. This causes DualMode connect tests and the
ConnectAsync_WithBuffer_Succeeds test to fail with Connection refused
or unexpected socket state.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
kotlarmilos added a commit that referenced this pull request May 8, 2026
…27961)

## Description

Refines the `ci-failure-scan` agentic-workflow prompt to address failure
modes seen in past runs:

- Generic `ErrorMessage` signatures (bare test names, exception types,
or truncated prefixes) that match `[PASS]` / `[SKIP]` lines for the same
test and turn the KBE into a false-positive matcher against passing
builds.
- Malformed JSON fences (4-backtick opens, mismatched fence lengths,
multiple skeletons in one body) that cause Build Analysis to silently
skip the issue.
- Issues filed under the `Known Build Error` label with no JSON block at
all, so nothing matches future failures.
- Muting PRs that link to a non-existent issue number or duplicate an
in-flight fix authored by a maintainer (because the search was scoped
too narrowly to `[ci-scan]` PRs).
- Muting PRs opened against issues whose area owners had already
provided a PR
- Wrong-KBE links where the candidate KBE matched only on test name but
was filed against a different architecture / failure signature.

## Changes

The body of `.github/workflows/ci-failure-scan.md` is reorganized into a
clear walk-through:

1. **Two-pass KBE → PR flow** is now a numbered six-step pre-flight walk
(existing KBE / area tracker / muting PR / in-flight fix PR / issue
resolves / mute is welcome) followed by an explicit action selection
(file KBE, open muting PR, optionally open fix PR).
2. **KBE-match verification** — four questions (test, signature, OS,
architecture) the agent must answer before linking an existing KBE.
Wrong answers mean filing a fresh KBE rather than reusing the wrong one.
3. **Body checks** — eight explicit checks on the issue body covering
the JSON fence, exact ```json opening, single-line/no-escapes signature,
and a negative-match test against `[PASS]` / `[SKIP]` and build-time
output.
4. **Bad → Good** examples for both signature shape (bare test name,
truncated prefix, bare exception type) and platform/csproj scope
(`linux-arm`-only, single-arch NativeAOT, single stress mode).
5. Coverage-discipline section trimmed to its unique contribution
(pipeline ordering, per-pipeline tally, run summary). Redundant `Submit`
section removed — its content is now covered by the numbered walk.

## Test run results

Workflow run
[25570821336](https://github.com/dotnet/runtime/actions/runs/25570821336)
was dispatched against this branch (commit `3cd6399dd70`,
pre-Copilot-fixup) and completed successfully (~28 min). Outputs:

| # | Type | Title | Linked tracker |
|---|---|---|---|
| [#127963](#127963) | PR (draft)
| `[ci-scan] Skip AsyncProfilerTests on Android and tvOS` | #127951 |
| [#127964](#127964) | PR (draft)
| `[ci-scan] Skip System.Net.Sockets IPv6 tests on Android` | #127565 |
| [#127965](#127965) | Issue
(KBE) | `[ci-scan] Known Build Error: System.Net.NameResolution
DnsGetHostAddresses_LocalhostSubdomainWithTrailingDot fails on Android`
| new |
| [#127966](#127966) | Issue
(regression) | `[ci-scan] Test failure: XslCompiledTransformApiTests (82
tests) on all NativeAOT legs — PlatformNotSupportedException
(Reflection.Emit)` | new |
| [#127967](#127967) | PR (draft)
| `[ci-scan] Exclude Vector3Interop from GC stress` | #127827 |

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants