Open ronag opened 5 days ago
Yes, ordering in the handling of requests sent to the ring is not guaranteed. So you're right, the offset should be properly set when calling uv_fs_write()
.
I think we should throw in fs.write
if position
is not provided while UV_USE_IO_URING
is enabled. Do we have any other such instances? net
?
@nodejs/tsc I think this is so bad that we should just remove UV_USE_IO_URING
until we figure out a way to fix it.
This should not be an issue once v1.49.0
, which was just released, is used as it disables the SQPOLL
ring by default.
Didn't we disable UV_USE_IO_URING by default everywhere?
Didn't we disable UV_USE_IO_URING by default everywhere?
Yes, referring to a security issue. But some users like us enable it without knowing that here be dragons.
@ronag wait, I'm not familiar with the internals of the streams. Can those uv_fs_write()
ops happen in parallel or sequentially? If the latter, I think it should work.
They are sequential.
Ok, can you share a reproducer?
I suspect possible regression. Not sure what version but must have been recent:
Will not create a full sized file. I suspect that since
createWriteStream
doesn't explicitly setposition
during writes it expects the file handle position to be properly updated, which does not seem to be the case with URING.