crossplane / crossplane/function-sdk-python

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

Aperta
#129 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
bug
Lingua principale
Python
Stelle
12
Fork
15
Merge medio
2g 5h
PR unite (30g)
3

Descrizione

### 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

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.