envoyproxy / envoyproxy/envoy

Defer sending in QuicConnection can't be enabled on Windows

Open
#22,976 0 comments 0 reactions 0 assignees View on GitHub
area/quic area/windows help wanted
Dominant language
C++
Stars
28.9k
Forks
5.6k
Avg merge
1d 20h
Merged PRs (30d)
428

Description

https://github.com/envoyproxy/envoy/pull/22796 enables QuicConnection defer sending on other platforms. This is an optimization to improve CPU cost in light of UDP GSO. But this QUICHE behavior change causes test failures on Windows, i.e.
```
Protocols/FilterIntegrationTest.H3PostHandshakeFailoverToTcp/IPv4_Http2Downstream_Http3UpstreamNghttp2NoDeferredProcessing
.\test/integration/server.h(484): error: Value of: TestUtility::waitForCounterEq(statStore(), name, value, time_system_, timeout, dispatcher)
Actual: false (timed out waiting for cluster.cluster_0.upstream_cx_destroy to be 2, current value 1)
Expected: true
Stack trace:
00007FF6ACD850CC: (unknown)
00007FF6ACD84FB6: (unknown)
00007FF6ACD9E258: (unknown)
00007FF6ACD9E41D: (unknown)
00007FF6ACD9EE8D: (unknown)
... Google Test internal frames ...

[2022-08-26 22:17:36.929][4684][critical][assert] [test/integration/http_integration.cc:527] assert failure: 0. Details: Timed out waiting for new connection.
```
And we never verified it can also improve CPU performance on Windows, given that Windows doesn't support GSO.

We should sort out those test failures and verify the improvement on Windows platform.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.