On 2020-09-04 20:57, Jens Axboe wrote:
On 9/4/20 9:53 PM, Jens Axboe wrote:
On 9/4/20 9:22 PM, nick@xxxxxxxxxxxx wrote:
Hi,
I am helping out with the netty io_uring integration, and came across
some strange behaviour which seems like it might be a bug related to
async offload of read/write iovecs.
Basically a WRITEV SQE seems to fail reliably with -BADADDRESS when
the
IOSQE_ASYNC flag is set but works fine otherwise (everything else the
same). This is with 5.9.0-rc3.
Do you see it just on 5.9-rc3, or also 5.8? Just curious... But that
is
very odd in any case, ASYNC writev is even part of the regular tests.
Any sort of deferral, be it explicit via ASYNC or implicit through
needing to retry, saves all the needed details to retry without
needing any of the original context.
Can you narrow down what exactly is being written - like file type,
buffered/O_DIRECT, etc. What file system, what device is hosting it.
The more details the better, will help me narrow down what is going
on.
Forgot, also size of the IO (both total, but also number of iovecs in
that particular request.
Essentially all the details that I would need to recreate what you're
seeing.
I only started testing on 5.9-rc3 so not sure about earlier versions,
but I'll try and report back.
It's a socket with O_NONBLOCK, iovec array length is ~30 and sum of
buffer sizes ~1MB.
If it's not easy to recreate then please don't waste time since it could
be my mistake - I'll try to make a standalone reproducer in that case.