rustix-uring icon indicating copy to clipboard operation
rustix-uring copied to clipboard

Test "test_udp_recvmsg_multishot_trunc" fails

Open asayers opened this issue 8 months ago • 1 comments

Running io-uring-test on 1f30c22 (current main) results in this panic:

$ RUST_BACKTRACE=1 cargo run --release -p io-uring-test
thread 'main' panicked at io-uring-test/src/tests/net.rs:1802:39:
called `Result::unwrap()` on an `Err` value: ()
stack backtrace:
   0: rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::result::unwrap_failed
   3: io_uring_test::tests::net::test_udp_recvmsg_multishot_trunc
   4: io_uring_test::main

asayers avatar Apr 03 '25 08:04 asayers

This looks like a bug in the test. Before the test_udp_recvmsg_multishot_trunc test runs, the test_recvmsg_multishot test runs, and the code here is registering three buffers (contradicting the comment saying it's registering two), and sending two messages. It appears this means that this test leaves behind a multishot recv that's still waiting for a third message. So when test_udp_recvmsg_multishot_trunc runs, it sends a message, and that message gets received by the stale multishot recv, which writes the data to a buffer which ceased to exist when test_recvmsg_multishot returned, so it corrupts random things on the stack.

sunfishcode avatar Apr 03 '25 12:04 sunfishcode