-
Notifications
You must be signed in to change notification settings - Fork 10.4k
Don't call close if connect does not succeed #14114
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
Conversation
|
||
expect(connectComplete).toBe(false); | ||
|
||
TestWebSocket.webSocket.onclose(new TestEvent()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: might be nice to test this with an ErrorEvent.
src/SignalR/clients/ts/signalr/tests/ServerSentEventsTransport.test.ts
Outdated
Show resolved
Hide resolved
Why the |
To not scare Doug 😛 Also, because 3.0 isn't ready for patch work. |
@BrennanConroy put the servicing goop in (Customer Impact, a brief description, risk, etc.) |
@anurse Done, if you'd like to wordsmith it a bit (since you're better at that than I am) go for it. |
eng/PatchConfig.props
Outdated
@@ -70,4 +70,9 @@ Later on, this will be checked using this condition: | |||
Microsoft.AspNetCore.SpaServices; | |||
</PackagesInPatch> | |||
</PropertyGroup> | |||
<PropertyGroup Condition=" '$(VersionPrefix)' == '3.0.1' "> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🥇
Approved by Tactics for 3.0 servicing. Please |
Yeah, I'm working on those branding updates -- an expansion of aspnet/AspNetCore-Internal#3153 that I started on last night |
85a82bd
to
8cf0301
Compare
Branches are ✔ Open ✔ for 3.0.1 changes. Since this is approved and has the patch config goop. This can be merged when ready (and builds are green). |
Note: People who can merge, don't do so without talking to me first please. Need to verify the runtime is updated etc. |
This comment was made automatically. If there is a problem contact [email protected]. I've triaged the above build. I've created/commented on the following issue(s) |
8cf0301
to
4834b15
Compare
Guys, whatsup with this issue - it's really hitting us hard because we have firewalls without WebSocket-Support! |
If you know that WebSockets are not supported you can set the supported transports on your hub endpoint so clients don't even try to use WebSockets See the |
@DNF-SaS It'll be fixed in the upcoming 3.0.1 patch. The date is TBD as there are some blocking issues we are working to resolve but we are working on getting out as quickly as possible. It'll also be fixed in the 3.1 release scheduled by the end of the year. I know this is a bad one, we're working on getting a fix out ASAP. My recommendation for now would be to hold the update to 3.0 if you're affected by this. Watch the .NET Blog for a post when the 3.0.1 patch is available. |
It wasn't immediately clear to me where to set this up exactly. Should anyone else struggle in the time until 3.0.1, this worked for me as temp workaround in app.UseEndpoints(endpoints =>
{
endpoints.MapBlazorHub(options =>
{
options.Transports = HttpTransportType.LongPolling;
});
endpoints.MapFallbackToPage("/_Host");
}); |
Fixes #14075
Description
There is a race when falling back from WebSockets to other transports that will prevent fallback from working. This code was refactored in 3.0 which caused this regression. When a WebSocket connection failed to start, the WebSocket transport code would signal both that the connection failed to start and that the connection was closed. This would cause a race in the SignalR logic and if the wrong path wins the race, the connection is closed entirely instead of falling back to other transports.
Customer Impact
In situations where an intermediary (i.e. not the client, and not the app server) doesn't support WebSockets, the client may fail to connect where previously it would have fallen back to a different transport. Generally this wouldn't have a huge impact except that by default Azure App Service has an intermediary that doesn't support WebSockets. It can be enabled by users, but many customers don't enable it or don't wish to enable it. It is also a regression of a core functionality of SignalR (fallback) in 3.0.
Regression?
Yes, regression in 3.0 from the 2.2 behavior
Risk
Low, added test coverage to prevent this kind of issue in the future