Skip to content
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

HTTP/3: Test abort at end of request #43183

Merged
merged 3 commits into from
Aug 19, 2022
Merged

HTTP/3: Test abort at end of request #43183

merged 3 commits into from
Aug 19, 2022

Conversation

JamesNK
Copy link
Member

@JamesNK JamesNK commented Aug 10, 2022

{
await host.StartAsync().DefaultTimeout();

for (var i = 0; i < 1000; i++)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How long does this test take? I don't think tests that run on every CI run and every developer's machines are the right place to do stress testing.

Even if this only takes a second, the road to a long-running test suite are tests like these that are needlessly repetitive. I brought all of Kestrel's 1000s of tests down from many minutes to under 30 seconds when I first moved most of them in memory. That's also why most of our timeout tests use a fake clock and ticks.

We should get this running on dedicated stress infrastructure.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It takes 1.3 seconds.

I lowered requests to 100, and it takes 0.16s.

@JamesNK JamesNK force-pushed the jamesnk/http3-abort-test branch from 547b197 to d79ee75 Compare August 12, 2022 00:57
Comment on lines +550 to +552
// Note that there is a race here on what is sent before the abort is processed.
// Abort may happen before or after response headers have been sent.
Logger.LogInformation("Server aborting.");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you want to wait until the response is received before aborting? Or are intentionally covering both cases here?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's intentional. There are other tests that wait for the response.

@JamesNK JamesNK merged commit a633e88 into main Aug 19, 2022
@JamesNK JamesNK deleted the jamesnk/http3-abort-test branch August 19, 2022 00:02
@ghost ghost added this to the 8.0-alpha1 milestone Aug 19, 2022
@amcasey amcasey added area-networking Includes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions and removed area-runtime labels Jun 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-networking Includes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants