[Bug 217261] sys/aio/aio_test:aio_md_test fails semi-frequently with Jenkins with "aio_write failed: Operation not supported"
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Tue May 9 20:58:40 UTC 2017
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=217261
Ngie Cooper <ngie at FreeBSD.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |kib at FreeBSD.org
--- Comment #4 from Ngie Cooper <ngie at FreeBSD.org> ---
I'm pretty sure that this is happening due to r303154:
- if (!enable_aio_unsafe)
+ safe = false;
+ if (fp->f_type == DTYPE_VNODE) {
+ vp = fp->f_vnode;
+ if (vp->v_type == VREG || vp->v_type == VDIR) {
+ mp = fp->f_vnode->v_mount;
+ if (mp == NULL || (mp->mnt_flag & MNT_LOCAL) != 0)
+ safe = true;
+ }
+ }
+ if (!(safe || enable_aio_unsafe))
I'm not entirely sure that that commit accounted for these cases noted in
aio(4) (in particular, the second paragraph):
Asynchronous I/O operations on some file descriptor types may block an
AIO daemon indefinitely resulting in process and/or system hangs.
Operations on these file descriptor types are considered "unsafe" and
disabled by default. They can be enabled by setting the
vfs.aio.enable_unsafe sysctl node to a non-zero value.
Asynchronous I/O operations on sockets, raw disk devices, and regular
files on local filesystems do not block indefinitely and are always
enabled.
VBLK and VSOCK doesn't seem to be handled appropriately. VCHR seems trickier to
handle, depending on the input device (pty's for instance could block).
The second paragraph is ambiguous too -- are block devices ok, but not
character devices, or vice versa, or are all forms ok?
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-testing
mailing list