Discussion:
kqueuex() system call was MFC'ed to releng/13 and releng/13.3?
(too old to reply)
Alan Somers
2024-03-07 15:44:39 UTC
Permalink
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 133 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


--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Warner Losh
2024-03-07 16:35:16 UTC
Permalink
Hi!
Post by Alan Somers
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
Post by Alan Somers
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.
Post by Alan Somers
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.
Thanks for the explanation.
Yea. It's hard to know the future so old kernels can't know about new
system calls. Our support for forwards compatibility has typically been
confined to short periods in current when the issue affected bootstrapping.
New features in the kernel are often impossible to emulate on older kernels
which is why we generally don't support new binaries with old kernels.

Warner
Kind regards,
Patrick
--
punkt.de GmbH
Patrick M. Hausen
.infrastructure
Sophienstr. 187
76185 Karlsruhe
Tel. +49 721 9109500
https://infrastructure.punkt.de
AG Mannheim 108285
GeschÀftsfÌhrer: Daniel Lienert, Fabian Stein
Loading...