-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[release/6.0] Stop enforcing JSON read till end if EndInvokeJS returns early
#39075
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
) * mono_crash.*.blob * Stop enforcing read till end if EndInvoke returns early * Tests * Test name change * Fix tests * PR Feedback @pranavkm
|
Hi @TanayParikh. If this is not a tell-mode PR, please make sure to follow the instructions laid out in the servicing process document. |
|
This won't meet the bar for a patch. |
|
Might I expect it to land on the next patch along with other fixes though ? |
|
Hi @GerkinDev. It looks like you just commented on a closed PR. The team will most probably miss it. If you'd like to bring something important up to their attention, consider filing a new issue and add enough details to build context. |
At this point we are not planning on patching this for 6.0 due to limited user reports and the fact that this isn't a regression for .NET 5. We'll keep monitoring the issue and reassess should this start impacting a larger number of users. |
|
Hi @TanayParikh. Please make sure you've updated the PR description to use the Shiproom Template. Also, make sure this PR is not marked as a draft and is ready-to-merge. To learn more about how to prepare a servicing PR click here. |
|
Bringing this in for 6.0 patch consideration given the regressing behavior reported in #39087. |
|
@dotnet/aspnet-build can this please be merged. |
Stop enforcing JSON read till end if
EndInvokeJSreturns earlyDescription
We don't want to enforce we've read till the end of the JSON if we've just abandoned the
EndInvokeJScall entirely due to the task timing out or getting cancelled. If we abandoned theEndInvokeJScall, we know we haven't read till the end of the JSON payload (and that's expected), hence we shouldn't be throwing a JSON exception in that case.Fixes #39087, #38962, #34267
Backports #39060
Customer Impact
If the user calls for
OpenReadStream, but before processing the stream request, .NET cancels, then the JSON exception is thrown, fatally crashing the circuit & application. End user must reload the page to continue. This scenario can be triggered via the following sample code.Exception details
Regression?
This is a regression from .NET 5. In .NET 6 we completely overhauled the underlying streaming mechanism which resulted in this edge case regression.
Risk
We're no longer throwing an exception that the payload is unread in the event that a JSInterop call is called. When a JSInterop call is cancelled, we don't expect the payload to be read, so an exception is unnecessary.
Verification
Packaging changes reviewed?