crossplane / crossplane/function-sdk-python

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

未关闭
#129 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
bug
主要语言
Python
星标
12
派生
15
平均合并
2 天 5 小时
30 天内合并 PR
3

描述

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

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。