Decoding protobufs when a new field comes in breaks
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 42/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- ruby
- Ambito
- backend, distributed-systems
Direzione di ricerca
Inizia dalla riga 18 di lib/temporal/connection/converter/payload/proto_json.rb e verifica come il parser protobuf Ruby gestisce i campi aggiunti da un servizio Go upstream. Riproduci il ParseError con un campo sconosciuto e determina se questo comportamento è controllato dalla libreria o da Google protobufs. Il lavoro è completato quando un worker Ruby Temporal può deserializzare il messaggio senza fallire a causa del nuovo campo.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- Ruby
- Stelle
- 288
- Fork
- 113
- Merge medio
- 10g 15h
- PR unite (30g)
- 2
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di coinbase/temporal-ruby
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
coinbase/temporal-ruby#361 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
coinbase/temporal-ruby#341 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
coinbase/temporal-ruby#328 · 1 commento ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
coinbase/temporal-ruby#326 · 1 commento ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
coinbase/temporal-ruby#324 · 3 commenti · 2 reazioni ·
Tutte le issue di coinbase/temporal-ruby
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Please Drop ruby 3.2 support Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
googleapis/google-api-ruby-client#28001 · 5 reazioni ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100