MultiSubnetFailover parallel connect fails if one address errors immediately (managed SNI)
Maintainer thường phản hồi trong vòng 2 ngày
Đánh giá
Issue này chưa được đánh giá.
Mô tả
Describe the bug
With MultiSubnetFailover=true, managed SNI (SniTcpHandle.ParallelConnect) connects to all resolved addresses in parallel. If one address fails immediately on Socket.Connect (any error other than WouldBlock, e.g. HostUnreachable, NetworkUnreachable, AddressFamilyNotSupported), the exception escapes the loop:
- The whole connection fails, even when another address is reachable.
- Sockets already created are not disposed.
Common case: a host resolves to IPv4 + IPv6, and the client has no IPv6 route (containers, VPNs, some cloud networks).
This matters more once MSF is on by default (#4876, #4927).
To reproduce
Call ParallelConnect with [<unreachable address>, 127.0.0.1] where a listener is on the loopback port. It throws instead of returning the loopback socket.
Expected behavior
Skip addresses that fail immediately, keep trying the rest, and dispose every non-selected socket on all exit paths.
Further technical details
Microsoft.Data.SqlClient: main
.NET: 10.0 (managed SNI; Unix, or Windows with managed networking)
- Ngôn ngữ chính
- C#
- Star
- 1k
- Fork
- 352
- Merge trung bình
- 4 ngày 12 giờ
- Pull request đã merge (30 ngày)
- 87
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của dotnet/SqlClient
-
Sync ExecuteReader on an STA thread deadlocks against a StateChange handler that marshals to the UI thread (OpenAsyncRetry path)Có thể làm lại được @mdaigle đã nhận 42 ngày trước và không có pull request nào đang mở. Đang mởExternal :link:
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
dotnet/SqlClient#4534 · 2 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Tests | Additional test casesĐang mởArea\Tests
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
dotnet/SqlClient#4377 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 62/100
dotnet/SqlClient#4957 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 54/100
Maintainer thường phản hồi trong vòng 2 ngày
-
Approval Needed Code Health :pill: Common Project 🚮 Design Review Needed Up-for-Grabs :raised_hands:
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
dotnet/SqlClient#4940 · 1 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 2 ngày
Tất cả issue của dotnet/SqlClient
Issue tương tự
-
امکان انتخاب متن پیام هرزنامهĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
MahdiyarGHD/GheychiApp#39 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug effort:S P3
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
nightscout/nocturne#3136 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Исправить опечатки в протоколеĐang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 76/100
GameShowLDA/AskMkiM#1075 ·
Maintainer thường phản hồi trong vòng 1 ngày