Well that's an interesting one! Apparently if you issue multiple concurrent preadv calls on a TUN device using io_uring, the TUN device falls over. Possibly corrupting memory along the way. Which might be why the kernel hung on shutdown...