Kernel crashes after upgrading from 14.0 to 14.1

Hi all,
I'm currently running FreeBSD 14.0 on a VPS (by Contabo):
Code:
# uname -a
FreeBSD host 14.0-RELEASE-p11 FreeBSD 14.0-RELEASE-p11 #0: Wed Sep 18 23:01:59 UTC 2024     root@amd64-builder.daemonology.net:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64

I have been using FreeBSD for years and I have never had problems upgrading it from one version to another.

This time, trying to upgrade it from 14.0 to 14.1, during the reboot phase I get the following errors and the system crashes badly:

Code:
Oct  7 03:05:38 host kernel: Fatal trap 18: integer divide fault while in kernel mode
Oct  7 03:05:38 host kernel: cpuid = 1; apic id = 01
Oct  7 03:05:38 host kernel: instruction pointer    = 0x20:0xffffffff80e9c064
Oct  7 03:05:38 host kernel: stack pointer          = 0x28:0xffffffff82b44d00
Oct  7 03:05:38 host kernel: frame pointer          = 0x28:0xffffffff82b44da0
Oct  7 03:05:38 host kernel: code segment           = base 0x0, limit 0xfffff, type 0x1b
Oct  7 03:05:38 host kernel:                        = DPL 0, pres 1, long 1, def32 0, gran 1
Oct  7 03:05:38 host kernel: processor eflags       = interrupt enabled, resume, IOPL = 0
Oct  7 03:05:38 host kernel: current process                = 0 (swapper)
Oct  7 03:05:38 host kernel: rdi: 0000000000000000 rsi: 0000000000000000 rdx: 0000000000000000
Oct  7 03:05:38 host kernel: rcx: 0000000000000000  r8: 0000000000200000  r9: 0000000000000000
Oct  7 03:05:38 host kernel: rax: 00000000fffffbe0 rbx: 0000000000000000 rbp: ffffffff82b44da0
Oct  7 03:05:38 host kernel: r10: 0000000000000000 r11: 3ffffffffffffff8 r12: 00000000fffffc00
Oct  7 03:05:38 host kernel: r13: 0000000000000000 r14: 0000000000000000 r15: 1ffffffffffffff8
Oct  7 03:05:38 host kernel: trap number            = 18
Oct  7 03:05:38 host kernel: panic: integer divide fault
Oct  7 03:05:38 host kernel: cpuid = 1
Oct  7 03:05:38 host kernel: time = 1
Oct  7 03:05:38 host kernel: KDB: stack backtrace:
Oct  7 03:05:38 host kernel: #0 0xffffffff80b7fefd at kdb_backtrace+0x5d
Oct  7 03:05:38 host kernel: #1 0xffffffff80b32bd1 at vpanic+0x131
Oct  7 03:05:38 host kernel: #2 0xffffffff80b32a93 at panic+0x43
Oct  7 03:05:38 host kernel: #3 0xffffffff8100091b at trap_fatal+0x40b
Oct  7 03:05:38 host kernel: #4 0xffffffff80fd6d48 at calltrap+0x8
Oct  7 03:05:38 host kernel: #5 0xffffffff80e9d651 at zone_alloc_item+0x191
Oct  7 03:05:38 host kernel: #6 0xffffffff80e9cc04 at zone_ctor+0x5a4
Oct  7 03:05:38 host kernel: #7 0xffffffff80e9d651 at zone_alloc_item+0x191
Oct  7 03:05:38 host kernel: #8 0xffffffff80e9d2dd at uma_zcreate+0x8d
Oct  7 03:05:38 host kernel: #9 0xffffffff821cd788 at pefs_crypto_init+0x28
Oct  7 03:05:38 host kernel: #10 0xffffffff821c60ef at pefs_init+0xef
Oct  7 03:05:38 host kernel: #11 0xffffffff80c06eb6 at vfs_modevent+0x3f6
Oct  7 03:05:38 host kernel: #12 0xffffffff80b0dea5 at module_register_init+0x85
Oct  7 03:05:38 host kernel: #13 0xffffffff80abb685 at mi_startup+0xb5
Oct  7 03:05:38 host kernel: #14 0xffffffff8037c023 at btext+0x23
Oct  7 03:05:38 host kernel: Uptime: 1s
Oct  7 03:05:38 host kernel: Automatic reboot in 15 seconds - press a key on the console to abort
Oct  7 03:05:38 host kernel: Rebooting...

To me, this seems to be a kernel-related issue, but I can't find any other hints to clearly determine what the root cause could be.
Any help would be greatly appreciated.
Many many thanks!
 
You are using pegs, which is an out-of-kernel module. And you did not rebuild it. This is to be expected. But why would you use Geli and pegs together? Anyway. Unload that module, boot single user, and build that module with the matching kernel sources.
 
Hi Crivens, thank you very much.
Your explanation totally makes sense, unfortunately pefs it is not constantly maintained, so it probably doesn't work with 14.1 at the moment (I already had some issues with it in the past, but the maintainer managed to intervene).
The reason why I use pefs is that it transparently runs on top of existing file systems, and I use it to encrypt a specific directory in my home dir.
It works quite like ecryptfs on Linux, so no need to use a fixed-size disk/partition in case I wanted to use GELI.
Anyhow, I'm going to try your solution.
Thanks again!
 
upgrade it from 14.0 to 14.1
unfortunately pefs it is not constantly maintained, so it probably doesn't work with 14.1 at the moment
A more likely explanation is the sysutils/pefs-kmod kernel module pefs.ko is built against kernel version 14.0, provoking now a kernel panic with the 14.1 kernel. Kernel modules (with a few exceptions) must be build against the running kernel, 14.1 in this case.

Since currently are no 14.1 packages available, kernel modules must be installed from ports.

It is best practice to disable all 3rd party kernel modules during a major upgrade.
 
Monday:

… currently are no 14.1 packages available, …

Processed by FreshPorts a few hours later …

1728497642366.png


1728497432304.png


Code:
% cd /tmp
% wcurl https://pkg.freebsd.org/FreeBSD:14:amd64/quarterly/All/pefs-kmod-g20230913_1,1.pkg
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 74908  100 74908    0     0   339k      0 --:--:-- --:--:-- --:--:--  340k
%
 
Back
Top