DNS localhost subdomain tests with AddressFamily fail on Android #124751

Description

@rzikm

Build Information

Build: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1304943
Build error leg or test failing: System.Net.NameResolution.Tests.GetHostEntryTest.DnsGetHostEntry_LocalhostSubdomain_RespectsAddressFamily, System.Net.NameResolution.Tests.GetHostAddressesTest.DnsGetHostAddresses_LocalhostSubdomain_RespectsAddressFamily

Error Message

Fill the error message using step by step known issues guidance.

{
"ErrorMessage": "LocalhostSubdomain_RespectsAddressFamily",
"ErrorPattern": "",
"BuildRetry": false,
"ExcludeConsoleLog": false
}

Description

The DnsGetHostEntry_LocalhostSubdomain_RespectsAddressFamily and DnsGetHostAddresses_LocalhostSubdomain_RespectsAddressFamily tests (introduced in PR #123076 for RFC 6761 localhost subdomain handling) consistently fail on Android CI (windows.11.amd64.android.open queue).

Error

System.Net.Sockets.SocketException : hostname nor servname provided, or not known
at System.Net.Dns.GetHostEntryOrAddressesCore(String hostName, Boolean justAddresses, AddressFamily addressFamily, ...)
at System.Net.Dns.GetHostEntryOrAddressesCore(String hostName, Boolean justAddresses, AddressFamily addressFamily, ...)
at System.Net.Dns.GetHostEntryCore(String hostName, AddressFamily addressFamily, ...)
at System.Net.Dns.GetHostEntry(String hostNameOrAddress, AddressFamily family)

Analysis

  • The tests call e.g. Dns.GetHostEntry("test.localhost", AddressFamily.InterNetwork) (or InterNetworkV6).
  • The RFC 6761 implementation tries the OS resolver for "test.localhost" first, then falls back to resolving plain "localhost" with the same AddressFamily.
  • The double GetHostEntryOrAddressesCore in the stack trace confirms the fallback triggers but also fails.
  • The fallback calls getaddrinfo("localhost", ..., ai_family) with a specific address family (AF_INET or AF_INET6). On Android, this may fail (EAI_NONAME) while getaddrinfo("localhost", ..., AF_UNSPEC) succeeds.
  • Other localhost subdomain tests that use AddressFamily.Unspecified (e.g. ReturnsLoopback) pass on Android.
  • There are no non-[OuterLoop] tests that call Dns.GetHostEntry("localhost", AddressFamily.InterNetwork) directly to confirm if family-specific localhost resolution works on Android in general.

CI Data (last 14 days, main branch)

BuildGetHostEntry failuresGetHostAddresses failures
130373533
130431211
130494322

Each Android job has exactly 1 failure per test (the test has 2 InlineData values: InterNetwork and InterNetworkV6), suggesting only one address family variant fails per run.

Console log example

https://helixr1107v0xdeko0k025g8.blob.core.windows.net/dotnet-runtime-refs-heads-main-76f79e897d5246b58a/System.Net.NameResolution.Functional.Tests/1/console.858b3560.log?helixlogtype=result

Possible fixes

  1. Fix the fallback to resolve "localhost" with AddressFamily.Unspecified and then filter results by the requested family.
  2. Investigate whether family-specific getaddrinfo("localhost", AF_INET/AF_INET6) is expected to work on Android and fix the emulator setup.

Known issue validation

Build: 🔎https://dev.azure.com/dnceng-public/public/_build/results?buildId=1304943
Error message validated:[LocalhostSubdomain_RespectsAddressFamily]
Result validation: ✅ Known issue matched with the provided build.
Validation performed at: 2/23/2026 12:30:22 PM UTC

Report

BuildDefinitionTestPull Request
1408366dotnet/runtimeSystem.Net.NameResolution.Functional.Tests.WorkItemExecution
1404759dotnet/runtimeSystem.Net.NameResolution.Functional.Tests.WorkItemExecution
1388248dotnet/runtimeSystem.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntryAsync_IPAddress_Ok#127192

Summary

24-Hour Hit Count7-Day Hit Count1-Month Count
123

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

    , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
     blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
    }
    } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
    })();
    (function(){
    try {
    var __m = "github.com";
    var __re = new RegExp('^' + "github\\.com" + '
    
    Skip to content

    DNS localhost subdomain tests with AddressFamily fail on Android #124751

    Description

    @rzikm

    Build Information

    Build: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1304943
    Build error leg or test failing: System.Net.NameResolution.Tests.GetHostEntryTest.DnsGetHostEntry_LocalhostSubdomain_RespectsAddressFamily, System.Net.NameResolution.Tests.GetHostAddressesTest.DnsGetHostAddresses_LocalhostSubdomain_RespectsAddressFamily

    Error Message

    Fill the error message using step by step known issues guidance.

    {
    "ErrorMessage": "LocalhostSubdomain_RespectsAddressFamily",
    "ErrorPattern": "",
    "BuildRetry": false,
    "ExcludeConsoleLog": false
    }

    Description

    The DnsGetHostEntry_LocalhostSubdomain_RespectsAddressFamily and DnsGetHostAddresses_LocalhostSubdomain_RespectsAddressFamily tests (introduced in PR #123076 for RFC 6761 localhost subdomain handling) consistently fail on Android CI (windows.11.amd64.android.open queue).

    Error

    System.Net.Sockets.SocketException : hostname nor servname provided, or not known
    at System.Net.Dns.GetHostEntryOrAddressesCore(String hostName, Boolean justAddresses, AddressFamily addressFamily, ...)
    at System.Net.Dns.GetHostEntryOrAddressesCore(String hostName, Boolean justAddresses, AddressFamily addressFamily, ...)
    at System.Net.Dns.GetHostEntryCore(String hostName, AddressFamily addressFamily, ...)
    at System.Net.Dns.GetHostEntry(String hostNameOrAddress, AddressFamily family)
    

    Analysis

    • The tests call e.g. Dns.GetHostEntry("test.localhost", AddressFamily.InterNetwork) (or InterNetworkV6).
    • The RFC 6761 implementation tries the OS resolver for "test.localhost" first, then falls back to resolving plain "localhost" with the same AddressFamily.
    • The double GetHostEntryOrAddressesCore in the stack trace confirms the fallback triggers but also fails.
    • The fallback calls getaddrinfo("localhost", ..., ai_family) with a specific address family (AF_INET or AF_INET6). On Android, this may fail (EAI_NONAME) while getaddrinfo("localhost", ..., AF_UNSPEC) succeeds.
    • Other localhost subdomain tests that use AddressFamily.Unspecified (e.g. ReturnsLoopback) pass on Android.
    • There are no non-[OuterLoop] tests that call Dns.GetHostEntry("localhost", AddressFamily.InterNetwork) directly to confirm if family-specific localhost resolution works on Android in general.

    CI Data (last 14 days, main branch)

    BuildGetHostEntry failuresGetHostAddresses failures
    130373533
    130431211
    130494322

    Each Android job has exactly 1 failure per test (the test has 2 InlineData values: InterNetwork and InterNetworkV6), suggesting only one address family variant fails per run.

    Console log example

    https://helixr1107v0xdeko0k025g8.blob.core.windows.net/dotnet-runtime-refs-heads-main-76f79e897d5246b58a/System.Net.NameResolution.Functional.Tests/1/console.858b3560.log?helixlogtype=result

    Possible fixes

    1. Fix the fallback to resolve "localhost" with AddressFamily.Unspecified and then filter results by the requested family.
    2. Investigate whether family-specific getaddrinfo("localhost", AF_INET/AF_INET6) is expected to work on Android and fix the emulator setup.

    Known issue validation

    Build: 🔎https://dev.azure.com/dnceng-public/public/_build/results?buildId=1304943
    Error message validated:[LocalhostSubdomain_RespectsAddressFamily]
    Result validation: ✅ Known issue matched with the provided build.
    Validation performed at: 2/23/2026 12:30:22 PM UTC

    Report

    BuildDefinitionTestPull Request
    1408366dotnet/runtimeSystem.Net.NameResolution.Functional.Tests.WorkItemExecution
    1404759dotnet/runtimeSystem.Net.NameResolution.Functional.Tests.WorkItemExecution
    1388248dotnet/runtimeSystem.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntryAsync_IPAddress_Ok#127192

    Summary

    24-Hour Hit Count7-Day Hit Count1-Month Count
    123

    Metadata

    Metadata

    Assignees

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
      Skip to content

      DNS localhost subdomain tests with AddressFamily fail on Android #124751

      Description

      @rzikm

      Build Information

      Build: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1304943
      Build error leg or test failing: System.Net.NameResolution.Tests.GetHostEntryTest.DnsGetHostEntry_LocalhostSubdomain_RespectsAddressFamily, System.Net.NameResolution.Tests.GetHostAddressesTest.DnsGetHostAddresses_LocalhostSubdomain_RespectsAddressFamily

      Error Message

      Fill the error message using step by step known issues guidance.

      {
      "ErrorMessage": "LocalhostSubdomain_RespectsAddressFamily",
      "ErrorPattern": "",
      "BuildRetry": false,
      "ExcludeConsoleLog": false
      }

      Description

      The DnsGetHostEntry_LocalhostSubdomain_RespectsAddressFamily and DnsGetHostAddresses_LocalhostSubdomain_RespectsAddressFamily tests (introduced in PR #123076 for RFC 6761 localhost subdomain handling) consistently fail on Android CI (windows.11.amd64.android.open queue).

      Error

      System.Net.Sockets.SocketException : hostname nor servname provided, or not known
      at System.Net.Dns.GetHostEntryOrAddressesCore(String hostName, Boolean justAddresses, AddressFamily addressFamily, ...)
      at System.Net.Dns.GetHostEntryOrAddressesCore(String hostName, Boolean justAddresses, AddressFamily addressFamily, ...)
      at System.Net.Dns.GetHostEntryCore(String hostName, AddressFamily addressFamily, ...)
      at System.Net.Dns.GetHostEntry(String hostNameOrAddress, AddressFamily family)
      

      Analysis

      • The tests call e.g. Dns.GetHostEntry("test.localhost", AddressFamily.InterNetwork) (or InterNetworkV6).
      • The RFC 6761 implementation tries the OS resolver for "test.localhost" first, then falls back to resolving plain "localhost" with the same AddressFamily.
      • The double GetHostEntryOrAddressesCore in the stack trace confirms the fallback triggers but also fails.
      • The fallback calls getaddrinfo("localhost", ..., ai_family) with a specific address family (AF_INET or AF_INET6). On Android, this may fail (EAI_NONAME) while getaddrinfo("localhost", ..., AF_UNSPEC) succeeds.
      • Other localhost subdomain tests that use AddressFamily.Unspecified (e.g. ReturnsLoopback) pass on Android.
      • There are no non-[OuterLoop] tests that call Dns.GetHostEntry("localhost", AddressFamily.InterNetwork) directly to confirm if family-specific localhost resolution works on Android in general.

      CI Data (last 14 days, main branch)

      BuildGetHostEntry failuresGetHostAddresses failures
      130373533
      130431211
      130494322

      Each Android job has exactly 1 failure per test (the test has 2 InlineData values: InterNetwork and InterNetworkV6), suggesting only one address family variant fails per run.

      Console log example

      https://helixr1107v0xdeko0k025g8.blob.core.windows.net/dotnet-runtime-refs-heads-main-76f79e897d5246b58a/System.Net.NameResolution.Functional.Tests/1/console.858b3560.log?helixlogtype=result

      Possible fixes

      1. Fix the fallback to resolve "localhost" with AddressFamily.Unspecified and then filter results by the requested family.
      2. Investigate whether family-specific getaddrinfo("localhost", AF_INET/AF_INET6) is expected to work on Android and fix the emulator setup.

      Known issue validation

      Build: 🔎https://dev.azure.com/dnceng-public/public/_build/results?buildId=1304943
      Error message validated:[LocalhostSubdomain_RespectsAddressFamily]
      Result validation: ✅ Known issue matched with the provided build.
      Validation performed at: 2/23/2026 12:30:22 PM UTC

      Report

      BuildDefinitionTestPull Request
      1408366dotnet/runtimeSystem.Net.NameResolution.Functional.Tests.WorkItemExecution
      1404759dotnet/runtimeSystem.Net.NameResolution.Functional.Tests.WorkItemExecution
      1388248dotnet/runtimeSystem.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntryAsync_IPAddress_Ok#127192

      Summary

      24-Hour Hit Count7-Day Hit Count1-Month Count
      123

      Metadata

      Metadata

      Assignees

      Labels

      Type

      No type

      Projects

      No projects

        Milestone

        Relationships

        None yet

        Development

        No branches or pull requests

        Issue actions

        , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
        Skip to content

        DNS localhost subdomain tests with AddressFamily fail on Android #124751

        Description

        @rzikm

        Build Information

        Build: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1304943
        Build error leg or test failing: System.Net.NameResolution.Tests.GetHostEntryTest.DnsGetHostEntry_LocalhostSubdomain_RespectsAddressFamily, System.Net.NameResolution.Tests.GetHostAddressesTest.DnsGetHostAddresses_LocalhostSubdomain_RespectsAddressFamily

        Error Message

        Fill the error message using step by step known issues guidance.

        {
        "ErrorMessage": "LocalhostSubdomain_RespectsAddressFamily",
        "ErrorPattern": "",
        "BuildRetry": false,
        "ExcludeConsoleLog": false
        }

        Description

        The DnsGetHostEntry_LocalhostSubdomain_RespectsAddressFamily and DnsGetHostAddresses_LocalhostSubdomain_RespectsAddressFamily tests (introduced in PR #123076 for RFC 6761 localhost subdomain handling) consistently fail on Android CI (windows.11.amd64.android.open queue).

        Error

        System.Net.Sockets.SocketException : hostname nor servname provided, or not known
        at System.Net.Dns.GetHostEntryOrAddressesCore(String hostName, Boolean justAddresses, AddressFamily addressFamily, ...)
        at System.Net.Dns.GetHostEntryOrAddressesCore(String hostName, Boolean justAddresses, AddressFamily addressFamily, ...)
        at System.Net.Dns.GetHostEntryCore(String hostName, AddressFamily addressFamily, ...)
        at System.Net.Dns.GetHostEntry(String hostNameOrAddress, AddressFamily family)
        

        Analysis

        • The tests call e.g. Dns.GetHostEntry("test.localhost", AddressFamily.InterNetwork) (or InterNetworkV6).
        • The RFC 6761 implementation tries the OS resolver for "test.localhost" first, then falls back to resolving plain "localhost" with the same AddressFamily.
        • The double GetHostEntryOrAddressesCore in the stack trace confirms the fallback triggers but also fails.
        • The fallback calls getaddrinfo("localhost", ..., ai_family) with a specific address family (AF_INET or AF_INET6). On Android, this may fail (EAI_NONAME) while getaddrinfo("localhost", ..., AF_UNSPEC) succeeds.
        • Other localhost subdomain tests that use AddressFamily.Unspecified (e.g. ReturnsLoopback) pass on Android.
        • There are no non-[OuterLoop] tests that call Dns.GetHostEntry("localhost", AddressFamily.InterNetwork) directly to confirm if family-specific localhost resolution works on Android in general.

        CI Data (last 14 days, main branch)

        BuildGetHostEntry failuresGetHostAddresses failures
        130373533
        130431211
        130494322

        Each Android job has exactly 1 failure per test (the test has 2 InlineData values: InterNetwork and InterNetworkV6), suggesting only one address family variant fails per run.

        Console log example

        https://helixr1107v0xdeko0k025g8.blob.core.windows.net/dotnet-runtime-refs-heads-main-76f79e897d5246b58a/System.Net.NameResolution.Functional.Tests/1/console.858b3560.log?helixlogtype=result

        Possible fixes

        1. Fix the fallback to resolve "localhost" with AddressFamily.Unspecified and then filter results by the requested family.
        2. Investigate whether family-specific getaddrinfo("localhost", AF_INET/AF_INET6) is expected to work on Android and fix the emulator setup.

        Known issue validation

        Build: 🔎https://dev.azure.com/dnceng-public/public/_build/results?buildId=1304943
        Error message validated:[LocalhostSubdomain_RespectsAddressFamily]
        Result validation: ✅ Known issue matched with the provided build.
        Validation performed at: 2/23/2026 12:30:22 PM UTC

        Report

        BuildDefinitionTestPull Request
        1408366dotnet/runtimeSystem.Net.NameResolution.Functional.Tests.WorkItemExecution
        1404759dotnet/runtimeSystem.Net.NameResolution.Functional.Tests.WorkItemExecution
        1388248dotnet/runtimeSystem.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntryAsync_IPAddress_Ok#127192

        Summary

        24-Hour Hit Count7-Day Hit Count1-Month Count
        123

        Metadata

        Metadata

        Assignees

        Labels

        Type

        No type

        Projects

        No projects

          Milestone

          Relationships

          None yet

          Development

          No branches or pull requests

          Issue actions

          , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
          Skip to content

          DNS localhost subdomain tests with AddressFamily fail on Android #124751

          Description

          @rzikm

          Build Information

          Build: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1304943
          Build error leg or test failing: System.Net.NameResolution.Tests.GetHostEntryTest.DnsGetHostEntry_LocalhostSubdomain_RespectsAddressFamily, System.Net.NameResolution.Tests.GetHostAddressesTest.DnsGetHostAddresses_LocalhostSubdomain_RespectsAddressFamily

          Error Message

          Fill the error message using step by step known issues guidance.

          {
          "ErrorMessage": "LocalhostSubdomain_RespectsAddressFamily",
          "ErrorPattern": "",
          "BuildRetry": false,
          "ExcludeConsoleLog": false
          }

          Description

          The DnsGetHostEntry_LocalhostSubdomain_RespectsAddressFamily and DnsGetHostAddresses_LocalhostSubdomain_RespectsAddressFamily tests (introduced in PR #123076 for RFC 6761 localhost subdomain handling) consistently fail on Android CI (windows.11.amd64.android.open queue).

          Error

          System.Net.Sockets.SocketException : hostname nor servname provided, or not known
          at System.Net.Dns.GetHostEntryOrAddressesCore(String hostName, Boolean justAddresses, AddressFamily addressFamily, ...)
          at System.Net.Dns.GetHostEntryOrAddressesCore(String hostName, Boolean justAddresses, AddressFamily addressFamily, ...)
          at System.Net.Dns.GetHostEntryCore(String hostName, AddressFamily addressFamily, ...)
          at System.Net.Dns.GetHostEntry(String hostNameOrAddress, AddressFamily family)
          

          Analysis

          • The tests call e.g. Dns.GetHostEntry("test.localhost", AddressFamily.InterNetwork) (or InterNetworkV6).
          • The RFC 6761 implementation tries the OS resolver for "test.localhost" first, then falls back to resolving plain "localhost" with the same AddressFamily.
          • The double GetHostEntryOrAddressesCore in the stack trace confirms the fallback triggers but also fails.
          • The fallback calls getaddrinfo("localhost", ..., ai_family) with a specific address family (AF_INET or AF_INET6). On Android, this may fail (EAI_NONAME) while getaddrinfo("localhost", ..., AF_UNSPEC) succeeds.
          • Other localhost subdomain tests that use AddressFamily.Unspecified (e.g. ReturnsLoopback) pass on Android.
          • There are no non-[OuterLoop] tests that call Dns.GetHostEntry("localhost", AddressFamily.InterNetwork) directly to confirm if family-specific localhost resolution works on Android in general.

          CI Data (last 14 days, main branch)

          BuildGetHostEntry failuresGetHostAddresses failures
          130373533
          130431211
          130494322

          Each Android job has exactly 1 failure per test (the test has 2 InlineData values: InterNetwork and InterNetworkV6), suggesting only one address family variant fails per run.

          Console log example

          https://helixr1107v0xdeko0k025g8.blob.core.windows.net/dotnet-runtime-refs-heads-main-76f79e897d5246b58a/System.Net.NameResolution.Functional.Tests/1/console.858b3560.log?helixlogtype=result

          Possible fixes

          1. Fix the fallback to resolve "localhost" with AddressFamily.Unspecified and then filter results by the requested family.
          2. Investigate whether family-specific getaddrinfo("localhost", AF_INET/AF_INET6) is expected to work on Android and fix the emulator setup.

          Known issue validation

          Build: 🔎https://dev.azure.com/dnceng-public/public/_build/results?buildId=1304943
          Error message validated:[LocalhostSubdomain_RespectsAddressFamily]
          Result validation: ✅ Known issue matched with the provided build.
          Validation performed at: 2/23/2026 12:30:22 PM UTC

          Report

          BuildDefinitionTestPull Request
          1408366dotnet/runtimeSystem.Net.NameResolution.Functional.Tests.WorkItemExecution
          1404759dotnet/runtimeSystem.Net.NameResolution.Functional.Tests.WorkItemExecution
          1388248dotnet/runtimeSystem.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntryAsync_IPAddress_Ok#127192

          Summary

          24-Hour Hit Count7-Day Hit Count1-Month Count
          123

          Metadata

          Metadata

          Assignees

          Labels

          Type

          No type

          Projects

          No projects

            Milestone

            Relationships

            None yet

            Development

            No branches or pull requests

            Issue actions

            , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
            Skip to content

            DNS localhost subdomain tests with AddressFamily fail on Android #124751

            Description

            @rzikm

            Build Information

            Build: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1304943
            Build error leg or test failing: System.Net.NameResolution.Tests.GetHostEntryTest.DnsGetHostEntry_LocalhostSubdomain_RespectsAddressFamily, System.Net.NameResolution.Tests.GetHostAddressesTest.DnsGetHostAddresses_LocalhostSubdomain_RespectsAddressFamily

            Error Message

            Fill the error message using step by step known issues guidance.

            {
            "ErrorMessage": "LocalhostSubdomain_RespectsAddressFamily",
            "ErrorPattern": "",
            "BuildRetry": false,
            "ExcludeConsoleLog": false
            }

            Description

            The DnsGetHostEntry_LocalhostSubdomain_RespectsAddressFamily and DnsGetHostAddresses_LocalhostSubdomain_RespectsAddressFamily tests (introduced in PR #123076 for RFC 6761 localhost subdomain handling) consistently fail on Android CI (windows.11.amd64.android.open queue).

            Error

            System.Net.Sockets.SocketException : hostname nor servname provided, or not known
            at System.Net.Dns.GetHostEntryOrAddressesCore(String hostName, Boolean justAddresses, AddressFamily addressFamily, ...)
            at System.Net.Dns.GetHostEntryOrAddressesCore(String hostName, Boolean justAddresses, AddressFamily addressFamily, ...)
            at System.Net.Dns.GetHostEntryCore(String hostName, AddressFamily addressFamily, ...)
            at System.Net.Dns.GetHostEntry(String hostNameOrAddress, AddressFamily family)
            

            Analysis

            • The tests call e.g. Dns.GetHostEntry("test.localhost", AddressFamily.InterNetwork) (or InterNetworkV6).
            • The RFC 6761 implementation tries the OS resolver for "test.localhost" first, then falls back to resolving plain "localhost" with the same AddressFamily.
            • The double GetHostEntryOrAddressesCore in the stack trace confirms the fallback triggers but also fails.
            • The fallback calls getaddrinfo("localhost", ..., ai_family) with a specific address family (AF_INET or AF_INET6). On Android, this may fail (EAI_NONAME) while getaddrinfo("localhost", ..., AF_UNSPEC) succeeds.
            • Other localhost subdomain tests that use AddressFamily.Unspecified (e.g. ReturnsLoopback) pass on Android.
            • There are no non-[OuterLoop] tests that call Dns.GetHostEntry("localhost", AddressFamily.InterNetwork) directly to confirm if family-specific localhost resolution works on Android in general.

            CI Data (last 14 days, main branch)

            BuildGetHostEntry failuresGetHostAddresses failures
            130373533
            130431211
            130494322

            Each Android job has exactly 1 failure per test (the test has 2 InlineData values: InterNetwork and InterNetworkV6), suggesting only one address family variant fails per run.

            Console log example

            https://helixr1107v0xdeko0k025g8.blob.core.windows.net/dotnet-runtime-refs-heads-main-76f79e897d5246b58a/System.Net.NameResolution.Functional.Tests/1/console.858b3560.log?helixlogtype=result

            Possible fixes

            1. Fix the fallback to resolve "localhost" with AddressFamily.Unspecified and then filter results by the requested family.
            2. Investigate whether family-specific getaddrinfo("localhost", AF_INET/AF_INET6) is expected to work on Android and fix the emulator setup.

            Known issue validation

            Build: 🔎https://dev.azure.com/dnceng-public/public/_build/results?buildId=1304943
            Error message validated:[LocalhostSubdomain_RespectsAddressFamily]
            Result validation: ✅ Known issue matched with the provided build.
            Validation performed at: 2/23/2026 12:30:22 PM UTC

            Report

            BuildDefinitionTestPull Request
            1408366dotnet/runtimeSystem.Net.NameResolution.Functional.Tests.WorkItemExecution
            1404759dotnet/runtimeSystem.Net.NameResolution.Functional.Tests.WorkItemExecution
            1388248dotnet/runtimeSystem.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntryAsync_IPAddress_Ok#127192

            Summary

            24-Hour Hit Count7-Day Hit Count1-Month Count
            123

            Metadata

            Metadata

            Assignees

            Labels

            Type

            No type

            Projects

            No projects

              Milestone

              Relationships

              None yet

              Development

              No branches or pull requests

              Issue actions

              , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
              Skip to content

              DNS localhost subdomain tests with AddressFamily fail on Android #124751

              Description

              @rzikm

              Build Information

              Build: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1304943
              Build error leg or test failing: System.Net.NameResolution.Tests.GetHostEntryTest.DnsGetHostEntry_LocalhostSubdomain_RespectsAddressFamily, System.Net.NameResolution.Tests.GetHostAddressesTest.DnsGetHostAddresses_LocalhostSubdomain_RespectsAddressFamily

              Error Message

              Fill the error message using step by step known issues guidance.

              {
              "ErrorMessage": "LocalhostSubdomain_RespectsAddressFamily",
              "ErrorPattern": "",
              "BuildRetry": false,
              "ExcludeConsoleLog": false
              }

              Description

              The DnsGetHostEntry_LocalhostSubdomain_RespectsAddressFamily and DnsGetHostAddresses_LocalhostSubdomain_RespectsAddressFamily tests (introduced in PR #123076 for RFC 6761 localhost subdomain handling) consistently fail on Android CI (windows.11.amd64.android.open queue).

              Error

              System.Net.Sockets.SocketException : hostname nor servname provided, or not known
              at System.Net.Dns.GetHostEntryOrAddressesCore(String hostName, Boolean justAddresses, AddressFamily addressFamily, ...)
              at System.Net.Dns.GetHostEntryOrAddressesCore(String hostName, Boolean justAddresses, AddressFamily addressFamily, ...)
              at System.Net.Dns.GetHostEntryCore(String hostName, AddressFamily addressFamily, ...)
              at System.Net.Dns.GetHostEntry(String hostNameOrAddress, AddressFamily family)
              

              Analysis

              • The tests call e.g. Dns.GetHostEntry("test.localhost", AddressFamily.InterNetwork) (or InterNetworkV6).
              • The RFC 6761 implementation tries the OS resolver for "test.localhost" first, then falls back to resolving plain "localhost" with the same AddressFamily.
              • The double GetHostEntryOrAddressesCore in the stack trace confirms the fallback triggers but also fails.
              • The fallback calls getaddrinfo("localhost", ..., ai_family) with a specific address family (AF_INET or AF_INET6). On Android, this may fail (EAI_NONAME) while getaddrinfo("localhost", ..., AF_UNSPEC) succeeds.
              • Other localhost subdomain tests that use AddressFamily.Unspecified (e.g. ReturnsLoopback) pass on Android.
              • There are no non-[OuterLoop] tests that call Dns.GetHostEntry("localhost", AddressFamily.InterNetwork) directly to confirm if family-specific localhost resolution works on Android in general.

              CI Data (last 14 days, main branch)

              BuildGetHostEntry failuresGetHostAddresses failures
              130373533
              130431211
              130494322

              Each Android job has exactly 1 failure per test (the test has 2 InlineData values: InterNetwork and InterNetworkV6), suggesting only one address family variant fails per run.

              Console log example

              https://helixr1107v0xdeko0k025g8.blob.core.windows.net/dotnet-runtime-refs-heads-main-76f79e897d5246b58a/System.Net.NameResolution.Functional.Tests/1/console.858b3560.log?helixlogtype=result

              Possible fixes

              1. Fix the fallback to resolve "localhost" with AddressFamily.Unspecified and then filter results by the requested family.
              2. Investigate whether family-specific getaddrinfo("localhost", AF_INET/AF_INET6) is expected to work on Android and fix the emulator setup.

              Known issue validation

              Build: 🔎https://dev.azure.com/dnceng-public/public/_build/results?buildId=1304943
              Error message validated:[LocalhostSubdomain_RespectsAddressFamily]
              Result validation: ✅ Known issue matched with the provided build.
              Validation performed at: 2/23/2026 12:30:22 PM UTC

              Report

              BuildDefinitionTestPull Request
              1408366dotnet/runtimeSystem.Net.NameResolution.Functional.Tests.WorkItemExecution
              1404759dotnet/runtimeSystem.Net.NameResolution.Functional.Tests.WorkItemExecution
              1388248dotnet/runtimeSystem.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntryAsync_IPAddress_Ok#127192

              Summary

              24-Hour Hit Count7-Day Hit Count1-Month Count
              123

              Metadata

              Metadata

              Assignees

              Labels

              Type

              No type

              Projects

              No projects

                Milestone

                Relationships

                None yet

                Development

                No branches or pull requests

                Issue actions

                , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
                Skip to content

                DNS localhost subdomain tests with AddressFamily fail on Android #124751

                Description

                @rzikm

                Build Information

                Build: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1304943
                Build error leg or test failing: System.Net.NameResolution.Tests.GetHostEntryTest.DnsGetHostEntry_LocalhostSubdomain_RespectsAddressFamily, System.Net.NameResolution.Tests.GetHostAddressesTest.DnsGetHostAddresses_LocalhostSubdomain_RespectsAddressFamily

                Error Message

                Fill the error message using step by step known issues guidance.

                {
                "ErrorMessage": "LocalhostSubdomain_RespectsAddressFamily",
                "ErrorPattern": "",
                "BuildRetry": false,
                "ExcludeConsoleLog": false
                }

                Description

                The DnsGetHostEntry_LocalhostSubdomain_RespectsAddressFamily and DnsGetHostAddresses_LocalhostSubdomain_RespectsAddressFamily tests (introduced in PR #123076 for RFC 6761 localhost subdomain handling) consistently fail on Android CI (windows.11.amd64.android.open queue).

                Error

                System.Net.Sockets.SocketException : hostname nor servname provided, or not known
                at System.Net.Dns.GetHostEntryOrAddressesCore(String hostName, Boolean justAddresses, AddressFamily addressFamily, ...)
                at System.Net.Dns.GetHostEntryOrAddressesCore(String hostName, Boolean justAddresses, AddressFamily addressFamily, ...)
                at System.Net.Dns.GetHostEntryCore(String hostName, AddressFamily addressFamily, ...)
                at System.Net.Dns.GetHostEntry(String hostNameOrAddress, AddressFamily family)
                

                Analysis

                • The tests call e.g. Dns.GetHostEntry("test.localhost", AddressFamily.InterNetwork) (or InterNetworkV6).
                • The RFC 6761 implementation tries the OS resolver for "test.localhost" first, then falls back to resolving plain "localhost" with the same AddressFamily.
                • The double GetHostEntryOrAddressesCore in the stack trace confirms the fallback triggers but also fails.
                • The fallback calls getaddrinfo("localhost", ..., ai_family) with a specific address family (AF_INET or AF_INET6). On Android, this may fail (EAI_NONAME) while getaddrinfo("localhost", ..., AF_UNSPEC) succeeds.
                • Other localhost subdomain tests that use AddressFamily.Unspecified (e.g. ReturnsLoopback) pass on Android.
                • There are no non-[OuterLoop] tests that call Dns.GetHostEntry("localhost", AddressFamily.InterNetwork) directly to confirm if family-specific localhost resolution works on Android in general.

                CI Data (last 14 days, main branch)

                BuildGetHostEntry failuresGetHostAddresses failures
                130373533
                130431211
                130494322

                Each Android job has exactly 1 failure per test (the test has 2 InlineData values: InterNetwork and InterNetworkV6), suggesting only one address family variant fails per run.

                Console log example

                https://helixr1107v0xdeko0k025g8.blob.core.windows.net/dotnet-runtime-refs-heads-main-76f79e897d5246b58a/System.Net.NameResolution.Functional.Tests/1/console.858b3560.log?helixlogtype=result

                Possible fixes

                1. Fix the fallback to resolve "localhost" with AddressFamily.Unspecified and then filter results by the requested family.
                2. Investigate whether family-specific getaddrinfo("localhost", AF_INET/AF_INET6) is expected to work on Android and fix the emulator setup.

                Known issue validation

                Build: 🔎https://dev.azure.com/dnceng-public/public/_build/results?buildId=1304943
                Error message validated:[LocalhostSubdomain_RespectsAddressFamily]
                Result validation: ✅ Known issue matched with the provided build.
                Validation performed at: 2/23/2026 12:30:22 PM UTC

                Report

                BuildDefinitionTestPull Request
                1408366dotnet/runtimeSystem.Net.NameResolution.Functional.Tests.WorkItemExecution
                1404759dotnet/runtimeSystem.Net.NameResolution.Functional.Tests.WorkItemExecution
                1388248dotnet/runtimeSystem.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntryAsync_IPAddress_Ok#127192

                Summary

                24-Hour Hit Count7-Day Hit Count1-Month Count
                123

                Metadata

                Metadata

                Assignees

                Labels

                Type

                No type

                Projects

                No projects

                  Milestone

                  Relationships

                  None yet

                  Development

                  No branches or pull requests

                  Issue actions