Re: io_uring process termination/killing is not working

Jens Axboe
2020-08-15T23:31:05Z

On 8/15/20 3:35 PM, Jens Axboe wrote:
> On 8/15/20 2:43 PM, Josef wrote:
>> it seems to be that read event doesn't work properly, but I'm not sure
>> if it is related to what Pavel mentioned
>> poll accept works but not poll read -> cqe still receives
>> poll event but no read event, however I received a read event after
>> the third request via telnet
>>
>> I just tested https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git/commit/?h=io_uring-5.9&id=d4e7cd36a90e38e0276d6ce0c20f5ccef17ec38c
>> and
>> https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git/commit/?h=io_uring-5.9&id=227c0c9673d86732995474d277f84e08ee763e46
>> (but it works on Linux 5.7)
>
> I'll take a look. BTW, you seem to be using links in a funny way. You set the
> IOSQE_IO_LINK on the start of a link chain, and then the chain stops when
> you _don't_ have that flag set. You just set it on everything, then
> work-around it with a NOP?
>
> For this example, only the poll should have IOSQE_IO_LINK set, accept
> and read should not.
>
> This isn't causing your issue, just wanted to clarify how links are
> used.

Please try:

https://git.kernel.dk/cgit/linux-block/commit/?h=io_uring-5.9&id=41d3344604e80db0e466f9deca5262b0914e4827

There was a bug with the -EAGAIN doing repeated retries on sockets that
are marked non-blocking.

--
Jens Axboe