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

Closed
nineinchnick opened this issue Jan 16, 2025 · 2 comments
Closed

Deserialization Error with Envoy Gateway #3434

nineinchnick opened this issue Jan 16, 2025 · 2 comments
Labels
kind/bug Some behavior is incorrect or out of spec language/java 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
@rquitales
Copy link
Member

@nineinchnick Apologies that you're facing this error. We recently update pulumi-java to v1.0.0 which powers our Java codegen. Would you be able to update to the latest pulumi-kubernetes version (>= v4.21.0) to see if this resolves your issue? Thanks

@rquitales rquitales added awaiting-feedback Blocked on input from the author language/java and removed needs-triage Needs attention from the triage team labels Jan 25, 2025
@nineinchnick
Copy link
Author

I hit multiple other issues, so I gave up on using Pulumi, at least for now. I'll close this, because it's not confirmed.

@nineinchnick nineinchnick closed this as not planned Won't fix, can't repro, duplicate, stale Jan 27, 2025
@pulumi-bot pulumi-bot added needs-triage Needs attention from the triage team and removed awaiting-feedback Blocked on input from the author labels Jan 27, 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 language/java needs-triage Needs attention from the triage team
Projects
None yet
Development

No branches or pull requests

3 participants