Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 02 Dec 2020 00:50:09 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 251515] lio_listio(2) never sends kevent if nent==0
Message-ID:  <bug-251515-227@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D251515

            Bug ID: 251515
           Summary: lio_listio(2) never sends kevent if nent=3D=3D0
           Product: Base System
           Version: CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: asomers@FreeBSD.org

It may seem stupid, but you can call lio_listio(2) with an empty aiocb list=
.  I
would naively expect lio_listio to do nothing and return in that case.  Ind=
eed,
that's what it does when mode =3D=3D LIO_WAIT.  However, if mode =3D=3D LIO=
_NOWAIT and
sigev_notify =3D=3D SIGEV_KEVENT, no event is ever delivered.

The problem can be demonstrated by the
sys/aio/lio_test:lio_listio_empty_nowait_kevent test case.

Since the Open Group's AIO specification never mentions kevent, we get to m=
ake
the call on what to do.  jhb and I agree that sending immediate notificatio=
n is
sensible.

This was originally reported as bug 220398, but that bug really turned out =
to
be two bugs.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-251515-227>