Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Cannot handle recursive protobufs

Abierto
#3 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
python
Área
testing-qa

Línea de trabajo

Start by reproducing the example through protofuzz.from_description_string and fuzzers['A'].permute(). Read protofuzz/protofuzz.py, especially descriptor_to_generator and _prototype_to_generator, where the traceback recurses; done means the mutually recursive A and B descriptions no longer produce a RecursionError.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Repro:

from protofuzz import protofuzz

fuzzers = protofuzz.from_description_string("""
    message A {
     optional B b = 1;
    }
    message B {
     optional A a = 1;
    }
""")
for obj in fuzzers['A'].permute():
    print(obj)

Result:

...lots of stuff...
egg/protofuzz/protofuzz.py", line 113, in descriptor_to_generator
    generator = _prototype_to_generator(descriptor, cls)
  File "/Users/ezyang/Dev/onnx-env/lib/python3.6/site-packages/protofuzz-0.1-py3.6.egg/protofuzz/protofuzz.py", line 100, in _prototype_to_generator
    generator = descriptor_to_generator(descriptor.message_type, cls)
  File "/Users/ezyang/Dev/onnx-env/lib/python3.6/site-packages/protofuzz-0.1-py3.6.egg/protofuzz/protofuzz.py", line 113, in descriptor_to_generator
    generator = _prototype_to_generator(descriptor, cls)
  File "/Users/ezyang/Dev/onnx-env/lib/python3.6/site-packages/protofuzz-0.1-py3.6.egg/protofuzz/protofuzz.py", line 100, in _prototype_to_generator
    generator = descriptor_to_generator(descriptor.message_type, cls)
  File "/Users/ezyang/Dev/onnx-env/lib/python3.6/site-packages/protofuzz-0.1-py3.6.egg/protofuzz/protofuzz.py", line 113, in descriptor_to_generator
    generator = _prototype_to_generator(descriptor, cls)
  File "/Users/ezyang/Dev/onnx-env/lib/python3.6/site-packages/protofuzz-0.1-py3.6.egg/protofuzz/protofuzz.py", line 83, in _prototype_to_generator
    if descriptor.type in ints32+ints64:
RecursionError: maximum recursion depth exceeded in comparison
Lenguaje dominante
Python
Estrellas
288
Forks
36
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de trailofbits/protofuzz

Todos los issues de trailofbits/protofuzz

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.