Skip to content

Quic Connect fails with weird error when connecting to IPv6 and AF not available  #74053

@wfurt

Description

@wfurt

I bump to if while investigating some CI test failures. The repro machine (ARM64) did not have IPv6 configured so in the container I see

root@182754f0e955:/# ifconfig -a
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.3  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:ac:11:00:03  txqueuelen 0  (Ethernet)
        RX packets 14994  bytes 123227032 (117.5 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 12147  bytes 693509 (677.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1  (Local Loopback)
        RX packets 1764271  bytes 813818841 (776.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1764271  bytes 813818841 (776.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Then running test,

    System.Net.Quic.Tests.MsQuicTests.ConnectWithCertificateForLoopbackIP_IndicatesExpectedError(ipString: "::1", expectsError: True) [FAIL]
      System.Net.Quic.QuicException : An internal error has occurred. Status code: Unknown (0x63)
      Stack Trace:
        /home/furt/github/wfurt-runtime/src/libraries/System.Net.Quic/src/System/Net/Quic/QuicConnection.cs(460,0): at System.Net.Quic.QuicConnection.HandleEventShutdownInitiatedByTransport(_SHUTDOWN_INITIATED_BY_TRANSPORT_e__Struct& data)
        /home/furt/github/wfurt-runtime/src/libraries/System.Net.Quic/src/System/Net/Quic/QuicConnection.cs(517,0): at System.Net.Quic.QuicConnection.HandleConnectionEvent(QUIC_CONNECTION_EVENT& connectionEvent)
        /home/furt/github/wfurt-runtime/src/libraries/System.Net.Quic/src/System/Net/Quic/QuicConnection.cs(551,0): at System.Net.Quic.QuicConnection.NativeCallback(QUIC_HANDLE* connection, Void* context, QUIC_CONNECTION_EVENT* connectionEvent)
        --- End of stack trace from previous location ---

error 0x63 -> EADDRNOTAVAIL. We should be able to handle it and provide reasonable exception. (similar to TCP)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions