Socket IORING_OP_WRITEV fails spuriously with EAGAIN.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I'm working on an io_uring binding for Java and one of my integration
tests is failing. In this test, I'm writing large payloads
(up to 10x1MB) to the same non-blocking socket using IORING_OP_WRITE
to simulate congestion.

The strange thing is that the cqe, indicates the request failed with an
EAGAIN on Fedora 38 (Linux 5.16.12-200.fc35.x86_64). But on On Arch
Linux (linux 6.3.2.arch1-1) the test runs perfectly fine.

When I reduce the size of the payloads or the number of payloads,
the test passes on Fedora.

My questions are:

1) under which condition can an IORING_OP_WRITEV fail with an EAGAIN?
I have gone with a comb through the documentation and I do not see any
obvious causes.

2) what is the recommended approach to resolve the problem?
Resubmitting the task solves the problem, but I'm worried it leads to
spinning behavior.

3) When an IORING_OP_WRITEV fails with EAGAIN, is it guaranteed that
nothing got written?

Regards,

Peter



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux