[protobuf] proto: wrap un/marshal error with full name

22 views
Skip to first unread message

Tomasz Janiszewski (Gerrit)

unread,
May 15, 2025, 5:43:55 AMMay 15
to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com

Tomasz Janiszewski has uploaded the change for review

Commit message

proto: wrap un/marshal error with full name

This PR wraps un/marshal errors with message and field metadata.
If field could not be obtained then message full name is used
in other case the full name of the field is used as it also
contains the message name.

Example error:
```
failed to unmarshal "opaque.goproto.proto.test3.TestAllTypes.singular_bytes":
string field contains invalid UTF-8
```
Fixes:
- https://github.com/golang/protobuf/issues/1228
Signed-off-by: Tomasz Janiszewski <to...@redhat.com>
Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
Signed-off-by: Tomasz Janiszewski <to...@redhat.com>

Change diff

diff --git a/internal/impl/decode.go b/internal/impl/decode.go
index e0dd21f..077469c 100644
--- a/internal/impl/decode.go
+++ b/internal/impl/decode.go
@@ -5,6 +5,7 @@
package impl

import (
+ "fmt"
"math/bits"

"google.golang.org/protobuf/encoding/protowire"
@@ -218,7 +219,7 @@
}
if err != nil {
if err != errUnknown {
- return out, err
+ return out, wrapUnmarshalErrorForField(err, mi.Desc, f)
}
n = protowire.ConsumeFieldValue(num, wtyp, b)
if n < 0 {
@@ -245,6 +246,16 @@
return out, nil
}

+func wrapUnmarshalErrorForField(err error, desc protoreflect.MessageDescriptor, f *coderFieldInfo) error {
+ if err == nil {
+ return nil
+ }
+ if f == nil || desc.Fields() != nil && int(f.num) >= desc.Fields().Len() {
+ return fmt.Errorf("failed to unmarshal %q: %w", desc.FullName(), err)
+ }
+ return fmt.Errorf("failed to unmarshal %q: %w", desc.Fields().Get(int(f.num)).FullName(), err)
+}
+
func (mi *MessageInfo) unmarshalExtension(b []byte, num protowire.Number, wtyp protowire.Type, exts map[int32]ExtensionField, opts unmarshalOptions) (out unmarshalOutput, err error) {
x := exts[int32(num)]
xt := x.Type()
diff --git a/internal/impl/encode.go b/internal/impl/encode.go
index b2e2122..1f24895 100644
--- a/internal/impl/encode.go
+++ b/internal/impl/encode.go
@@ -5,6 +5,7 @@
package impl

import (
+ "fmt"
"math"
"sort"
"sync/atomic"
@@ -12,6 +13,7 @@
"google.golang.org/protobuf/internal/flags"
"google.golang.org/protobuf/internal/protolazy"
"google.golang.org/protobuf/proto"
+ "google.golang.org/protobuf/reflect/protoreflect"
piface "google.golang.org/protobuf/runtime/protoiface"
)

@@ -196,7 +198,7 @@

b, err = f.funcs.marshal(b, fptr, f, opts)
if err != nil {
- return b, err
+ return b, wrapMarshalErrorForField(err, mi.Desc, f.num)
}
continue
} else if f.isPointer && fptr.Elem().IsNil() {
@@ -204,7 +206,7 @@
}
b, err = f.funcs.marshal(b, fptr, f, opts)
if err != nil {
- return b, err
+ return b, wrapMarshalErrorForField(err, mi.Desc, f.num)
}
continue
}
@@ -214,7 +216,7 @@
}
b, err = f.funcs.marshal(b, fptr, f, opts)
if err != nil {
- return b, err
+ return b, wrapMarshalErrorForField(err, mi.Desc, f.num)
}
}
if mi.unknownOffset.IsValid() && !mi.isMessageSet {
@@ -225,6 +227,16 @@
return b, nil
}

+func wrapMarshalErrorForField(err error, desc protoreflect.MessageDescriptor, num protoreflect.FieldNumber) error {
+ if err == nil {
+ return nil
+ }
+ if int(num) >= desc.Fields().Len() {
+ return fmt.Errorf("failed to marshal %q: %w", desc.FullName(), err)
+ }
+ return fmt.Errorf("failed to marshal %q: %w", desc.Fields().Get(int(num)).FullName(), err)
+}
+
// fullyLazyExtensions returns true if we should attempt to keep extensions lazy over size and marshal.
func fullyLazyExtensions(opts marshalOptions) bool {
// When deterministic marshaling is requested, force an unmarshal for lazy
diff --git a/internal/impl/lazy.go b/internal/impl/lazy.go
index c7de31e..4bd9447 100644
--- a/internal/impl/lazy.go
+++ b/internal/impl/lazy.go
@@ -115,7 +115,7 @@
continue
}
if err != errUnknown {
- return err
+ return wrapUnmarshalErrorForField(err, mi.Desc, f)
}
}
n := protowire.ConsumeFieldValue(num, wtyp, b)
@@ -356,7 +356,8 @@
}
if err != nil {
if err != errUnknown {
- return out, err
+ return out, wrapUnmarshalErrorForField(err, mi.Desc, f)
+
}
n = protowire.ConsumeFieldValue(num, wtyp, b)
if n < 0 {

Change information

Files:
  • M internal/impl/decode.go
  • M internal/impl/encode.go
  • M internal/impl/lazy.go
Change size: S
Delta: 3 files changed, 30 insertions(+), 6 deletions(-)
Open in Gerrit

Related details

Attention set is empty
Submit Requirements:
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Signed-off-by-Footer
  • requirement satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
  • requirement is not satisfiedTryBots-Pass
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: newchange
Gerrit-Project: protobuf
Gerrit-Branch: master
Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
Gerrit-Change-Number: 673075
Gerrit-PatchSet: 1
Gerrit-Owner: Tomasz Janiszewski <tjan...@redhat.com>
unsatisfied_requirement
satisfied_requirement
open
diffy

Gopher Robot (Gerrit)

unread,
May 15, 2025, 5:46:32 AMMay 15
to Tomasz Janiszewski, goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com

Message from Gopher Robot

Congratulations on opening your first change. Thank you for your contribution!

Next steps:
A maintainer will review your change and provide feedback. See
https://go.dev/doc/contribute#review for more info and tips to get your
patch through code review.

Most changes in the Go project go through a few rounds of revision. This can be
surprising to people new to the project. The careful, iterative review process
is our way of helping mentor contributors and ensuring that their contributions
have a lasting impact.

Open in Gerrit

Related details

Attention set is empty
Submit Requirements:
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Signed-off-by-Footer
  • requirement satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
  • requirement is not satisfiedTryBots-Pass
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: protobuf
Gerrit-Branch: master
Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
Gerrit-Change-Number: 673075
Gerrit-PatchSet: 1
Gerrit-Owner: Tomasz Janiszewski <tjan...@redhat.com>
Gerrit-CC: Gopher Robot <go...@golang.org>
Gerrit-Comment-Date: Thu, 15 May 2025 09:46:27 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
unsatisfied_requirement
satisfied_requirement
open
diffy

Tomasz Janiszewski (Gerrit)

unread,
May 15, 2025, 8:59:12 AMMay 15
to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com

Tomasz Janiszewski uploaded new patchset

Tomasz Janiszewski uploaded patch set #2 to this change.
Open in Gerrit

Related details

Attention set is empty
Submit Requirements:
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Signed-off-by-Footer
  • requirement satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
  • requirement is not satisfiedTryBots-Pass
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: newpatchset
Gerrit-Project: protobuf
Gerrit-Branch: master
Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
Gerrit-Change-Number: 673075
Gerrit-PatchSet: 2
unsatisfied_requirement
satisfied_requirement
open
diffy

Michael Stapelberg (Gerrit)

unread,
May 16, 2025, 10:04:08 AMMay 16
to Tomasz Janiszewski, goph...@pubsubhelper.golang.org, Damien Neil, Gopher Robot, golang-co...@googlegroups.com
Attention needed from Damien Neil and Tomasz Janiszewski

Michael Stapelberg added 2 comments

Patchset-level comments
File-level comment, Patchset 2 (Latest):
Michael Stapelberg . resolved

Thank you for your contribution!

File internal/impl/encode.go
Line 201, Patchset 2 (Latest): return b, wrapMarshalErrorForField(err, mi.Desc, f)
Michael Stapelberg . unresolved

By changing `impl.MessageInfo.marshalAppendPointer`, you are only updating the fast path, but not the slow path (similar for unmarshaling).

I think you need to change `proto.MarshalOptions.marshal()` instead, which is the central point for marshaling.

There, you’ll only have access to the message name, not the individual field, but I think wrapping should happen in two places: the code that generates the field-related error should include the field’s name, and the message name is included in `proto.MarshalOptions.marshal()`

Open in Gerrit

Related details

Attention is currently required from:
  • Damien Neil
  • Tomasz Janiszewski
Submit Requirements:
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Signed-off-by-Footer
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    • requirement is not satisfiedTryBots-Pass
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: protobuf
    Gerrit-Branch: master
    Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
    Gerrit-Change-Number: 673075
    Gerrit-PatchSet: 2
    Gerrit-Owner: Tomasz Janiszewski <tjan...@redhat.com>
    Gerrit-Reviewer: Damien Neil <dn...@google.com>
    Gerrit-Reviewer: Michael Stapelberg <stape...@google.com>
    Gerrit-CC: Gopher Robot <go...@golang.org>
    Gerrit-Attention: Damien Neil <dn...@google.com>
    Gerrit-Attention: Tomasz Janiszewski <tjan...@redhat.com>
    Gerrit-Comment-Date: Fri, 16 May 2025 14:03:59 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    unsatisfied_requirement
    open
    diffy

    Damien Neil (Gerrit)

    unread,
    May 16, 2025, 12:30:58 PMMay 16
    to Tomasz Janiszewski, goph...@pubsubhelper.golang.org, Michael Stapelberg, Gopher Robot, golang-co...@googlegroups.com
    Attention needed from Tomasz Janiszewski

    Damien Neil added 4 comments

    File internal/impl/decode.go
    Line 222, Patchset 2 (Latest): return out, wrapUnmarshalErrorForField(err, mi.Desc, f)
    Damien Neil . unresolved

    This is going to annotate every error produced during decoding a field.

    Most decode errors are produced by passing the wrong data to the decoder. For example, passing a text-format data rather than a wire-format to Unmarshal. Since the protobuf wire format has very little in the way of internal consistency checks, ascribing this error to a specific field is likely to be misleading.

    (See also Joe's comment here: https://github.com/golang/protobuf/issues/1228#issuecomment-714798874)

    While it may be reasonable to mention specific fields in UTF-8 validation errors, I suspect that doing so for other errors will add significantly more confusing than it will solve.

    Line 254, Patchset 2 (Latest): return fmt.Errorf("failed to unmarshal message %q: %w", desc.Fields().Get(int(f.num)).FullName(), err)
    Damien Neil . unresolved

    All errors returned in the protobuf module should be constructed by the internal/errors package, which adds a common error prefix among other things.

    Line 254, Patchset 2 (Latest): return fmt.Errorf("failed to unmarshal message %q: %w", desc.Fields().Get(int(f.num)).FullName(), err)
    Damien Neil . unresolved

    This change should include a test which demonstrates the exact text of the new errors.

    File internal/impl/encode.go
    Line 235, Patchset 2 (Latest): return fmt.Errorf("failed to marshal message %q: %w", desc.Fields().Get(int(f.num)).FullName(), err)
    Damien Neil . unresolved

    All errors returned in the protobuf module should be constructed by the internal/errors package, which adds a common error prefix among other things.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Tomasz Janiszewski
    Submit Requirements:
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Signed-off-by-Footer
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    • requirement is not satisfiedTryBots-Pass
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: protobuf
    Gerrit-Branch: master
    Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
    Gerrit-Change-Number: 673075
    Gerrit-PatchSet: 2
    Gerrit-Owner: Tomasz Janiszewski <tjan...@redhat.com>
    Gerrit-Reviewer: Damien Neil <dn...@google.com>
    Gerrit-Reviewer: Michael Stapelberg <stape...@google.com>
    Gerrit-CC: Gopher Robot <go...@golang.org>
    Gerrit-Attention: Tomasz Janiszewski <tjan...@redhat.com>
    Gerrit-Comment-Date: Fri, 16 May 2025 16:30:53 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    unsatisfied_requirement
    open
    diffy

    Tomasz Janiszewski (Gerrit)

    unread,
    May 19, 2025, 12:55:19 PMMay 19
    to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com
    Attention needed from Tomasz Janiszewski

    Tomasz Janiszewski uploaded new patchset

    Tomasz Janiszewski uploaded patch set #3 to this change.
    Open in Gerrit

    Related details

    Attention is currently required from:
    • Tomasz Janiszewski
    Submit Requirements:
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Signed-off-by-Footer
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    • requirement is not satisfiedTryBots-Pass
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: newpatchset
    Gerrit-Project: protobuf
    Gerrit-Branch: master
    Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
    Gerrit-Change-Number: 673075
    Gerrit-PatchSet: 3
    unsatisfied_requirement
    open
    diffy

    Tomasz Janiszewski (Gerrit)

    unread,
    May 19, 2025, 1:16:36 PMMay 19
    to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com
    Attention needed from Tomasz Janiszewski

    Tomasz Janiszewski uploaded new patchset

    Tomasz Janiszewski uploaded patch set #4 to this change.
    Open in Gerrit

    Related details

    Attention is currently required from:
    • Tomasz Janiszewski
    Submit Requirements:
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Signed-off-by-Footer
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    • requirement is not satisfiedTryBots-Pass
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: newpatchset
    Gerrit-Project: protobuf
    Gerrit-Branch: master
    Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
    Gerrit-Change-Number: 673075
    Gerrit-PatchSet: 4
    unsatisfied_requirement
    open
    diffy

    Tomasz Janiszewski (Gerrit)

    unread,
    May 19, 2025, 3:23:41 PMMay 19
    to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com
    Attention needed from Tomasz Janiszewski

    Tomasz Janiszewski uploaded new patchset

    Tomasz Janiszewski uploaded patch set #5 to this change.
    Open in Gerrit

    Related details

    Attention is currently required from:
    • Tomasz Janiszewski
    Submit Requirements:
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Signed-off-by-Footer
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    • requirement is not satisfiedTryBots-Pass
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: newpatchset
    Gerrit-Project: protobuf
    Gerrit-Branch: master
    Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
    Gerrit-Change-Number: 673075
    Gerrit-PatchSet: 5
    unsatisfied_requirement
    open
    diffy

    Tomasz Janiszewski (Gerrit)

    unread,
    May 19, 2025, 3:26:33 PMMay 19
    to goph...@pubsubhelper.golang.org, Michael Stapelberg, Damien Neil, Gopher Robot, golang-co...@googlegroups.com
    Attention needed from Damien Neil and Michael Stapelberg

    Tomasz Janiszewski added 6 comments

    Patchset-level comments
    File-level comment, Patchset 2:
    Tomasz Janiszewski . resolved

    Thank you for your comments. I think I addressed all of them

    File internal/impl/decode.go
    Line 222, Patchset 2: return out, wrapUnmarshalErrorForField(err, mi.Desc, f)
    Damien Neil . resolved

    This is going to annotate every error produced during decoding a field.

    Most decode errors are produced by passing the wrong data to the decoder. For example, passing a text-format data rather than a wire-format to Unmarshal. Since the protobuf wire format has very little in the way of internal consistency checks, ascribing this error to a specific field is likely to be misleading.

    (See also Joe's comment here: https://github.com/golang/protobuf/issues/1228#issuecomment-714798874)

    While it may be reasonable to mention specific fields in UTF-8 validation errors, I suspect that doing so for other errors will add significantly more confusing than it will solve.

    Tomasz Janiszewski

    Acknowledged

    Line 254, Patchset 2: return fmt.Errorf("failed to unmarshal message %q: %w", desc.Fields().Get(int(f.num)).FullName(), err)
    Damien Neil . resolved

    This change should include a test which demonstrates the exact text of the new errors.

    Tomasz Janiszewski

    I thought about it but I'm not sure how to achieve it. The perfect place will be TestDecodeInvalidMessages but currently error string is not checked there. I thought about extending testInvalidMessages with expectedError string field but the slice is used in multiple tests with different expected errors so we need something that is closed to the test. Another aproach could be a slice of expected error messages but it looks quite ugly to me as it is coupled with testInvalidMessages. What will be the best approach?

    Line 254, Patchset 2: return fmt.Errorf("failed to unmarshal message %q: %w", desc.Fields().Get(int(f.num)).FullName(), err)
    Damien Neil . resolved

    All errors returned in the protobuf module should be constructed by the internal/errors package, which adds a common error prefix among other things.

    Tomasz Janiszewski

    Done

    File internal/impl/encode.go
    Line 201, Patchset 2: return b, wrapMarshalErrorForField(err, mi.Desc, f)
    Michael Stapelberg . resolved

    By changing `impl.MessageInfo.marshalAppendPointer`, you are only updating the fast path, but not the slow path (similar for unmarshaling).

    I think you need to change `proto.MarshalOptions.marshal()` instead, which is the central point for marshaling.

    There, you’ll only have access to the message name, not the individual field, but I think wrapping should happen in two places: the code that generates the field-related error should include the field’s name, and the message name is included in `proto.MarshalOptions.marshal()`

    Tomasz Janiszewski

    Done

    Line 235, Patchset 2: return fmt.Errorf("failed to marshal message %q: %w", desc.Fields().Get(int(f.num)).FullName(), err)
    Damien Neil . resolved

    All errors returned in the protobuf module should be constructed by the internal/errors package, which adds a common error prefix among other things.

    Tomasz Janiszewski

    Done

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Damien Neil
    • Michael Stapelberg
    Submit Requirements:
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedNo-Signed-off-by-Footer
      • requirement satisfiedNo-Unresolved-Comments
      • requirement is not satisfiedReview-Enforcement
      • requirement is not satisfiedTryBots-Pass
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: protobuf
      Gerrit-Branch: master
      Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
      Gerrit-Change-Number: 673075
      Gerrit-PatchSet: 5
      Gerrit-Owner: Tomasz Janiszewski <tjan...@redhat.com>
      Gerrit-Reviewer: Damien Neil <dn...@google.com>
      Gerrit-Reviewer: Michael Stapelberg <stape...@google.com>
      Gerrit-CC: Gopher Robot <go...@golang.org>
      Gerrit-Attention: Damien Neil <dn...@google.com>
      Gerrit-Attention: Michael Stapelberg <stape...@google.com>
      Gerrit-Comment-Date: Mon, 19 May 2025 19:26:25 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Damien Neil <dn...@google.com>
      Comment-In-Reply-To: Michael Stapelberg <stape...@google.com>
      unsatisfied_requirement
      satisfied_requirement
      open
      diffy

      Tomasz Janiszewski (Gerrit)

      unread,
      May 19, 2025, 3:29:08 PMMay 19
      to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com
      Attention needed from Damien Neil and Michael Stapelberg

      Tomasz Janiszewski uploaded new patchset

      Tomasz Janiszewski uploaded patch set #6 to this change.
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Damien Neil
      • Michael Stapelberg
      Submit Requirements:
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedNo-Signed-off-by-Footer
      • requirement satisfiedNo-Unresolved-Comments
      • requirement is not satisfiedReview-Enforcement
      • requirement is not satisfiedTryBots-Pass
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: newpatchset
      Gerrit-Project: protobuf
      Gerrit-Branch: master
      Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
      Gerrit-Change-Number: 673075
      Gerrit-PatchSet: 6
      unsatisfied_requirement
      satisfied_requirement
      open
      diffy

      Damien Neil (Gerrit)

      unread,
      May 19, 2025, 3:42:08 PMMay 19
      to Tomasz Janiszewski, goph...@pubsubhelper.golang.org, Michael Stapelberg, Gopher Robot, golang-co...@googlegroups.com
      Attention needed from Michael Stapelberg and Tomasz Janiszewski

      Damien Neil added 1 comment

      File internal/impl/decode.go
      Line 255, Patchset 6 (Latest): if goerrors.Is(err, errDecode) {
      Damien Neil . unresolved

      Why errors.Is? When will errDecode be wrapped?

      errors.Is is more expensive than a simple equality check, and protobuf decoding is highly performance-sensitive. If we're using the more expensive check, there should be a reason for it.

      The motivation for this change is to annotate UTF-8 validation failures. What errors other than errDecode and are UTF-8 validation failures appear here, and will now be annotated? Should this check for a list of errors that should be annotated instead?

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Michael Stapelberg
      • Tomasz Janiszewski
      Submit Requirements:
        • requirement is not satisfiedCode-Review
        • requirement is not satisfiedNo-Signed-off-by-Footer
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement is not satisfiedReview-Enforcement
        • requirement is not satisfiedTryBots-Pass
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: protobuf
        Gerrit-Branch: master
        Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
        Gerrit-Change-Number: 673075
        Gerrit-PatchSet: 6
        Gerrit-Owner: Tomasz Janiszewski <tjan...@redhat.com>
        Gerrit-Reviewer: Damien Neil <dn...@google.com>
        Gerrit-Reviewer: Michael Stapelberg <stape...@google.com>
        Gerrit-CC: Gopher Robot <go...@golang.org>
        Gerrit-Attention: Tomasz Janiszewski <tjan...@redhat.com>
        Gerrit-Attention: Michael Stapelberg <stape...@google.com>
        Gerrit-Comment-Date: Mon, 19 May 2025 19:42:03 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        unsatisfied_requirement
        open
        diffy

        Tomasz Janiszewski (Gerrit)

        unread,
        May 20, 2025, 6:17:20 AMMay 20
        to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com
        Attention needed from Michael Stapelberg and Tomasz Janiszewski

        Tomasz Janiszewski uploaded new patchset

        Tomasz Janiszewski uploaded patch set #7 to this change.
        Open in Gerrit

        Related details

        Attention is currently required from:
        • Michael Stapelberg
        • Tomasz Janiszewski
        Submit Requirements:
        • requirement is not satisfiedCode-Review
        • requirement is not satisfiedNo-Signed-off-by-Footer
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement is not satisfiedReview-Enforcement
        • requirement is not satisfiedTryBots-Pass
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: newpatchset
        Gerrit-Project: protobuf
        Gerrit-Branch: master
        Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
        Gerrit-Change-Number: 673075
        Gerrit-PatchSet: 7
        unsatisfied_requirement
        open
        diffy

        Tomasz Janiszewski (Gerrit)

        unread,
        May 20, 2025, 6:17:50 AMMay 20
        to goph...@pubsubhelper.golang.org, Michael Stapelberg, Damien Neil, Gopher Robot, golang-co...@googlegroups.com
        Attention needed from Damien Neil and Michael Stapelberg

        Tomasz Janiszewski added 2 comments

        Patchset-level comments
        File-level comment, Patchset 6:
        Tomasz Janiszewski . resolved

        Fixed, only utf-8 errors will be wrapped in decode

        File internal/impl/decode.go
        Line 255, Patchset 6: if goerrors.Is(err, errDecode) {
        Damien Neil . resolved

        Why errors.Is? When will errDecode be wrapped?

        errors.Is is more expensive than a simple equality check, and protobuf decoding is highly performance-sensitive. If we're using the more expensive check, there should be a reason for it.

        The motivation for this change is to annotate UTF-8 validation failures. What errors other than errDecode and are UTF-8 validation failures appear here, and will now be annotated? Should this check for a list of errors that should be annotated instead?

        Tomasz Janiszewski

        Done

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Damien Neil
        • Michael Stapelberg
        Submit Requirements:
          • requirement is not satisfiedCode-Review
          • requirement is not satisfiedNo-Signed-off-by-Footer
          • requirement satisfiedNo-Unresolved-Comments
          • requirement is not satisfiedReview-Enforcement
          • requirement is not satisfiedTryBots-Pass
          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
          Gerrit-MessageType: comment
          Gerrit-Project: protobuf
          Gerrit-Branch: master
          Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
          Gerrit-Change-Number: 673075
          Gerrit-PatchSet: 7
          Gerrit-Owner: Tomasz Janiszewski <tjan...@redhat.com>
          Gerrit-Reviewer: Damien Neil <dn...@google.com>
          Gerrit-Reviewer: Michael Stapelberg <stape...@google.com>
          Gerrit-CC: Gopher Robot <go...@golang.org>
          Gerrit-Attention: Damien Neil <dn...@google.com>
          Gerrit-Attention: Michael Stapelberg <stape...@google.com>
          Gerrit-Comment-Date: Tue, 20 May 2025 10:17:43 +0000
          Gerrit-HasComments: Yes
          Gerrit-Has-Labels: No
          Comment-In-Reply-To: Damien Neil <dn...@google.com>
          unsatisfied_requirement
          satisfied_requirement
          open
          diffy

          Michael Stapelberg (Gerrit)

          unread,
          Jun 6, 2025, 5:26:20 AMJun 6
          to Tomasz Janiszewski, goph...@pubsubhelper.golang.org, Damien Neil, Gopher Robot, golang-co...@googlegroups.com
          Attention needed from Damien Neil and Tomasz Janiszewski

          Michael Stapelberg added 1 comment

          File internal/impl/encode.go
          Line 201, Patchset 2: return b, wrapMarshalErrorForField(err, mi.Desc, f)
          Michael Stapelberg . unresolved

          By changing `impl.MessageInfo.marshalAppendPointer`, you are only updating the fast path, but not the slow path (similar for unmarshaling).

          I think you need to change `proto.MarshalOptions.marshal()` instead, which is the central point for marshaling.

          There, you’ll only have access to the message name, not the individual field, but I think wrapping should happen in two places: the code that generates the field-related error should include the field’s name, and the message name is included in `proto.MarshalOptions.marshal()`

          Tomasz Janiszewski

          Done

          Michael Stapelberg

          I don’t think this is done…? Your change still modifies files in internal/impl/, but no files in proto/ (aside from tests). As a specific example, using dynamicpb would still result in the old error behavior. Similarly, have you run `./test.bash`? It tests the slow paths by running tests with the protoreflect build tag.

          Open in Gerrit

          Related details

          Attention is currently required from:
          • Damien Neil
          • Tomasz Janiszewski
          Submit Requirements:
            • requirement is not satisfiedCode-Review
            • requirement is not satisfiedNo-Signed-off-by-Footer
            • requirement is not satisfiedNo-Unresolved-Comments
            • requirement is not satisfiedReview-Enforcement
            • requirement is not satisfiedTryBots-Pass
            Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
            Gerrit-MessageType: comment
            Gerrit-Project: protobuf
            Gerrit-Branch: master
            Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
            Gerrit-Change-Number: 673075
            Gerrit-PatchSet: 7
            Gerrit-Owner: Tomasz Janiszewski <tjan...@redhat.com>
            Gerrit-Reviewer: Damien Neil <dn...@google.com>
            Gerrit-Reviewer: Michael Stapelberg <stape...@google.com>
            Gerrit-CC: Gopher Robot <go...@golang.org>
            Gerrit-Attention: Tomasz Janiszewski <tjan...@redhat.com>
            Gerrit-Attention: Damien Neil <dn...@google.com>
            Gerrit-Comment-Date: Fri, 06 Jun 2025 09:26:13 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: No
            Comment-In-Reply-To: Tomasz Janiszewski <tjan...@redhat.com>
            Comment-In-Reply-To: Michael Stapelberg <stape...@google.com>
            unsatisfied_requirement
            open
            diffy

            Tomasz Janiszewski (Gerrit)

            unread,
            Jun 9, 2025, 8:43:43 AMJun 9
            to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com
            Attention needed from Damien Neil and Tomasz Janiszewski

            Tomasz Janiszewski uploaded new patchset

            Tomasz Janiszewski uploaded patch set #8 to this change.
            Open in Gerrit

            Related details

            Attention is currently required from:
            • Damien Neil
            • Tomasz Janiszewski
            Submit Requirements:
            • requirement is not satisfiedCode-Review
            • requirement is not satisfiedNo-Signed-off-by-Footer
            • requirement is not satisfiedNo-Unresolved-Comments
            • requirement is not satisfiedReview-Enforcement
            • requirement is not satisfiedTryBots-Pass
            Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
            Gerrit-MessageType: newpatchset
            Gerrit-Project: protobuf
            Gerrit-Branch: master
            Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
            Gerrit-Change-Number: 673075
            Gerrit-PatchSet: 8
            unsatisfied_requirement
            open
            diffy

            Tomasz Janiszewski (Gerrit)

            unread,
            Jun 9, 2025, 9:19:50 AMJun 9
            to goph...@pubsubhelper.golang.org, Michael Stapelberg, Damien Neil, Gopher Robot, golang-co...@googlegroups.com
            Attention needed from Damien Neil and Michael Stapelberg

            Tomasz Janiszewski added 2 comments

            Patchset-level comments
            File-level comment, Patchset 8 (Latest):
            Tomasz Janiszewski . resolved

            Fixed tests

            File internal/impl/encode.go
            Line 201, Patchset 2: return b, wrapMarshalErrorForField(err, mi.Desc, f)
            Michael Stapelberg . unresolved

            By changing `impl.MessageInfo.marshalAppendPointer`, you are only updating the fast path, but not the slow path (similar for unmarshaling).

            I think you need to change `proto.MarshalOptions.marshal()` instead, which is the central point for marshaling.

            There, you’ll only have access to the message name, not the individual field, but I think wrapping should happen in two places: the code that generates the field-related error should include the field’s name, and the message name is included in `proto.MarshalOptions.marshal()`

            Tomasz Janiszewski

            Done

            Michael Stapelberg

            I don’t think this is done…? Your change still modifies files in internal/impl/, but no files in proto/ (aside from tests). As a specific example, using dynamicpb would still result in the old error behavior. Similarly, have you run `./test.bash`? It tests the slow paths by running tests with the protoreflect build tag.

            Tomasz Janiszewski

            Thank you! I fixed tests. In `proto/` we do not need to change much as there is already `errors.InvalidUTF8` function that adds field name to error. Maybe we should move errInvalidUTF8 from internal to errors and wrap it the same way in both places to have identical behaviour but I'm not sure if this refactoring should be done in this PR.

            Open in Gerrit

            Related details

            Attention is currently required from:
            • Damien Neil
            • Michael Stapelberg
            Submit Requirements:
            • requirement is not satisfiedCode-Review
            • requirement is not satisfiedNo-Signed-off-by-Footer
            • requirement is not satisfiedNo-Unresolved-Comments
            • requirement is not satisfiedReview-Enforcement
            • requirement is not satisfiedTryBots-Pass
            Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
            Gerrit-MessageType: comment
            Gerrit-Project: protobuf
            Gerrit-Branch: master
            Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
            Gerrit-Change-Number: 673075
            Gerrit-PatchSet: 8
            Gerrit-Owner: Tomasz Janiszewski <tjan...@redhat.com>
            Gerrit-Reviewer: Damien Neil <dn...@google.com>
            Gerrit-Reviewer: Michael Stapelberg <stape...@google.com>
            Gerrit-CC: Gopher Robot <go...@golang.org>
            Gerrit-Attention: Damien Neil <dn...@google.com>
            Gerrit-Attention: Michael Stapelberg <stape...@google.com>
            Gerrit-Comment-Date: Mon, 09 Jun 2025 13:19:43 +0000
            unsatisfied_requirement
            open
            diffy

            Damien Neil (Gerrit)

            unread,
            Jun 11, 2025, 5:28:13 PMJun 11
            to Tomasz Janiszewski, goph...@pubsubhelper.golang.org, Michael Stapelberg, Gopher Robot, golang-co...@googlegroups.com
            Attention needed from Michael Stapelberg and Tomasz Janiszewski

            Damien Neil added 1 comment

            File internal/impl/decode.go
            Line 222, Patchset 2: return out, wrapUnmarshalErrorForField(err, mi.Desc, f)
            Damien Neil . unresolved

            This is going to annotate every error produced during decoding a field.

            Most decode errors are produced by passing the wrong data to the decoder. For example, passing a text-format data rather than a wire-format to Unmarshal. Since the protobuf wire format has very little in the way of internal consistency checks, ascribing this error to a specific field is likely to be misleading.

            (See also Joe's comment here: https://github.com/golang/protobuf/issues/1228#issuecomment-714798874)

            While it may be reasonable to mention specific fields in UTF-8 validation errors, I suspect that doing so for other errors will add significantly more confusing than it will solve.

            Tomasz Janiszewski

            Acknowledged

            Damien Neil

            Unless I miss something, I think the current version of this CL is still annotating all errors with field names.

            I still think this going to be never useful, and often confusing. A decode failure on an uint64 field, for example, almost certainly indicates that the input data isn't a protobuf message at all. Failing that, it almost certainly indicates that the data is corrupted in some way nonspecific to the individual field.

            (The one possible scenario I can think of where field-specific reporting for integer fields might conceivably be useful is to report the case where a 64-bit field was redefined as a 32-bit one, and we're trying to decode a value that doesn't fit. I don't think I've ever seen this happen in practice.)

            Open in Gerrit

            Related details

            Attention is currently required from:
            • Michael Stapelberg
            • Tomasz Janiszewski
            Submit Requirements:
            • requirement is not satisfiedCode-Review
            • requirement is not satisfiedNo-Signed-off-by-Footer
            • requirement is not satisfiedNo-Unresolved-Comments
            • requirement is not satisfiedReview-Enforcement
            • requirement is not satisfiedTryBots-Pass
            Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
            Gerrit-MessageType: comment
            Gerrit-Project: protobuf
            Gerrit-Branch: master
            Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
            Gerrit-Change-Number: 673075
            Gerrit-PatchSet: 8
            Gerrit-Owner: Tomasz Janiszewski <tjan...@redhat.com>
            Gerrit-Reviewer: Damien Neil <dn...@google.com>
            Gerrit-Reviewer: Michael Stapelberg <stape...@google.com>
            Gerrit-CC: Gopher Robot <go...@golang.org>
            Gerrit-Attention: Tomasz Janiszewski <tjan...@redhat.com>
            Gerrit-Attention: Michael Stapelberg <stape...@google.com>
            Gerrit-Comment-Date: Wed, 11 Jun 2025 21:28:09 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: No
            Comment-In-Reply-To: Tomasz Janiszewski <tjan...@redhat.com>
            Comment-In-Reply-To: Damien Neil <dn...@google.com>
            unsatisfied_requirement
            open
            diffy

            Tomasz Janiszewski (Gerrit)

            unread,
            Jun 23, 2025, 11:24:01 AMJun 23
            to goph...@pubsubhelper.golang.org, Michael Stapelberg, Damien Neil, Gopher Robot, golang-co...@googlegroups.com
            Attention needed from Damien Neil and Michael Stapelberg

            Tomasz Janiszewski added 2 comments

            File internal/impl/decode.go
            Line 222, Patchset 2: return out, wrapUnmarshalErrorForField(err, mi.Desc, f)
            Damien Neil . unresolved

            This is going to annotate every error produced during decoding a field.

            Most decode errors are produced by passing the wrong data to the decoder. For example, passing a text-format data rather than a wire-format to Unmarshal. Since the protobuf wire format has very little in the way of internal consistency checks, ascribing this error to a specific field is likely to be misleading.

            (See also Joe's comment here: https://github.com/golang/protobuf/issues/1228#issuecomment-714798874)

            While it may be reasonable to mention specific fields in UTF-8 validation errors, I suspect that doing so for other errors will add significantly more confusing than it will solve.

            Tomasz Janiszewski

            Acknowledged

            Damien Neil

            Unless I miss something, I think the current version of this CL is still annotating all errors with field names.

            I still think this going to be never useful, and often confusing. A decode failure on an uint64 field, for example, almost certainly indicates that the input data isn't a protobuf message at all. Failing that, it almost certainly indicates that the data is corrupted in some way nonspecific to the individual field.

            (The one possible scenario I can think of where field-specific reporting for integer fields might conceivably be useful is to report the case where a 64-bit field was redefined as a 32-bit one, and we're trying to decode a value that doesn't fit. I don't think I've ever seen this happen in practice.)

            Tomasz Janiszewski

            I think `wrapUnmarshalErrorForField` name might be misleading as there is a check for `errInvalidUTF8` error and only it will be wrapped. Please take a look at lint 252

            File internal/impl/encode.go
            Line 201, Patchset 2: return b, wrapMarshalErrorForField(err, mi.Desc, f)
            Michael Stapelberg . resolved

            By changing `impl.MessageInfo.marshalAppendPointer`, you are only updating the fast path, but not the slow path (similar for unmarshaling).

            I think you need to change `proto.MarshalOptions.marshal()` instead, which is the central point for marshaling.

            There, you’ll only have access to the message name, not the individual field, but I think wrapping should happen in two places: the code that generates the field-related error should include the field’s name, and the message name is included in `proto.MarshalOptions.marshal()`

            Tomasz Janiszewski

            Done

            Michael Stapelberg

            I don’t think this is done…? Your change still modifies files in internal/impl/, but no files in proto/ (aside from tests). As a specific example, using dynamicpb would still result in the old error behavior. Similarly, have you run `./test.bash`? It tests the slow paths by running tests with the protoreflect build tag.

            Tomasz Janiszewski

            Thank you! I fixed tests. In `proto/` we do not need to change much as there is already `errors.InvalidUTF8` function that adds field name to error. Maybe we should move errInvalidUTF8 from internal to errors and wrap it the same way in both places to have identical behaviour but I'm not sure if this refactoring should be done in this PR.

            Tomasz Janiszewski

            Acknowledged

            Open in Gerrit

            Related details

            Attention is currently required from:
            • Damien Neil
            • Michael Stapelberg
            Submit Requirements:
            • requirement is not satisfiedCode-Review
            • requirement is not satisfiedNo-Signed-off-by-Footer
            • requirement is not satisfiedNo-Unresolved-Comments
            • requirement is not satisfiedReview-Enforcement
            • requirement is not satisfiedTryBots-Pass
            Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
            Gerrit-MessageType: comment
            Gerrit-Project: protobuf
            Gerrit-Branch: master
            Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
            Gerrit-Change-Number: 673075
            Gerrit-PatchSet: 8
            Gerrit-Owner: Tomasz Janiszewski <tjan...@redhat.com>
            Gerrit-Reviewer: Damien Neil <dn...@google.com>
            Gerrit-Reviewer: Michael Stapelberg <stape...@google.com>
            Gerrit-CC: Gopher Robot <go...@golang.org>
            Gerrit-Attention: Damien Neil <dn...@google.com>
            Gerrit-Attention: Michael Stapelberg <stape...@google.com>
            Gerrit-Comment-Date: Mon, 23 Jun 2025 15:23:54 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: No
            Comment-In-Reply-To: Damien Neil <dn...@google.com>
            Comment-In-Reply-To: Tomasz Janiszewski <tjan...@redhat.com>
            Comment-In-Reply-To: Michael Stapelberg <stape...@google.com>
            unsatisfied_requirement
            open
            diffy

            Damien Neil (Gerrit)

            unread,
            Jun 23, 2025, 8:42:42 PMJun 23
            to Tomasz Janiszewski, goph...@pubsubhelper.golang.org, Michael Stapelberg, Gopher Robot, golang-co...@googlegroups.com
            Attention needed from Michael Stapelberg and Tomasz Janiszewski

            Damien Neil added 4 comments

            File internal/impl/decode.go
            Line 222, Patchset 2: return out, wrapUnmarshalErrorForField(err, mi.Desc, f)
            Damien Neil . resolved

            This is going to annotate every error produced during decoding a field.

            Most decode errors are produced by passing the wrong data to the decoder. For example, passing a text-format data rather than a wire-format to Unmarshal. Since the protobuf wire format has very little in the way of internal consistency checks, ascribing this error to a specific field is likely to be misleading.

            (See also Joe's comment here: https://github.com/golang/protobuf/issues/1228#issuecomment-714798874)

            While it may be reasonable to mention specific fields in UTF-8 validation errors, I suspect that doing so for other errors will add significantly more confusing than it will solve.

            Tomasz Janiszewski

            Acknowledged

            Damien Neil

            Unless I miss something, I think the current version of this CL is still annotating all errors with field names.

            I still think this going to be never useful, and often confusing. A decode failure on an uint64 field, for example, almost certainly indicates that the input data isn't a protobuf message at all. Failing that, it almost certainly indicates that the data is corrupted in some way nonspecific to the individual field.

            (The one possible scenario I can think of where field-specific reporting for integer fields might conceivably be useful is to report the case where a 64-bit field was redefined as a 32-bit one, and we're trying to decode a value that doesn't fit. I don't think I've ever seen this happen in practice.)

            Tomasz Janiszewski

            I think `wrapUnmarshalErrorForField` name might be misleading as there is a check for `errInvalidUTF8` error and only it will be wrapped. Please take a look at lint 252

            Damien Neil

            Ahh, yes, I did misread this. Apologies. This only wraps UTF-8 decoding errors.

            File proto/decode.go
            Line 131, Patchset 8 (Latest): return out, err
            Damien Neil . unresolved

            How about we add the message type here, which will cover both fast-path and slow-path?

            return out, errors.Wrap(err, "failed to unmarshal message %q", m.Descriptor().FullName())

            Line 136, Patchset 8 (Latest): return out, checkInitialized(m)
            Damien Neil . unresolved

            ...and also add "failed to unmarshal message" here as well for consistency.

            Line 308, Patchset 8 (Latest): return errors.New("failed to unmarshal message %q: cannot parse invalid wire-format data", name)
            Damien Neil . unresolved

            This says "message %q", but its inconsistent whether this is being passed a message name or a field name.

            How about we leave errDecode as-is, and add the error annotation in unmarshal (see comment above)?

            Open in Gerrit

            Related details

            Attention is currently required from:
            • Michael Stapelberg
            • Tomasz Janiszewski
            Submit Requirements:
            • requirement is not satisfiedCode-Review
            • requirement is not satisfiedNo-Signed-off-by-Footer
            • requirement is not satisfiedNo-Unresolved-Comments
            • requirement is not satisfiedReview-Enforcement
            • requirement is not satisfiedTryBots-Pass
            Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
            Gerrit-MessageType: comment
            Gerrit-Project: protobuf
            Gerrit-Branch: master
            Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
            Gerrit-Change-Number: 673075
            Gerrit-PatchSet: 8
            Gerrit-Owner: Tomasz Janiszewski <tjan...@redhat.com>
            Gerrit-Reviewer: Damien Neil <dn...@google.com>
            Gerrit-Reviewer: Michael Stapelberg <stape...@google.com>
            Gerrit-CC: Gopher Robot <go...@golang.org>
            Gerrit-Attention: Tomasz Janiszewski <tjan...@redhat.com>
            Gerrit-Attention: Michael Stapelberg <stape...@google.com>
            Gerrit-Comment-Date: Tue, 24 Jun 2025 00:42:38 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: No
            unsatisfied_requirement
            open
            diffy

            Tomasz Janiszewski (Gerrit)

            unread,
            Jun 25, 2025, 11:36:23 AMJun 25
            to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com
            Attention needed from Michael Stapelberg and Tomasz Janiszewski

            Tomasz Janiszewski uploaded new patchset

            Tomasz Janiszewski uploaded patch set #9 to this change.
            Open in Gerrit

            Related details

            Attention is currently required from:
            • Michael Stapelberg
            • Tomasz Janiszewski
            Submit Requirements:
            • requirement is not satisfiedCode-Review
            • requirement is not satisfiedNo-Signed-off-by-Footer
            • requirement is not satisfiedNo-Unresolved-Comments
            • requirement is not satisfiedReview-Enforcement
            • requirement is not satisfiedTryBots-Pass
            Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
            Gerrit-MessageType: newpatchset
            Gerrit-Project: protobuf
            Gerrit-Branch: master
            Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
            Gerrit-Change-Number: 673075
            Gerrit-PatchSet: 9
            unsatisfied_requirement
            open
            diffy

            Tomasz Janiszewski (Gerrit)

            unread,
            Jun 25, 2025, 11:37:43 AMJun 25
            to goph...@pubsubhelper.golang.org, Michael Stapelberg, Damien Neil, Gopher Robot, golang-co...@googlegroups.com
            Attention needed from Damien Neil and Michael Stapelberg

            Tomasz Janiszewski added 3 comments

            File proto/decode.go
            Line 131, Patchset 8: return out, err
            Damien Neil . resolved

            How about we add the message type here, which will cover both fast-path and slow-path?

            return out, errors.Wrap(err, "failed to unmarshal message %q", m.Descriptor().FullName())

            Tomasz Janiszewski

            Acknowledged

            Line 136, Patchset 8: return out, checkInitialized(m)
            Damien Neil . unresolved

            ...and also add "failed to unmarshal message" here as well for consistency.

            Tomasz Janiszewski

            I think it should be `invalid message` as it's not about marshaling but verifying if required fields are set.

            Line 308, Patchset 8: return errors.New("failed to unmarshal message %q: cannot parse invalid wire-format data", name)
            Damien Neil . resolved

            This says "message %q", but its inconsistent whether this is being passed a message name or a field name.

            How about we leave errDecode as-is, and add the error annotation in unmarshal (see comment above)?

            Tomasz Janiszewski

            Acknowledged

            Open in Gerrit

            Related details

            Attention is currently required from:
            • Damien Neil
            • Michael Stapelberg
            Submit Requirements:
            • requirement is not satisfiedCode-Review
            • requirement is not satisfiedNo-Signed-off-by-Footer
            • requirement is not satisfiedNo-Unresolved-Comments
            • requirement is not satisfiedReview-Enforcement
            • requirement is not satisfiedTryBots-Pass
            Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
            Gerrit-MessageType: comment
            Gerrit-Project: protobuf
            Gerrit-Branch: master
            Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
            Gerrit-Change-Number: 673075
            Gerrit-PatchSet: 9
            Gerrit-Owner: Tomasz Janiszewski <tjan...@redhat.com>
            Gerrit-Reviewer: Damien Neil <dn...@google.com>
            Gerrit-Reviewer: Michael Stapelberg <stape...@google.com>
            Gerrit-CC: Gopher Robot <go...@golang.org>
            Gerrit-Attention: Damien Neil <dn...@google.com>
            Gerrit-Attention: Michael Stapelberg <stape...@google.com>
            Gerrit-Comment-Date: Wed, 25 Jun 2025 15:37:36 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: No
            Comment-In-Reply-To: Damien Neil <dn...@google.com>
            unsatisfied_requirement
            open
            diffy

            Tomasz Janiszewski (Gerrit)

            unread,
            Jul 8, 2025, 7:04:36 AMJul 8
            to goph...@pubsubhelper.golang.org, Michael Stapelberg, Damien Neil, Gopher Robot, golang-co...@googlegroups.com
            Attention needed from Damien Neil and Michael Stapelberg

            Tomasz Janiszewski added 1 comment

            File proto/decode.go
            Line 136, Patchset 8: return out, checkInitialized(m)
            Damien Neil . resolved

            ...and also add "failed to unmarshal message" here as well for consistency.

            Tomasz Janiszewski

            I think it should be `invalid message` as it's not about marshaling but verifying if required fields are set.

            Tomasz Janiszewski

            Acknowledged

            Open in Gerrit

            Related details

            Attention is currently required from:
            • Damien Neil
            • Michael Stapelberg
            Submit Requirements:
              • requirement is not satisfiedCode-Review
              • requirement is not satisfiedNo-Signed-off-by-Footer
              • requirement satisfiedNo-Unresolved-Comments
              • requirement is not satisfiedReview-Enforcement
              • requirement is not satisfiedTryBots-Pass
              Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
              Gerrit-MessageType: comment
              Gerrit-Project: protobuf
              Gerrit-Branch: master
              Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
              Gerrit-Change-Number: 673075
              Gerrit-PatchSet: 9
              Gerrit-Owner: Tomasz Janiszewski <tjan...@redhat.com>
              Gerrit-Reviewer: Damien Neil <dn...@google.com>
              Gerrit-Reviewer: Michael Stapelberg <stape...@google.com>
              Gerrit-CC: Gopher Robot <go...@golang.org>
              Gerrit-Attention: Damien Neil <dn...@google.com>
              Gerrit-Attention: Michael Stapelberg <stape...@google.com>
              Gerrit-Comment-Date: Tue, 08 Jul 2025 11:04:29 +0000
              Gerrit-HasComments: Yes
              Gerrit-Has-Labels: No
              unsatisfied_requirement
              satisfied_requirement
              open
              diffy

              Damien Neil (Gerrit)

              unread,
              Jul 10, 2025, 5:16:25 PMJul 10
              to Tomasz Janiszewski, goph...@pubsubhelper.golang.org, Michael Stapelberg, Gopher Robot, golang-co...@googlegroups.com
              Attention needed from Michael Stapelberg and Tomasz Janiszewski

              Damien Neil voted Code-Review+1

              Code-Review+1
              Open in Gerrit

              Related details

              Attention is currently required from:
              • Michael Stapelberg
              • Tomasz Janiszewski
              Submit Requirements:
              • requirement is not satisfiedCode-Review
              • requirement is not satisfiedNo-Signed-off-by-Footer
              • requirement satisfiedNo-Unresolved-Comments
              • requirement is not satisfiedReview-Enforcement
              • requirement is not satisfiedTryBots-Pass
              Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
              Gerrit-MessageType: comment
              Gerrit-Project: protobuf
              Gerrit-Branch: master
              Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
              Gerrit-Change-Number: 673075
              Gerrit-PatchSet: 9
              Gerrit-Owner: Tomasz Janiszewski <tjan...@redhat.com>
              Gerrit-Reviewer: Damien Neil <dn...@google.com>
              Gerrit-Reviewer: Michael Stapelberg <stape...@google.com>
              Gerrit-CC: Gopher Robot <go...@golang.org>
              Gerrit-Attention: Tomasz Janiszewski <tjan...@redhat.com>
              Gerrit-Attention: Michael Stapelberg <stape...@google.com>
              Gerrit-Comment-Date: Thu, 10 Jul 2025 21:16:21 +0000
              Gerrit-HasComments: No
              Gerrit-Has-Labels: Yes
              unsatisfied_requirement
              satisfied_requirement
              open
              diffy

              Michael Stapelberg (Gerrit)

              unread,
              Jul 11, 2025, 4:27:23 AMJul 11
              to Tomasz Janiszewski, goph...@pubsubhelper.golang.org, Damien Neil, Gopher Robot, golang-co...@googlegroups.com
              Attention needed from Tomasz Janiszewski

              Michael Stapelberg added 1 comment

              Patchset-level comments
              File-level comment, Patchset 9 (Latest):
              Michael Stapelberg . resolved

              I’ll run this change through our Google-internal test suite and report back once I have the results…

              Open in Gerrit

              Related details

              Attention is currently required from:
              • Tomasz Janiszewski
              Submit Requirements:
              • requirement is not satisfiedCode-Review
              • requirement is not satisfiedNo-Signed-off-by-Footer
              • requirement satisfiedNo-Unresolved-Comments
              • requirement is not satisfiedReview-Enforcement
              • requirement is not satisfiedTryBots-Pass
              Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
              Gerrit-MessageType: comment
              Gerrit-Project: protobuf
              Gerrit-Branch: master
              Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
              Gerrit-Change-Number: 673075
              Gerrit-PatchSet: 9
              Gerrit-Owner: Tomasz Janiszewski <tjan...@redhat.com>
              Gerrit-Reviewer: Damien Neil <dn...@google.com>
              Gerrit-Reviewer: Michael Stapelberg <stape...@google.com>
              Gerrit-CC: Gopher Robot <go...@golang.org>
              Gerrit-Attention: Tomasz Janiszewski <tjan...@redhat.com>
              Gerrit-Comment-Date: Fri, 11 Jul 2025 08:27:14 +0000
              Gerrit-HasComments: Yes
              Gerrit-Has-Labels: No
              unsatisfied_requirement
              satisfied_requirement
              open
              diffy

              Michael Stapelberg (Gerrit)

              unread,
              Jul 11, 2025, 4:36:53 AMJul 11
              to Tomasz Janiszewski, goph...@pubsubhelper.golang.org, Damien Neil, Gopher Robot, golang-co...@googlegroups.com
              Attention needed from Tomasz Janiszewski

              Michael Stapelberg voted and added 1 comment

              Votes added by Michael Stapelberg

              Commit-Queue+1

              1 comment

              File internal/impl/encode.go
              Line 8, Patchset 9 (Latest): "google.golang.org/protobuf/internal/errors"
              Michael Stapelberg . unresolved

              nit: move this import down to the other google.golang.org imports

              Open in Gerrit

              Related details

              Attention is currently required from:
              • Tomasz Janiszewski
              Submit Requirements:
                • requirement is not satisfiedCode-Review
                • requirement is not satisfiedNo-Signed-off-by-Footer
                • requirement is not satisfiedNo-Unresolved-Comments
                • requirement is not satisfiedReview-Enforcement
                • requirement is not satisfiedTryBots-Pass
                Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                Gerrit-MessageType: comment
                Gerrit-Project: protobuf
                Gerrit-Branch: master
                Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
                Gerrit-Change-Number: 673075
                Gerrit-PatchSet: 9
                Gerrit-Owner: Tomasz Janiszewski <tjan...@redhat.com>
                Gerrit-Reviewer: Damien Neil <dn...@google.com>
                Gerrit-Reviewer: Michael Stapelberg <stape...@google.com>
                Gerrit-CC: Gopher Robot <go...@golang.org>
                Gerrit-Attention: Tomasz Janiszewski <tjan...@redhat.com>
                Gerrit-Comment-Date: Fri, 11 Jul 2025 08:36:45 +0000
                Gerrit-HasComments: Yes
                Gerrit-Has-Labels: Yes
                unsatisfied_requirement
                open
                diffy

                Michael Stapelberg (Gerrit)

                unread,
                Jul 11, 2025, 4:47:27 AMJul 11
                to Tomasz Janiszewski, goph...@pubsubhelper.golang.org, Go LUCI, Damien Neil, Gopher Robot, golang-co...@googlegroups.com
                Attention needed from Michael Stapelberg and Tomasz Janiszewski

                Michael Stapelberg voted and added 1 comment

                Votes added by Michael Stapelberg

                Commit-Queue+1

                1 comment

                Patchset-level comments
                Michael Stapelberg . resolved

                The fuzz tests are still failing. Can you update your change with a fix please?

                Open in Gerrit

                Related details

                Attention is currently required from:
                • Michael Stapelberg
                • Tomasz Janiszewski
                Submit Requirements:
                • requirement is not satisfiedCode-Review
                • requirement is not satisfiedNo-Signed-off-by-Footer
                • requirement is not satisfiedNo-Unresolved-Comments
                • requirement is not satisfiedReview-Enforcement
                • requirement is not satisfiedTryBots-Pass
                Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                Gerrit-MessageType: comment
                Gerrit-Project: protobuf
                Gerrit-Branch: master
                Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
                Gerrit-Change-Number: 673075
                Gerrit-PatchSet: 9
                Gerrit-Owner: Tomasz Janiszewski <tjan...@redhat.com>
                Gerrit-Reviewer: Damien Neil <dn...@google.com>
                Gerrit-Reviewer: Michael Stapelberg <stape...@google.com>
                Gerrit-CC: Gopher Robot <go...@golang.org>
                Gerrit-Attention: Tomasz Janiszewski <tjan...@redhat.com>
                Gerrit-Attention: Michael Stapelberg <stape...@google.com>
                Gerrit-Comment-Date: Fri, 11 Jul 2025 08:47:18 +0000
                Gerrit-HasComments: Yes
                Gerrit-Has-Labels: Yes
                unsatisfied_requirement
                open
                diffy

                Michael Stapelberg (Gerrit)

                unread,
                Jul 15, 2025, 3:45:39 AMJul 15
                to Tomasz Janiszewski, goph...@pubsubhelper.golang.org, Go LUCI, Damien Neil, Gopher Robot, golang-co...@googlegroups.com
                Attention needed from Tomasz Janiszewski

                Michael Stapelberg added 1 comment

                Patchset-level comments
                Michael Stapelberg . unresolved

                I’ll run this change through our Google-internal test suite and report back once I have the results…

                Michael Stapelberg

                We have about 10 failing test targets (total) in various projects that need to be fixed before we can accept this change into the repository.

                Unfortunately, I cannot prioritize this any time soon.

                If any Google employee is reading this, take a look at cl/781882427 and reach out if you want to help get this change in.

                Open in Gerrit

                Related details

                Attention is currently required from:
                • Tomasz Janiszewski
                Submit Requirements:
                • requirement is not satisfiedCode-Review
                • requirement is not satisfiedNo-Signed-off-by-Footer
                • requirement is not satisfiedNo-Unresolved-Comments
                • requirement is not satisfiedReview-Enforcement
                • requirement is not satisfiedTryBots-Pass
                Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                Gerrit-MessageType: comment
                Gerrit-Project: protobuf
                Gerrit-Branch: master
                Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
                Gerrit-Change-Number: 673075
                Gerrit-PatchSet: 9
                Gerrit-Owner: Tomasz Janiszewski <tjan...@redhat.com>
                Gerrit-Reviewer: Damien Neil <dn...@google.com>
                Gerrit-Reviewer: Michael Stapelberg <stape...@google.com>
                Gerrit-CC: Gopher Robot <go...@golang.org>
                Gerrit-Attention: Tomasz Janiszewski <tjan...@redhat.com>
                Gerrit-Comment-Date: Tue, 15 Jul 2025 07:45:31 +0000
                Gerrit-HasComments: Yes
                Gerrit-Has-Labels: No
                Comment-In-Reply-To: Michael Stapelberg <stape...@google.com>
                unsatisfied_requirement
                open
                diffy

                Tomasz Janiszewski (Gerrit)

                unread,
                Jul 15, 2025, 6:11:24 AMJul 15
                to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com
                Attention needed from Damien Neil and Tomasz Janiszewski

                Tomasz Janiszewski uploaded new patchset

                Tomasz Janiszewski uploaded patch set #10 to this change.
                Following approvals got outdated and were removed:
                • Code-Review: +1 by Damien Neil
                • TryBots-Pass: LUCI-TryBot-Result-1 by Go LUCI
                Open in Gerrit

                Related details

                Attention is currently required from:
                • Damien Neil
                • Tomasz Janiszewski
                Submit Requirements:
                • requirement is not satisfiedCode-Review
                • requirement is not satisfiedNo-Signed-off-by-Footer
                • requirement is not satisfiedNo-Unresolved-Comments
                • requirement is not satisfiedReview-Enforcement
                • requirement is not satisfiedTryBots-Pass
                Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                Gerrit-MessageType: newpatchset
                Gerrit-Project: protobuf
                Gerrit-Branch: master
                Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
                Gerrit-Change-Number: 673075
                Gerrit-PatchSet: 10
                Gerrit-Owner: Tomasz Janiszewski <tjan...@redhat.com>
                Gerrit-Reviewer: Damien Neil <dn...@google.com>
                Gerrit-Reviewer: Michael Stapelberg <stape...@google.com>
                Gerrit-CC: Gopher Robot <go...@golang.org>
                unsatisfied_requirement
                open
                diffy

                Tomasz Janiszewski (Gerrit)

                unread,
                Jul 15, 2025, 6:12:51 AMJul 15
                to goph...@pubsubhelper.golang.org, Go LUCI, Michael Stapelberg, Damien Neil, Gopher Robot, golang-co...@googlegroups.com
                Attention needed from Damien Neil and Michael Stapelberg

                Tomasz Janiszewski added 1 comment

                Patchset-level comments
                Michael Stapelberg . resolved

                The fuzz tests are still failing. Can you update your change with a fix please?

                Tomasz Janiszewski

                Fixed. The failures were because we compare different message types. I think unwrapping twice should solve the issue although it looks a bit weird.

                Open in Gerrit

                Related details

                Attention is currently required from:
                • Damien Neil
                • Michael Stapelberg
                Submit Requirements:
                • requirement is not satisfiedCode-Review
                • requirement is not satisfiedNo-Signed-off-by-Footer
                • requirement is not satisfiedNo-Unresolved-Comments
                • requirement is not satisfiedReview-Enforcement
                • requirement is not satisfiedTryBots-Pass
                Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                Gerrit-MessageType: comment
                Gerrit-Project: protobuf
                Gerrit-Branch: master
                Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
                Gerrit-Change-Number: 673075
                Gerrit-PatchSet: 10
                Gerrit-Owner: Tomasz Janiszewski <tjan...@redhat.com>
                Gerrit-Reviewer: Damien Neil <dn...@google.com>
                Gerrit-Reviewer: Michael Stapelberg <stape...@google.com>
                Gerrit-CC: Gopher Robot <go...@golang.org>
                Gerrit-Attention: Damien Neil <dn...@google.com>
                Gerrit-Attention: Michael Stapelberg <stape...@google.com>
                Gerrit-Comment-Date: Tue, 15 Jul 2025 10:12:45 +0000
                unsatisfied_requirement
                open
                diffy

                Tomasz Janiszewski (Gerrit)

                unread,
                Jul 15, 2025, 6:13:45 AMJul 15
                to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com
                Attention needed from Damien Neil and Michael Stapelberg

                Tomasz Janiszewski uploaded new patchset

                Tomasz Janiszewski uploaded patch set #11 to this change.
                Open in Gerrit

                Related details

                Attention is currently required from:
                • Damien Neil
                • Michael Stapelberg
                Submit Requirements:
                • requirement is not satisfiedCode-Review
                • requirement is not satisfiedNo-Signed-off-by-Footer
                • requirement is not satisfiedNo-Unresolved-Comments
                • requirement is not satisfiedReview-Enforcement
                • requirement is not satisfiedTryBots-Pass
                Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                Gerrit-MessageType: newpatchset
                Gerrit-Project: protobuf
                Gerrit-Branch: master
                Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
                Gerrit-Change-Number: 673075
                Gerrit-PatchSet: 11
                unsatisfied_requirement
                open
                diffy

                Tomasz Janiszewski (Gerrit)

                unread,
                Jul 15, 2025, 6:14:15 AMJul 15
                to goph...@pubsubhelper.golang.org, Go LUCI, Michael Stapelberg, Damien Neil, Gopher Robot, golang-co...@googlegroups.com
                Attention needed from Damien Neil and Michael Stapelberg

                Tomasz Janiszewski added 2 comments

                Patchset-level comments
                File-level comment, Patchset 9:
                Michael Stapelberg . resolved

                I’ll run this change through our Google-internal test suite and report back once I have the results…

                Michael Stapelberg

                We have about 10 failing test targets (total) in various projects that need to be fixed before we can accept this change into the repository.

                Unfortunately, I cannot prioritize this any time soon.

                If any Google employee is reading this, take a look at cl/781882427 and reach out if you want to help get this change in.

                Tomasz Janiszewski

                Acknowledged

                File internal/impl/encode.go

                nit: move this import down to the other google.golang.org imports

                Tomasz Janiszewski

                Done

                Open in Gerrit

                Related details

                Attention is currently required from:
                • Damien Neil
                • Michael Stapelberg
                Submit Requirements:
                  • requirement is not satisfiedCode-Review
                  • requirement is not satisfiedNo-Signed-off-by-Footer
                  • requirement satisfiedNo-Unresolved-Comments
                  • requirement is not satisfiedReview-Enforcement
                  • requirement is not satisfiedTryBots-Pass
                  Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                  Gerrit-MessageType: comment
                  Gerrit-Project: protobuf
                  Gerrit-Branch: master
                  Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
                  Gerrit-Change-Number: 673075
                  Gerrit-PatchSet: 10
                  Gerrit-Owner: Tomasz Janiszewski <tjan...@redhat.com>
                  Gerrit-Reviewer: Damien Neil <dn...@google.com>
                  Gerrit-Reviewer: Michael Stapelberg <stape...@google.com>
                  Gerrit-CC: Gopher Robot <go...@golang.org>
                  Gerrit-Attention: Damien Neil <dn...@google.com>
                  Gerrit-Attention: Michael Stapelberg <stape...@google.com>
                  Gerrit-Comment-Date: Tue, 15 Jul 2025 10:14:08 +0000
                  unsatisfied_requirement
                  satisfied_requirement
                  open
                  diffy

                  Cassondra Foesch (Gerrit)

                  unread,
                  Nov 4, 2025, 9:29:02 AMNov 4
                  to Tomasz Janiszewski, goph...@pubsubhelper.golang.org, Go LUCI, Michael Stapelberg, Damien Neil, Gopher Robot, golang-co...@googlegroups.com
                  Attention needed from Damien Neil, Michael Stapelberg and Tomasz Janiszewski

                  Cassondra Foesch added 1 comment

                  File internal/impl/encode.go
                  Line 8, Patchset 7: "google.golang.org/protobuf/internal/errors"
                  Cassondra Foesch . unresolved

                  This import should be in the other import paragraph.

                  Open in Gerrit

                  Related details

                  Attention is currently required from:
                  • Damien Neil
                  • Michael Stapelberg
                  • Tomasz Janiszewski
                  Submit Requirements:
                    • requirement is not satisfiedCode-Review
                    • requirement is not satisfiedNo-Signed-off-by-Footer
                    • requirement is not satisfiedNo-Unresolved-Comments
                    • requirement is not satisfiedReview-Enforcement
                    • requirement is not satisfiedTryBots-Pass
                    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                    Gerrit-MessageType: comment
                    Gerrit-Project: protobuf
                    Gerrit-Branch: master
                    Gerrit-Change-Id: Ic00ffe8b3a1a21bcfb2c691f7c33f02ef17a9e5b
                    Gerrit-Change-Number: 673075
                    Gerrit-PatchSet: 11
                    Gerrit-Owner: Tomasz Janiszewski <tjan...@redhat.com>
                    Gerrit-Reviewer: Damien Neil <dn...@google.com>
                    Gerrit-Reviewer: Michael Stapelberg <stape...@google.com>
                    Gerrit-CC: Cassondra Foesch <cfo...@gmail.com>
                    Gerrit-CC: Gopher Robot <go...@golang.org>
                    Gerrit-Attention: Michael Stapelberg <stape...@google.com>
                    Gerrit-Attention: Tomasz Janiszewski <tjan...@redhat.com>
                    Gerrit-Attention: Damien Neil <dn...@google.com>
                    Gerrit-Comment-Date: Tue, 04 Nov 2025 14:28:54 +0000
                    Gerrit-HasComments: Yes
                    Gerrit-Has-Labels: No
                    unsatisfied_requirement
                    open
                    diffy
                    Reply all
                    Reply to author
                    Forward
                    0 new messages