Uh oh!
There was an error while loading. Please reload this page.
[release/6.0] [QUIC] Add QuicStream.WaitForWriteCompletionAsync - #58415
Conversation
ghost
commented
Aug 31, 2021
Note regarding the This serves as a reminder for when your PR is modifying a ref *.cs file and adding/modifying public APIs, to please make sure the API implementation in the src *.cs file is documented with triple slash comments, so the PR reviewers can sign off that change. |
ghost
commented
Aug 31, 2021
Tagging subscribers to this area: @dotnet/ncl |
adityamandaleeka
commented
Aug 31, 2021
Thanks @JamesNK |
@JamesNK there is Quic test failure (see log) in test And another in log in test runtime-staging and installer failures seem to be unrelated, rerunning them. |
karelz
commented
Aug 31, 2021
The 2 Mock test failures are suspicious -- they didn't fail anywhere else in last 2 months (not in official runs nor in PRs). |
JamesNK
commented
Aug 31, 2021
I can reproduce the failure locally. The problem is the I'll do the same in the main branch PR. |
e7622b4 to
966e2ccComparegeoffkizer
commented
Aug 31, 2021
Risk here is low. This is a new API and the code to implement it is mostly additive and should not impact existing code paths. |
danmoseley
commented
Aug 31, 2021
Approved for release/6.0. Significant bug fix for key .NET 6 feature. Minimal risk to other features. Privately tested by ASP.NET. @karelz I assume you are supportive. approved from my end. |
danmoseley
commented
Aug 31, 2021
@steveisok note the timeout of the tvOSSimulator. It looks like of the tests, after ~50 mins. |
steveisok
commented
Aug 31, 2021
The typical tvOS build step should be about an hour and a half, so I would guess we got a slower osx hosted pool machine. As for helix, the times vary wildly (between 15-30 min usually) and it looks like this run was lengthy. I don't know if we constitute it as a long pole. The build is definitely impacted by the machine we get from the hosted pool. |
danmoseley
commented
Aug 31, 2021
@MattGal would this be a case of "a mysterious slow mac" ? |
MattGal
commented
Aug 31, 2021
Will look and add it to my list. We're hoping today to be able to send some builds into their test pool where performance might be more measurable. |
@danmoseley I added the build to the IcM, but here's something I hadn't realized previously. Despite the (always almost 2 hour) build stage being maybe a 20% more time than a few other runs I looked at, investigating this made me realize two important things that someone with area expertise should be asked to consider:
... having the same condition on building test projects as sending to Helix could really save some time. All that said, this bit makes me still want the macOS team to consider it; uploading to the storage account from this agent just went into a black hole (if it had finished uploading the payloads for this run it'd log a correlation id): Since it spent 55 minutes doing ? (My guess: very slow Azure storage uploads of your very large payloads) |
MattGal
commented
Aug 31, 2021
@steveisok / @jaredpar tagging you about the seemingly unnecessary generation of several gigs of .apps. |
steveisok
commented
Aug 31, 2021
Good find. That is something we should fix. |
directhex
commented
Sep 1, 2021
Trying out a "don't build needless tests" PR in #58511 |
Backport of #58236 to release/6.0
Fixes#58229
/cc @JamesNK
Customer Impact
Canceled and aborted HTTP/3 requests in certain states don't have a way to tell Kestrel that they have ended. A request that a client has aborted could continue on on the server, taking up memory and other resources. A client could accidentally or maliciously use up memory on the server by starting and canceling many requests.
This PR adds an API that Kestrel can use to correctly be notified of client cancellation. When cancellation or abort happens then Kestrel will notify the current request that it should stop.
Note: System.Net.Quic is internal in .NET 6. Its only users are HttpClient and Kestrel.
Testing
The changes have been integrated with Kestrel in a draft PR. We have verified that the problem is fixed.
Also, unit testing in System.Net.Quic solution.
Risk
Low. This is a change in System.Net.Quic. It will only be used by new code in .NET 6 for HTTP/3. Additionally, this is a change that shouldn't impact HttpClient at all because HttpClient won't use it.
Risk to existing H3 functionality is low. This is a new API and the code to implement it is mostly additive and should not impact existing code paths.
@adityamandaleeka@karelz