Add workaround for current kernel bug related to WRITEV and IOSEQ_ASYNC

Motivation:

There is currently a bug in the kernel that let WRITEV sometimes fail
when IOSEQ_ASYNC is enabled

Modifications:

Don't use IOSEQ_ASYNC for WRITEV for now

Result:

Tests pass
This commit is contained in:
Norman Maurer 2020-09-05 10:22:02 +02:00
parent c6db51ba1f
commit ccd5a6e411

View File

@ -137,7 +137,10 @@ final class IOUringSubmissionQueue {
} }
// TODO: Make it configurable if we should use this flag or not. // TODO: Make it configurable if we should use this flag or not.
PlatformDependent.putByte(sqe + SQE_FLAGS_FIELD, (byte) Native.IOSQE_ASYNC); PlatformDependent.putByte(sqe + SQE_FLAGS_FIELD,
// Workaround for a kernel bug:
// See https://lore.kernel.org/io-uring/6428c1ee0234105d18c5e3e88aa00c57@nickhill.org/T/#t
(byte) (op != Native.IORING_OP_WRITEV ? Native.IOSQE_ASYNC : 0));
// pad field array -> all fields should be zero // pad field array -> all fields should be zero
long offsetIndex = 0; long offsetIndex = 0;