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

http2: migrates DATA frame payloads to the visitor API #34278

Merged
merged 7 commits into from
May 24, 2024

Conversation

birenroy
Copy link
Contributor

@birenroy birenroy commented May 21, 2024

This slightly simplifies the flow of DATA frame payloads; after this change, the StreamDataFrameSource class can be removed.

  • Http2Visitor::OnReadyToSendDataForStream() is substantially the same implementation as StreamDataFrameSource::SelectPayloadLength().
  • Http2Visitor::SendDataFrame() is substantially the same as StreamDataFrameSource::Send().

Commit Message: http2: migrates DATA frame payloads to the visitor API
Additional Description:
Risk Level: low
Testing: ran unit and integration tests locally
Docs Changes:
Release Notes: added a note with the runtime feature to disable in case of problems
Runtime guard: envoy_reloadable_features_http2_use_visitor_for_data

Signed-off-by: Biren Roy <birenroy@google.com>
Copy link

As a reminder, PRs marked as draft will not be automatically assigned reviewers,
or be handled by maintainer-oncall triage.

Please mark your PR as ready when you want it to be reviewed!

🐱

Caused by: #34278 was opened by birenroy.

see: more, trace.

Copy link

CC @envoyproxy/runtime-guard-changes: FYI only for changes made to (source/common/runtime/runtime_features.cc).

🐱

Caused by: #34278 was opened by birenroy.

see: more, trace.

Signed-off-by: Biren Roy <birenroy@google.com>
@birenroy birenroy changed the title Migrates DATA frame payloads to the visitor API. http2: migrates DATA frame payloads to the visitor API May 21, 2024
@birenroy birenroy marked this pull request as ready for review May 21, 2024 14:58
@birenroy
Copy link
Contributor Author

/assign @diannahu
/assign @RyanTheOptimist

Copy link
Contributor

@diannahu diannahu left a comment

Choose a reason for hiding this comment

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

Nice, clear mapping for the migration! Not sure if the test results are related, but the change LGTM.

source/common/http/http2/codec_impl.cc Outdated Show resolved Hide resolved
@RyanTheOptimist
Copy link
Contributor

Is this a real failure, or a flake?

[  FAILED  ] IpVersions/Http2FrameIntegrationTest.AdjustUpstreamSettingsMaxStreams/IPv6_Nghttp2, where GetParam() = 8-byte object <01-00 00-00 00-00 00-00>

https://dev.azure.com/cncf/envoy/_build/results?buildId=171029&view=logs&jobId=767be981-567e-57d8-68c3-2140ede0a0bd&j=767be981-567e-57d8-68c3-2140ede0a0bd&t=2181edf2-f610-59f2-c43a-04bb9d0bca00

@birenroy
Copy link
Contributor Author

Is this a real failure, or a flake?

[  FAILED  ] IpVersions/Http2FrameIntegrationTest.AdjustUpstreamSettingsMaxStreams/IPv6_Nghttp2, where GetParam() = 8-byte object <01-00 00-00 00-00 00-00>

https://dev.azure.com/cncf/envoy/_build/results?buildId=171029&view=logs&jobId=767be981-567e-57d8-68c3-2140ede0a0bd&j=767be981-567e-57d8-68c3-2140ede0a0bd&t=2181edf2-f610-59f2-c43a-04bb9d0bca00

Test passes with --runs_per_test=50 when I run it. I think it's a flake, since the behavior being tested does not seem to rely on DATA frames.

Signed-off-by: Biren Roy <birenroy@google.com>
@RyanTheOptimist RyanTheOptimist enabled auto-merge (squash) May 21, 2024 18:17
@RyanTheOptimist
Copy link
Contributor

Looks like coverage has dropped. Maybe we need to add a tests where the flag is false?

Per-extension coverage failed:
Code coverage for source/common/http is lower than limit of 96.6 (96.4)
Code coverage for source/common/http/http2 is lower than limit of 95.6 (93.8)

Signed-off-by: Biren Roy <birenroy@google.com>
auto-merge was automatically disabled May 22, 2024 20:23

Head branch was pushed to by a user without write access

Signed-off-by: Biren Roy <birenroy@google.com>
Signed-off-by: Biren Roy <birenroy@google.com>
Signed-off-by: Biren Roy <birenroy@google.com>
@birenroy
Copy link
Contributor Author

/retest

@RyanTheOptimist RyanTheOptimist merged commit e92fdcc into envoyproxy:main May 24, 2024
53 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants