On 11/02/2021 23:08, Pavel Begunkov wrote: > First 4 should be good and simple. 5/5 is my shot on the segfaults, > take it with a grain of salt. > > link-timeout failure is a separate beast, it's from the old times, > and comes from the kernel's io_async_find_and_cancel() failing with > ENOENT(?) when a linked-timeout sees its master but fails to cancel > it, e.g. when the master is in IRQ or posting CQE. > Maybe we just need to fix the test. Easily reproducible if you apply 3/5 and do while (1) { int err = test_single_link_timeout(10); assert(err == 0); } > > Pavel Begunkov (5): > src/queue: don't re-wait for CQEs > src/queue: control kernel enter with a var > test/link-timeout: close pipes after yourself > test/sq-poll-share: don't ignore wait errors > src/queue: fix no-error with NULL cqe > > src/include/liburing.h | 4 +++- > src/queue.c | 22 +++++++++------------- > test/link-timeout.c | 2 ++ > test/sq-poll-share.c | 9 ++++++++- > 4 files changed, 22 insertions(+), 15 deletions(-) > -- Pavel Begunkov