public inbox for [email protected]
 help / color / mirror / Atom feed
* Socket IORING_OP_WRITEV fails spuriously with EAGAIN.
@ 2023-05-23  3:28 Peter Veentjer
  0 siblings, 0 replies; only message in thread
From: Peter Veentjer @ 2023-05-23  3:28 UTC (permalink / raw)
  To: io-uring


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?



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-05-23  3:29 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-23  3:28 Socket IORING_OP_WRITEV fails spuriously with EAGAIN Peter Veentjer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox