Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

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

Ouverte
#129 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
35/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
python
Domaine
api

Piste de recherche

Commencez par reproduire l’échec avec le manifeste composite imbriqué présenté dans l’issue, puis suivez la sérialisation et le décodage de RunFunctionRequest qui signale google.protobuf.message.DecodeError. Comparez le traitement des valeurs d’entrée profondément imbriquées avec le cas de ressource de sortie réussi mentionné ; le travail est terminé lorsqu’un appel de fonction accepte l’imbrication présentée sans cette erreur de décodage.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

bug
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 <class 'google.protobuf.message.DecodeError'>: Error parsing message with type 'apiextensions.fn.proto.v1.RunFunctionRequest'

How can we reproduce it?
`
apiVersion:  <APIVERSION>
kind: XCOMPO
metadata:
  name: <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

Langage dominant
Python
Étoiles
12
Forks
15
Merge moyen
1 j 12 h
PR mergées (30 j)
7

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de crossplane/function-sdk-python

Toutes les issues de crossplane/function-sdk-python

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.