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

Decoding protobufs when a new field comes in breaks

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

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
42/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
ruby

Línea de trabajo

Comienza en lib/temporal/connection/converter/payload/proto_json.rb, línea 18, e inspecciona cómo el analizador de protobuf de Ruby gestiona los campos añadidos por un servicio Go ascendente. Reproduce el ParseError con un campo desconocido y determina si la biblioteca o Google protobufs controla este comportamiento. Se considera terminado cuando un worker de Ruby Temporal puede deserializar el mensaje sin fallar debido al nuevo campo.

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

Descripción

There's a bug when an upstream service adds a new protocol buffer field and sends it along to a Ruby temporal worker. For example, we have a service written in Go that has an update protocol buffer message that is being serialized. The activity that executes with the message as an input is written in Ruby. The error is:

Google::Protobuf::ParseError: Error occurred during parsing: Error parsing JSON @1:845: No such field: newField

The offending line is here: https://github.com/coinbase/temporal-ruby/blob/3fbc675fbe24bce236fba2376910fd5dc9a9ff5f/lib/temporal/connection/converter/payload/proto_json.rb#L18

Honestly, I don't know if this is the responsibility of this library or from Google protobufs. In Go, you can explicitly say ignore unknown fields, however Ruby does not seem to have this behavior. So I'm not sure what to do or if anyone has any exceptions. Protobufs should be compatible with deserializing into messages it doesn't know about new fields.

Lenguaje dominante
Ruby
Estrellas
288
Forks
113
Merge medio
10 d 15 h
PR fusionados (30 d)
2

Guía de contribución

Abrir la guía de contribución

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 coinbase/temporal-ruby

Todos los issues de coinbase/temporal-ruby

Issues similares

Más issues de Ruby

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.