-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[8.0] Guard against empty Accept address #108334
base: release/8.0-staging
Are you sure you want to change the base?
Conversation
Tagging subscribers to this area: @dotnet/ncl |
/backport to main |
Started backporting to main: https://github.com/dotnet/runtime/actions/runs/11221178118 |
Friendly reminder that today 10/14 is Code Complete for the November Release. If this fix is intended to be included in that release, please make sure it's merged before 4pm PT. Otherwise, it will have to wait until next month. |
@wfurt I finally come around to test this. We have two tests in https://github.com/zeroc-ice/ice that where hitting this issue pretty often when run with IPv6 and both are working fine with this branch. We are also hitting this issue with GitHub macOS runners, for a different project https://github.com/icerpc/icerpc-csharp/actions/runs/11842033975/job/32999706878 Pretty annoying because it brings the test host process down:
|
it seems like we have enough evidence to proceed with servicing request @karelz |
Regression in 8.0 (LTS) against 7.0. Impact on customers - crash, without a workaround. |
Backports #108616
Fixes #108026 and #102663
Customer Impact
There is problem in 8.0+ when
Socket.Accept
can fail and throw exception on background thread on macOS, which leads to application termination. This was already reported by 2 customers who upgraded to 8.0 from previous LTS 6.0 - see #108026 and #102663.Regression
Prior 8.0 we used internal duplicate of class
SocketAddress
that was apparently more forgiving in certain corner cases. We switch in 8.0 to ussage of public API that is more strict.Testing
The fix was merged to main and verified by customer. Also 8.0 binaries were tested in their lab. See #108334 (comment) for details.
Risk
Low. The fix basically checks for error condition to avoid throwing. It seems like the condition is coming from Darwin kernel where sometime
accept
operation fails to provide remote address.