On 7/16/20 2:20 PM, Andres Freund wrote: > Hi, > > On 2020-07-16 23:12:41 +0300, Pavel Begunkov wrote: >> On 16/07/2020 23:05, Andres Freund wrote: >>> Hi, >>> >>> While testing the error handling of my uring using postgres branch I >>> just encountered the situation that io_uring_setup() always fails with >>> ENOMEN. >>> >>> It only does so for the user I did the testing on and not for other >>> users. During the testing a few io_uring using processes were kill -9'd >>> and a few core-dumped after abort(). No io_uring using processes are >>> still alive. >>> >>> As the issue only happens to the one uid I suspect that >>> current_user()->locked_mem got corrupted, perhaps after hitting the >>> limit for real. >> >> Any chance it's using SQPOLL mode? > > No. It's a "plain" uring. The only thing that could be considered > special is that one of the rings is shared between processes (which all > run as the same user). Do you have this one: ommit 309fc03a3284af62eb6082fb60327045a1dabf57 (tag: io_uring-5.8-2020-07-10) Author: Jens Axboe <axboe@xxxxxxxxx> Date: Fri Jul 10 09:13:34 2020 -0600 io_uring: account user memory freed when exit has been queued -- Jens Axboe