assert is used in many places in the SSG code. This should be avoided and replaced with actual handling of the problem (which sometimes is as simple as ignoring the RPC or sending a response with an error code), along with potential logging (margo_error).
For instance one assert that tripped me on multiple occasions is this one: if a process calls ssg_group_leave/destroy to gracefully leave a group, then calls ssg_finalize before everybody is informed that it has left, it gives a chance for some processes to send a ping message to that process and make it crash in this assert.
assert
is used in many places in the SSG code. This should be avoided and replaced with actual handling of the problem (which sometimes is as simple as ignoring the RPC or sending a response with an error code), along with potential logging (margo_error
).For instance one assert that tripped me on multiple occasions is this one: if a process calls
ssg_group_leave/destroy
to gracefully leave a group, then callsssg_finalize
before everybody is informed that it has left, it gives a chance for some processes to send a ping message to that process and make it crash in this assert.