You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Nov 1, 2023. It is now read-only.
The current test program for protocol.rs simulates the random message ordering of distributed protocols by arbitrarily choosing a player to act at each step. However, this is not sufficient to model arbitrary message ordering as if message A causes message B, B will appear later in the message queue.
To fix the test, change
let message: Message = deserialize!(&self.inbox.remove(0))?;
to
let index = rng.gen_range(0..self.inbox.len());
let message: Message = deserialize!(&self.inbox.remove(index))?;
in process_single_message()
This change reveals some bugs in the protocol implementation (both on the main branch and in PR #32). Namely, an out-of-order message will cause a player to attempt to retrieve data from storage that has not yet been put into storage, causing a runtime BailError("Could not find StorableIndex {[omitted]} when getting from storage"). Most of the time, the program will crash attempting to retrieve a missing RoundOnePrivate, but occasionally the execution gets far enough to crash on a missing RoundOnePublic. Fixing these may likely reveal additional issues.
The text was updated successfully, but these errors were encountered:
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
The current test program for protocol.rs simulates the random message ordering of distributed protocols by arbitrarily choosing a player to act at each step. However, this is not sufficient to model arbitrary message ordering as if message A causes message B, B will appear later in the message queue.
To fix the test, change
to
in process_single_message()
This change reveals some bugs in the protocol implementation (both on the main branch and in PR #32). Namely, an out-of-order message will cause a player to attempt to retrieve data from storage that has not yet been put into storage, causing a runtime BailError("Could not find StorableIndex {[omitted]} when getting from storage"). Most of the time, the program will crash attempting to retrieve a missing RoundOnePrivate, but occasionally the execution gets far enough to crash on a missing RoundOnePublic. Fixing these may likely reveal additional issues.
The text was updated successfully, but these errors were encountered: