envoyproxy/envoy

Defer sending in QuicConnection can't be enabled on Windows

开放

#22,976 创建于 2022年9月2日

 (0 条评论) (0 个反应) (0 位负责人)C++ (5,373 个派生)batch import
area/quicarea/windowshelp wanted

仓库指标

星标
 (27,997 个星标)
PR 合并指标
 (平均合并 8天) (30 天内合并 378 个 PR)

描述

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.

贡献者指南