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).
Podczas testów #31 okazało się, że wartość 0 zakodowana jako
optional int64
w protobuf jest deserializowana jakoNothing
. 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 wIO
).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 iJust 1
dla ograniczenia czasowego/pamięciowego jest złym pomysłem).