ravynsoft / ravynos

A BSD-based OS project that aims to provide source and binary compatibility with macOS® and a similar user experience.
https://www.ravynos.com
Other
5.68k stars 192 forks source link

Kernel panic #276

Closed markshank closed 2 years ago

markshank commented 2 years ago

Installed iso to Proxmox VM using "# /bin/install.sh da0 mds". Rebooted from virtual disk. Kernel panic during boot process.

Screenshot

KernelPanic

VM configuration:

root@epyc3000:# qm config 128 balloon: 0 bios: ovmf boot: order=scsi0;ide2 cores: 4 efidisk0: CephPool:vm-128-disk-1,efitype=4m,size=528K ide2: cephfs:iso/ravynOS_0.4.0pre4_f14_5197929269952512_amd64.iso,media=cdrom,size=1446174K machine: q35 memory: 4096 meta: creation-qemu=6.1.0,ctime=1637444242 name: ravynOS net0: virtio=56:68:24:EF:A5:0A,bridge=vmbr0 numa: 0 ostype: other scsi0: CephPool:vm-128-disk-0,size=32G scsihw: virtio-scsi-pci smbios1: uuid=8125120d-6858-497c-951d-9b1e3b586935 sockets: 1 vga: vmware vmgenid: 68083c2d-54ca-41a1-aa5b-900c4f1eff18 root@epyc3000:#

mszoek commented 2 years ago

Yep - page fault. That's consistent with what I get, and points at mach_vm. Will definitely need a closer look.

mszoek commented 2 years ago

Here is another page fault I captured earlier.

The problem is that tree is invalid here:

#10 zfs_btree_find (tree=0x100000, value=0xfffff80007c7a0c8, where=where@entry=0xfffffe011139fa70)
    at /usr/src/sys/contrib/openzfs/module/zfs/btree.c:206
206             if (tree->bt_height == -1) {

It originates a few frames up in the metaslab allocator where it appears to be valid:

(kgdb) p msp
$10 = (metaslab_t *) 0xfffff800079f6800
(kgdb) p *msp->ms_allocatable
$11 = {
  rt_root = {
    bt_root = 0xfffff8000773b000,
    bt_height = 1,
    bt_elem_size = 8,
    bt_num_elems = 1051,
    bt_num_nodes = 4,
    bt_bulk = 0x0,
    bt_compar = 0xffffffff822aeaf0 <range_tree_seg32_compare>
  },
  rt_space = 500563968,
  rt_type = RANGE_SEG32,
  rt_shift = 9 '\t',
  rt_start = 35433480192,
  rt_ops = 0xffffffff824a0448 <metaslab_rt_ops>,
  rt_arg = 0xfffff800019b3140,
  rt_btree_compare = 0x0,
  rt_gap = 0,
  rt_histogram = {0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 98, 128, 132, 111, 83, 74, 95, 63, 64, 62, 41, 22, 16, 8, 1, 1, 
    0 <repeats 38 times>}
}

So something has overwritten the pointer on the stack?

markshank commented 2 years ago

Same VM with a new iso installed (ravynOS_0.4.0pre4_f14_5949950092640256_amd64.iso from last night). Booted from virtual disk and had been idling a while (maybe 10 minutes).

KernelPanic2

markshank commented 2 years ago

From https://discord.com/channels/879521058816917564/937013320936996964/989536270931886091

Screenshot_(50)

mszoek commented 2 years ago

See https://github.com/ravynsoft/ravynos/commit/50914370665c0b9d7b7c81b6391a9ea393cae15c which may help. Going into tonight's build.

markshank commented 2 years ago

Put the new build on USB and booted the Chromebook. I got the login screen. Liveuser/(no password) displayed a black desktop with a menu bar. Alt+F2 then login and "# /bin/install.sh ada0 mds" installed to SSD. Booted from SSD, but no screens, just console message text. Tried Alt+F2, but nobody home. Power button did provoke an ordered shutdown.

Rebooted from USB and played around a little with the desktop.

IMG_20220629_064345847 - Copy

Never did see a kernel panic during my short test.

mszoek commented 2 years ago

My system is like, infinitely more stable now with that bad alloc fixed. I was even able to re-enable asld which helps with bug #280. I think this probably covers most of the page fault panics I was seeing. Closing this for now; let's open new issues for other crashes.