Bug 243209

Summary: man page for mq_open fails to specify all conditions that may cause an [EINVAL] error
Product: Documentation Reporter: Ronald F. Guilmette <rfg-freebsd>
Component: Manual PagesAssignee: freebsd-bugs (Nobody) <bugs>
Status: Open ---    
Severity: Affects Some People CC: doc, felix.the.red, unitrunker
Priority: --- Keywords: needs-qa, patch
Version: Latest   
Hardware: Any   
OS: Any   

Description Ronald F. Guilmette 2020-01-09 10:04:54 UTC
The man page for the mq_open(2) function fails to state that another possible cause of the return value being set to -1, with error set to EINVAL, is that the call, if permitted, would cause one or another of the following kernel tunable limit parameters to be exceeded:


kern.mqueue.maxmq
kern.mqueue.maxmsgsize
kern.mqueue.maxmsg
Comment 1 Felix Johnson 2021-10-16 05:30:11 UTC
I created a Phabricator review for this:
https://reviews.freebsd.org/D32517

This documents the error case and the sysctls for mqueue.

I'm not sure if this system call page is the right place
to document sysctls.
Comment 2 Ronald F. Guilmette 2021-10-16 23:42:02 UTC
I disagree. As a general matter, all possible causes of syscall failures should be documented on the relevant man page (for the syscall).
Comment 3 unitrunker 2023-12-15 08:50:19 UTC
As a follow up, here is another failure scenario for mq_open: the kernel module is not loaded.

Recent versions of FreeBSD made this a loadable module instead of baked into the kernel image.

The mq_open man page should reflect this. I think the error code is ENOSYS or 78 - Function not implemented.