Re: [chrony-users] FreeBSD socket.test FAIL: recvmsg() error EAGAIN on accept TCP socket receive

[ Thread Index | Date Index | More chrony.tuxfamily.org/chrony-users Archives ]


On Wed, Aug 27, 2025 at 04:50:36PM +0200, Matthias Andree wrote:
> chrony 4.7 and 4.8 (and possibly others) have an issue with
> test/util/socket.c's self test,
> UNLESS running under "truss" (think strace in the Linux world).
> 
> Apparently we're looking at OS-specific differences WRT non-blocking
> accept()ed sockets for TCP between FreeBSD and, say, Linux, or with
> something that a syscall tracer will cause to be retried.

I have a FreeBSD 14.2 VM that I use for testing and it wasn't failing
for me. Maybe it's too slow.

> Debugging this, SCK_AcceptConnection unconditionally sets O_NONBLOCK on the
> socket,

It should be now fixed in git. Thanks for the report.

> Speaking of which, configure states that FreeBSD 11.0 had a broken
> recvmmsg() - have there been bug reports at the time or fixes? Have we
> retried this on 13.5, 14.2, 14.3? What do we need to look for?

That bug was fixed, but it seems it's still just a loop around
recvmsg, not a single system call, which means there is an extra
system call made and I'm not sure if it's worth it.

https://github.com/freebsd/freebsd-src/blob/main/lib/libsys/recvmmsg.c#L80

-- 
Miroslav Lichvar


-- 
To unsubscribe email chrony-users-request@xxxxxxxxxxxxxxxxxxxx 
with "unsubscribe" in the subject.
For help email chrony-users-request@xxxxxxxxxxxxxxxxxxxx 
with "help" in the subject.
Trouble?  Email listmaster@xxxxxxxxxxxxxxxxxxxx.


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/