async-rdma
async-rdma copied to clipboard
RDMA Soundness Scope
It is impossible to prevent an incorrect remote process from triggering UB in the local process.
Like mmap
and /proc/self/mem
, such a situation is out of the control of Rust language.
There are two solutions:
- Document the behavior and remove it from soundness concerns. Like https://github.com/rust-lang/rust/pull/97837
- Put an unsafe function on the way from network connections to active RDMA connections. The function means "trust the remote process" while it is impossible to check whether the remote process is correct actually.
Timeout from single side is still unsound because UB may happen when system time goes back.
Related:
- https://github.com/rust-lang/rust/issues/32670
- #55
- #74