crossplane / crossplane/function-sdk-python

google.protobuf.message.DecodeError when passed objects with nested levels above 30

Offen
#129 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
bug
Vorherrschende Sprache
Python
Sterne
12
Forks
15
Ø Merge
2 T. 5 Std.
Gemergte PRs (30 T.)
3

Beschreibung

### What happened?

We have composition that generates or consumes values with a high level of nested sub-values. (Those are CRDs that we are using with the Kubernetes Provider)
When going over 30 levels of imbrication the error below is raised

`
crossplane: error: cannot render composite resource: cannot run pipeline step "blueprint": rpc error: code = Unknown desc = Unexpected : Error parsing message with type 'apiextensions.fn.proto.v1.RunFunctionRequest'`

### How can we reproduce it?

```
`
apiVersion:
kind: XCOMPO
metadata:
name:
spec:
debug:
level0:
level1:
level2:
level3:
level4:
level5:
level6:
level7:
level8:
level9:
level10:
level11:
level12:
level13:
level14:
level15:
level16:
level17:
level18:
level19:
level20:
level21:
level22:
level23:
level24:
level25:
level26:
level27:
level28:
level29:

```

Running ☝ this composite would faild if there is a level30 as child of level29.

Could this be linked to the limits set in Protobuf (https://github.com/protocolbuffers/protobuf/issues/6537) ?

Note: there is no issue when outputing resources with more than 30 levels. (ie: running something like

`rsp.desired.resources["toto"].resource.update(resources)`

Where resources has more than 30 levels.
It is only when the function is called with too many depth inputs that the exception is raised.

### What environment did it happen in?
Function version:
0.6.0

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.