commit | 4513f1a1c1037574bfd94b8637329246f475a534 | [log] [tgz] |
---|---|---|
author | Michael Anthony Knyszek <mknyszek@google.com> | Wed May 08 16:27:03 2024 +0000 |
committer | Michael Knyszek <mknyszek@google.com> | Wed May 08 19:04:05 2024 +0000 |
tree | 489274bdbdfe13c9bb98c04de022935dd05173d6 | |
parent | ff743ce862440f332f76a8a24333a90b7afc9fa6 [diff] |
internal/trace/v2: correctly handle a broken spilled batch Currently if the first batch of the next generation in the trace is broken, then the previous generation will fail to parse. The parser currently relies on one complete batch of the next generation to continue. However, this means that recovering a complete generation from a trace with a broken tail doesn't always work. Luckily, this is fixable. When the parser encounters an error reading a batch in a generation, it simply writes down that error and processes it later, once the generation has been handled. If it turns out the error was for the same generation and something bigger is broken, then the parser will catch that sooner when validating the generation's events and the error will never show up. Otherwise, the generation will parse through successfully and we'll emit the error once that's done. Fixes #55160. Change-Id: I9c9c19d5bb163c5225e18d11594ca2a8793c6950 Reviewed-on: https://go-review.googlesource.com/c/go/+/584275 Reviewed-by: Michael Pratt <mpratt@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
Gopher image by Renee French, licensed under Creative Commons 4.0 Attributions license.
Our canonical Git repository is located at https://go.googlesource.com/go. There is a mirror of the repository at https://github.com/golang/go.
Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.
Official binary distributions are available at https://go.dev/dl/.
After downloading a binary release, visit https://go.dev/doc/install for installation instructions.
If a binary distribution is not available for your combination of operating system and architecture, visit https://go.dev/doc/install/source for source installation instructions.
Go is the work of thousands of contributors. We appreciate your help!
To contribute, please read the contribution guidelines at https://go.dev/doc/contribute.
Note that the Go project uses the issue tracker for bug reports and proposals only. See https://go.dev/wiki/Questions for a list of places to ask questions about the Go language.