Skip to content

[release/7.0-rc1] HTTP/3 flaky test retries and logging #43423

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

Merged
merged 2 commits into from
Aug 25, 2022

Conversation

JamesNK
Copy link
Member

@JamesNK JamesNK commented Aug 20, 2022

Address various pipeline failures:

More retries will hopefully remove one set of failures. More logging to find solutions for others in the future. System.Net.Quic team is still making changes, so it can be a source of instability.

Test only changes.

@JamesNK JamesNK changed the title HTTP/3 flaky test retries and logging [release/7.0-rc1] HTTP/3 flaky test retries and logging Aug 20, 2022
Copy link
Contributor

@dougbu dougbu left a comment

Choose a reason for hiding this comment

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

I'm liking this better than my #43422. Lemme know if there's anything I should keep there beyond the StreamPool_StreamAbortedOnClientAndServer_NotPooled retry. See also #43410 in case that also overlaps these fixes.

@@ -421,6 +421,8 @@ public async Task StreamPool_StreamAbortedOnClient_NotPooled()
public async Task StreamPool_StreamAbortedOnClientAndServer_NotPooled()
{
// Arrange
using var httpEventSource = new HttpEventSourceListener(LoggerFactory);
Copy link
Contributor

Choose a reason for hiding this comment

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

unreferenced❔

Copy link
Member Author

Choose a reason for hiding this comment

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

Correct. It registers an event source in the constructor and removes it on dispose. Since no one uses it, it could be changed to:

using var _ = new HttpEventSourceListener(LoggerFactory);

But I'd prefer to do that in a separate PR to remove them all at once. Personally, I'm happy leaving it as is.

@@ -7,6 +7,8 @@ namespace Microsoft.AspNetCore.Testing;

public static class ServerRetryHelper
{
private const int RetryCount = 15;
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: There's no delay in the loop below beyond connection timeouts. Suggest going higher if I'm right that address in use normally causes an almost-immediate failure.

@@ -228,6 +228,8 @@ public async Task GET_ServerStreaming_ClientReadsPartialResponse(HttpProtocols p
public async Task POST_ClientSendsOnlyHeaders_RequestReceivedOnServer(HttpProtocols protocol)
{
// Arrange
using var httpEventSource = new HttpEventSourceListener(LoggerFactory);
Copy link
Contributor

Choose a reason for hiding this comment

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

Unreferenced❔

@dougbu dougbu mentioned this pull request Aug 21, 2022
@dougbu
Copy link
Contributor

dougbu commented Aug 25, 2022

Any reason this hasn't been checked in @adityamandaleeka @JamesNK

@JamesNK
Copy link
Member Author

JamesNK commented Aug 25, 2022

Waiting on @adityamandaleeka approval 🙏

@adityamandaleeka
Copy link
Member

Sorry, I hadn't seen this one. Approved, test-only changes.

@adityamandaleeka adityamandaleeka merged commit 84b8f80 into release/7.0-rc1 Aug 25, 2022
@adityamandaleeka adityamandaleeka deleted the jamesnk/http3-flaky-test branch August 25, 2022 00:30
@JamesNK
Copy link
Member Author

JamesNK commented Aug 25, 2022

I forgot to add you 😄

@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
halter73 pushed a commit to halter73/AspNetCore that referenced this pull request Nov 20, 2024
* HTTP/3 flaky test retries and logging

* Rewrite retry helper to get ports via binding port to 0
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