commit | 2d4dfb4eda22e8217ee3e7af618cba9de80752a3 | [log] [tgz] |
---|---|---|
author | Eli Lipsitz <elipsitz@pigweed.infra.roller.google.com> | Tue Aug 20 21:24:22 2024 +0000 |
committer | CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue Aug 20 21:24:22 2024 +0000 |
tree | a8acc3876468c85abfc6ae7e17f48080061f43ad | |
parent | abd2456cf05a44c8d319d4ae912afd69db552010 [diff] |
roll: pigweed, pw_toolchain: pw_grpc: Skip HTTP2 frame payload for frames that result in stream reset When receiving invalid frames from a client, some errors result in stream reset (force closure), and some errors result in connection closure. If the error only results in stream reset, the rest of the frames sent in the connection should be readable by the server. This means that the entire frame should be skipped over, with normal connection processing happening after. Previously, the code did not skip past the payload for DATA and HEADERS frames that resulted in a stream-reset error. Thus, when continuing to process the connection, the payload of the frame would be interpreted as the header of the next frame, resulting in a cascade of failures. This commit fixes the issue by ensuring that, for frames with a payload, the payload is skipped when encountering a stream-reset error. For errors that result in a connection error (GOAWAY), there are no changes. Test: Set up a situation where the client sends a DATA frame with a Test: payload on a stream that the server has already closed. Test: Observe that the server recognizes this is data for a closed Test: stream, and that subsequent frames are received and interpreted Test: correctly. Original-Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/230951 https://pigweed.googlesource.com/pigweed/pigweed pigweed, pw_toolchain Rolled-Commits: 7e7c141c8808200..821e313b4756e1d Roller-URL: https://ci.chromium.org/b/8739051093813627025 GitWatcher: ignore CQ-Do-Not-Cancel-Tryjobs: true Change-Id: Id27d4ca09e3bfd31e3ac5c644a49b34d7099692b Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/showcase/sense/+/230876 Bot-Commit: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com> Lint: Lint 🤖 <android-build-ayeaye@system.gserviceaccount.com> Commit-Queue: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com>
git clone https://pigweed.googlesource.com/pigweed/showcase/sense
Welcome to Pigweed Sense, a tour of key Pigweed components experienced through an imagined air quality product.
Please visit Sense: An interactive tour through Pigweed to get started.