Re: git: 2c1963d46335 - main - procfs rlimit: handle pipebuf [and related] :pipebuf . . . Invalid argument

From: Konstantin Belousov <kostikbel_at_gmail.com>
Date: Sun, 06 Oct 2024 06:30:57 UTC
On Sat, Oct 05, 2024 at 06:14:40PM -0700, Mark Millard wrote:
> Konstantin Belousov <kib_at_FreeBSD.org> wrote on
> Date: Fri, 20 Sep 2024 21:09:29 UTC :
> 
> > The branch main has been updated by kib:
> > 
> > URL: https://cgit.FreeBSD.org/src/commit/?id=2c1963d46335576d29fe21a4e7b424c47b711ef4
> > 
> > commit 2c1963d46335576d29fe21a4e7b424c47b711ef4
> > Author: Konstantin Belousov <kib@FreeBSD.org>
> > AuthorDate: 2024-09-20 15:04:06 +0000
> > Commit: Konstantin Belousov <kib@FreeBSD.org>
> > CommitDate: 2024-09-20 21:08:51 +0000
> > 
> > procfs rlimit: handle pipebuf
> > 
> > Sponsored by: The FreeBSD Foundation
> > MFC after: 1 week
> > ---
> > sys/sys/resource.h | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/sys/sys/resource.h b/sys/sys/resource.h
> > index c18e45d50b30..81346028f1ed 100644
> > --- a/sys/sys/resource.h
> > +++ b/sys/sys/resource.h
> > @@ -127,7 +127,7 @@ struct __wrusage {
> > */
> > 
> > #ifdef _RLIMIT_IDENT
> > -static const char *rlimit_ident[RLIM_NLIMITS] = {
> > +static const char *rlimit_ident[] = {
> > "cpu",
> > "fsize",
> > "data",
> > @@ -143,6 +143,7 @@ static const char *rlimit_ident[RLIM_NLIMITS] = {
> > "swap",
> > "kqueues",
> > "umtx",
> > + "pipebuf",
> > };
> > #endif
> 
> As part of an experiment I just had 1500024 (somewhat after the
> libmd.so.{6 -> 7} update) boot with a 1500023 kernel that was
> somewhat before the fairly recent pipebuf related changes, such
> as the above. This produced a bunch of error messages, such as:
> 
> 
> . . .
> ugen0.7: <Microchip Hub Feature Controller> at usbus0 (disconnected)
> Warning: no time-of-day clock registered, system time will not be set accurately
> 2024-10-05T17:33:58.032649-07:00 - init 20 - - getting pipebuf resource limit: Invalid argument
> . . .
> Starting devd.
> limits: setrlimit pipebuf: Invalid argument
> /etc/rc: WARNING: failed to start devd
> Waiting 30s for the default route interface: .............................
> . . .
> Starting syslogd.
> limits: setrlimit pipebuf: Invalid argument
> /etc/rc: WARNING: failed to start syslogd
> . . .
> Starting rpcbind.
> limits: setrlimit pipebuf: Invalid argument
> /etc/rc: WARNING: failed to start rpcbind
> NFS access cache time=60
> Starting ntpd.
> limits: setrlimit pipebuf: Invalid argument
> /etc/rc: WARNING: failed to start ntpd
> . . .
> Starting rpcbind.
> limits: setrlimit pipebuf: Invalid argument
> /etc/rc.d/mountd: WARNING: Unable to force rpcbind. It may already be running.
> Starting mountd.
> limits: setrlimit pipebuf: Invalid argument
> /etc/rc: WARNING: Unable to force mountd. It may already be running.
> /etc/rc: WARNING: failed precmd routine for nfsd
> . . .
> Starting sshd.
> limits: setrlimit pipebuf: Invalid argument
> /etc/rc: WARNING: failed to start sshd
> Starting cron.
> limits: setrlimit pipebuf: Invalid argument
> /etc/rc: WARNING: failed to start cron
> . . .
> 2024-10-06T00:34:50.800786-07:00 aarch64-main-pbase init 1014 - - getting pipebuf resource limit: Invalid argument
> 2024-10-06T00:34:50.800858-07:00 aarch64-main-pbase init 1015 - - getting pipebuf resource limit: Invalid argument
> 2024-10-06T00:34:50.800939-07:00 aarch64-main-pbase init 1016 - - getting pipebuf resource limit: Invalid argument
> 2024-10-06T00:34:50.801101-07:00 aarch64-main-pbase init 1018 - - getting pipebuf resource limit: Invalid argument
> 2024-10-06T00:34:50.801090-07:00 aarch64-main-pbase init 1017 - - getting pipebuf resource limit: Invalid argument
> 2024-10-06T00:34:50.801240-07:00 aarch64-main-pbase init 1020 - - getting pipebuf resource limit: Invalid argument
> 2024-10-06T00:34:50.801250-07:00 aarch64-main-pbase init 1019 - - getting pipebuf resource limit: Invalid argument
> 2024-10-06T00:34:50.801406-07:00 aarch64-main-pbase init 1021 - - getting pipebuf resource limit: Invalid argument
> ugen0.6: <PixArt USB Optical Mouse> at usbus0
> 2024-10-06T00:35:08.833554-07:00 aarch64-main-pbase login 1014 - - login on ttyv0 as root
> 2024-10-06T00:35:08.833623-07:00 aarch64-main-pbase login 1014 - - ROOT LOGIN (root) ON ttyv0
> 2024-10-06T00:35:08.835269-07:00 aarch64-main-pbase login 1022 - - getting pipebuf resource limit: Invalid argument
> . . .
> 
> 
> It seems related changes introducing incompatibility with even
> recent older kernels should have had a __FreeBSD_version update
> and might need to be documented for the now-existing
> incompatibility with most of the 1500023 and older history?

We do not provide forward compatibility between kernel and userspace.
User binaries must be newer than kernel.