zmora-agh / zmora-judge

Judging module of Zmora
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

Nieprawidłowa deserializacja wartości 0 #32

Open marcmos opened 6 years ago

marcmos commented 6 years ago

Podczas testów #31 okazało się, że wartość 0 zakodowana jako optional int64 w protobuf jest deserializowana jako Nothing. Konkretnie: przy uruchomieniu testu z limitem czasu ustawionym na zero pojawia się komunikat [Error] Executor failed: exception during #393 execution: Maybe.fromJust w miejscu https://github.com/zmora-agh/zmora-judge/blob/991e9ecc085c1e63aa1d6ce4cd932adf905c09f4/src/Worker.hs#L81 (wyjątek wyrzucany jest w innym miejscu w IO).

Komunikat był serializowany przez implementację Ruby (Protobuf 3). Serializacja i deserializacja komunikatu po stronie back-endu daje prawidłowy wynik (zero po serializacji i deserialacji pozostaje zerem).

Wydaje mi się, że na ten moment nie powinno to mieć negatywnych skutków (w naszym zastosowaniu zarówno Nothing jak i Just 1 dla ograniczenia czasowego/pamięciowego jest złym pomysłem).