io_uring Outlives Its Process: When waitpid() Isn't an I/O Barrier

Is There I/O After Death? What Happens to Io_uring When a Process Dies

io_uring Outlives Its Process: When waitpid() Isn't an I/O Barrier

On Linux, killing and reaping a process doesn't always stop its I/O. For ordinary io_uring, writes submitted before death can complete after waitpid() returns, as demonstrated by a test using dm-delay and a busy NVMe queue. SQPOLL and native AIO, however, wait for I/O during teardown. The author explains the kernel paths and suggests using flock() as a barrier for fail-fast recovery protocols.

The process was gone. waitpid() had returned in about 3 milliseconds. And almost three seconds later, its writes arrived.

More from this day

2026-09-06