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

Deserialization Error with Envoy Gateway #3434

Open
nineinchnick opened this issue Jan 16, 2025 · 0 comments
Open

Deserialization Error with Envoy Gateway #3434

nineinchnick opened this issue Jan 16, 2025 · 0 comments
Labels
kind/bug Some behavior is incorrect or out of spec needs-triage Needs attention from the triage team

Comments

@nineinchnick
Copy link

What happened?

I'm trying to deploy Envoy Gateway 1.2.4 from their single file manifest, or Helm chart.

I'm getting an exception like this:

   io.grpc.StatusRuntimeException: CANCELLED: Failed to read message.
    	at io.grpc.Status.asRuntimeException(Status.java:532)
    	at io.grpc.stub.ClientCalls$UnaryStreamToFuture.onClose(ClientCalls.java:538)
    	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:564)
    	at io.grpc.internal.ClientCallImpl.access$100(ClientCallImpl.java:72)
    	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:729)
    	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:710)
    	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
    	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
    	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
    	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
    	at java.base/java.lang.Thread.run(Thread.java:1575)
    Caused by: io.grpc.StatusRuntimeException: INTERNAL: Invalid protobuf byte sequence
    	at io.grpc.Status.asRuntimeException(Status.java:524)
    	at io.grpc.protobuf.lite.ProtoLiteUtils$MessageMarshaller.parse(ProtoLiteUtils.java:240)
    	at io.grpc.protobuf.lite.ProtoLiteUtils$MessageMarshaller.parse(ProtoLiteUtils.java:134)
    	at io.grpc.MethodDescriptor.parseResponse(MethodDescriptor.java:284)
    	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1MessagesAvailable.runInternal(ClientCallImpl.java:657)
    	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1MessagesAvailable.runInContext(ClientCallImpl.java:644)
    	... 5 more
    Caused by: com.google.protobuf.InvalidProtocolBufferException: Protocol message had too many levels of nesting.  May be malicious.  Use setRecursionLimit() to increase the recursion depth limit.
    	at com.google.protobuf.InvalidProtocolBufferException.recursionLimitExceeded(InvalidProtocolBufferException.java:133)
    	at com.google.protobuf.CodedInputStream.checkRecursionLimit(CodedInputStream.java:177)
    	at com.google.protobuf.CodedInputStream$ArrayDecoder.readMessage(CodedInputStream.java:850)
    	at com.google.protobuf.MapEntryLite.parseField(MapEntryLite.java:105)
    	at com.google.protobuf.MapEntryLite.parseEntry(MapEntryLite.java:161)
    	at com.google.protobuf.MapEntry.<init>(MapEntry.java:84)
    	at com.google.protobuf.MapEntry.<init>(MapEntry.java:27)
    	at com.google.protobuf.MapEntry$Metadata$1.parsePartialFrom(MapEntry.java:48)
    	at com.google.protobuf.MapEntry$Metadata$1.parsePartialFrom(MapEntry.java:42)
    	at com.google.protobuf.CodedInputStream$ArrayDecoder.readMessage(CodedInputStream.java:869)
    	at com.google.protobuf.Struct$Builder.mergeFrom(Struct.java:442)
    	at com.google.protobuf.Struct$Builder.mergeFrom(Struct.java:307)
    	at com.google.protobuf.CodedInputStream$ArrayDecoder.readMessage(CodedInputStream.java:853)
    	at com.google.protobuf.Value$Builder.mergeFrom(Value.java:716)
    	at com.google.protobuf.Value$Builder.mergeFrom(Value.java:536)
    	at com.google.protobuf.CodedInputStream$ArrayDecoder.readMessage(CodedInputStream.java:853)
    	at com.google.protobuf.MapEntryLite.parseField(MapEntryLite.java:105)
    	at com.google.protobuf.MapEntryLite.parseEntry(MapEntryLite.java:161)
    	at com.google.protobuf.MapEntry.<init>(MapEntry.java:84)
    	at com.google.protobuf.MapEntry.<init>(MapEntry.java:27)
    	at com.google.protobuf.MapEntry$Metadata$1.parsePartialFrom(MapEntry.java:48)
    	at com.google.protobuf.MapEntry$Metadata$1.parsePartialFrom(MapEntry.java:42)
    	at com.google.protobuf.CodedInputStream$ArrayDecoder.readMessage(CodedInputStream.java:869)
    	at com.google.protobuf.Struct$Builder.mergeFrom(Struct.java:442)
    	at com.google.protobuf.Struct$Builder.mergeFrom(Struct.java:307)
    	at com.google.protobuf.CodedInputStream$ArrayDecoder.readMessage(CodedInputStream.java:853)
    	at com.google.protobuf.Value$Builder.mergeFrom(Value.java:716)
    	at com.google.protobuf.Value$Builder.mergeFrom(Value.java:536)
    	at com.google.protobuf.CodedInputStream$ArrayDecoder.readMessage(CodedInputStream.java:853)
    	at com.google.protobuf.MapEntryLite.parseField(MapEntryLite.java:105)
    	at com.google.protobuf.MapEntryLite.parseEntry(MapEntryLite.java:161)
    	at com.google.protobuf.MapEntry.<init>(MapEntry.java:84)
    	at com.google.protobuf.MapEntry.<init>(MapEntry.java:27)
    	at com.google.protobuf.MapEntry$Metadata$1.parsePartialFrom(MapEntry.java:48)
    	at com.google.protobuf.MapEntry$Metadata$1.parsePartialFrom(MapEntry.java:42)
    	at com.google.protobuf.CodedInputStream$ArrayDecoder.readMessage(CodedInputStream.java:869)
    	at com.google.protobuf.Struct$Builder.mergeFrom(Struct.java:442)
    	at com.google.protobuf.Struct$Builder.mergeFrom(Struct.java:307)
    	at com.google.protobuf.CodedInputStream$ArrayDecoder.readMessage(CodedInputStream.java:853)
    	at com.google.protobuf.Value$Builder.mergeFrom(Value.java:716)
    	at com.google.protobuf.Value$Builder.mergeFrom(Value.java:536)
    	at com.google.protobuf.CodedInputStream$ArrayDecoder.readMessage(CodedInputStream.java:853)
    	at com.google.protobuf.MapEntryLite.parseField(MapEntryLite.java:105)
    	at com.google.protobuf.MapEntryLite.parseEntry(MapEntryLite.java:161)
    	at com.google.protobuf.MapEntry.<init>(MapEntry.java:84)
    	at com.google.protobuf.MapEntry.<init>(MapEntry.java:27)
    	at com.google.protobuf.MapEntry$Metadata$1.parsePartialFrom(MapEntry.java:48)
    	at com.google.protobuf.MapEntry$Metadata$1.parsePartialFrom(MapEntry.java:42)
...
    	at com.google.protobuf.CodedInputStream$ArrayDecoder.readMessage(CodedInputStream.java:869)
    	at com.google.protobuf.Struct$Builder.mergeFrom(Struct.java:442)
    	at com.google.protobuf.Struct$Builder.mergeFrom(Struct.java:307)
    	at com.google.protobuf.CodedInputStream$ArrayDecoder.readMessage(CodedInputStream.java:853)
    	at pulumirpc.Provider$InvokeResponse$Builder.mergeFrom(Provider.java:10093)
    	at pulumirpc.Provider$InvokeResponse$1.parsePartialFrom(Provider.java:10632)
    	at pulumirpc.Provider$InvokeResponse$1.parsePartialFrom(Provider.java:10624)
    	at com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:63)
    	at com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:25)
    	at io.grpc.protobuf.lite.ProtoLiteUtils$MessageMarshaller.parseFrom(ProtoLiteUtils.java:245)
    	at io.grpc.protobuf.lite.ProtoLiteUtils$MessageMarshaller.parse(ProtoLiteUtils.java:237)
    	... 9 more

I'm using:

  • com.pulumi:pulumi:0.16.1
  • com.pulumi:kubernetes:4.18.4
  • com.pulumi:command:1.0.0
  • Pulumi CLI at v3.132.0 (also tried v3.145.0)

Example

ConfigFile envoy = new ConfigFile("envoy", ConfigFileArgs.builder()
  .file("https://github.com/envoyproxy/gateway/releases/download/v1.2.4/install.yaml")
  .build());

Output of pulumi about

CLI          
Version      3.132.0
Go Version   go1.23.1
Go Compiler  gc

Plugins
KIND      NAME  VERSION
language  java  unknown

Host     
OS       darwin
Version  15.2
Arch     arm64

This project is written in java: executable='/usr/bin/java' version='openjdk 23.0.1 2024-10-15
OpenJDK Runtime Environment Temurin-23.0.1+11 (build 23.0.1+11)
OpenJDK 64-Bit Server VM Temurin-23.0.1+11 (build 23.0.1+11, mixed mode, sharing)' javac='23.0.1' maven='Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)' java='/usr/bin/java'

Current Stack: x

Found no resources associated with y

Found no pending operations associated with y

Backend        
Name           pulumi.com
URL            https://app.pulumi.com/jan-was
User           jan-was
Organizations  jan-was, starburstdata
Token type     personal

No dependencies found

Pulumi locates its logs in /var/folders/h6/n2g1k82s6rgcw5ghnf1lmgd00000gn/T/ by default

Additional context

I found a very similar existing issue, but for a different app: #3150. I'm not sure if it's a regression, but feel free to close this if it's a duplicate.

Contributing

Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

@nineinchnick nineinchnick added kind/bug Some behavior is incorrect or out of spec needs-triage Needs attention from the triage team labels Jan 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Some behavior is incorrect or out of spec needs-triage Needs attention from the triage team
Projects
None yet
Development

No branches or pull requests

1 participant