As documented in issue #218, Derecho doesn't use the correct type for raw buffers of bytes (e.g. the RDMA send and receive buffers, and serialized objects). I replaced all instances of "char arrays" (including char*, char[], and char const * const) with the equivalent array of type uint8_t, except for the few cases where the char array actually did represent a C-style string.
I have thoroughly tested this code with both bandwidth_test (for basic functionality) and view_change_test (for failure and recovery), and it does not seem to have introduced any new bugs despite the extensive changes. Once this is merged to master, and I build Cascade on it, I can hopefully eliminate a source of bugs in CascadeChain.
As documented in issue #218, Derecho doesn't use the correct type for raw buffers of bytes (e.g. the RDMA send and receive buffers, and serialized objects). I replaced all instances of "char arrays" (including
char*
,char[]
, andchar const * const
) with the equivalent array of type uint8_t, except for the few cases where the char array actually did represent a C-style string.I have thoroughly tested this code with both bandwidth_test (for basic functionality) and view_change_test (for failure and recovery), and it does not seem to have introduced any new bugs despite the extensive changes. Once this is merged to master, and I build Cascade on it, I can hopefully eliminate a source of bugs in CascadeChain.