Re: kqueuex() system call was MFC'ed to releng/13 and releng/13.3?

From: Alan Somers <asomers_at_freebsd.org>
Date: Thu, 07 Mar 2024 15:44:39 UTC
On Thu, Mar 7, 2024 at 8:02 AM Patrick M. Hausen <hausen@punkt.de> wrote:
>
> Hi all,
>
> I just found that daemon(8) stopped working after I upgraded a jail running on a 13.1 host from 13.2 to 13.3.
>
>         Host: 13.1 - jail: 13.2 - working
>         Host: 13.1 - jail: 13.3 - daemon(8) fails to run
>
> The cause seems to be the introduction of the kqueuex() system call in 13.3 which does not exist in 13.1 or 13.2.
>
> Am I correct in this analysis? If yes, I fear there is no way around that?

This sounds like a reasonable explanation.

> Isn't -stable implying there won't be incompatible ABI changes?

Yes, there won't be any _incompatible_ ABI changes.  But the addition
of a new syscall is a _compatible_ change.  Similar changes have
happened before.

>
> This creates a huge problem for everyone running jails on TrueNAS CORE when the packages for releng/13
> will switch from 13.2 to 13.3 ...
>
> Of course this is not the FreeBSD projects fault but that did come as an unpleasant surprise, nonetheless.
>

Running jails that are newer than the host has never been supported.
It was just luck that your 13.2 jail worked on a 13.1 host.  The host
must always run a kernel at least as new as what the jail was built
for.

-Alan