Opened 2 months ago

Last modified 2 months ago

#14905 new bug

Haiku fails to boot with no video framebuffer / VESA

Reported by: kallisti5 Owned by: axeld
Priority: normal Milestone: Unscheduled
Component: Servers/app_server Version: R1/beta1
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description (last modified by kallisti5)

I tried to boot Haiku R1/Beta1 on GCP... but ran into the following issue:

SeaBIOS (version 1.8.2-20181029_212248-google)
Total RAM Size = 0x000000006cc00000 = 1740 MiB
CPUs found: 1     Max CPUs supported: 1
found virtio-scsi at 0:3
virtio-scsi vendor='Google' product='PersistentDisk' rev='1' type=0 removable=0
virtio-scsi blksize=512 sectors=20971520 = 10240 MiB
drive 0x000f2a50: PCHS=0/0/0 translation=lba LCHS=1024/255/63 s=20971520
Booting from Hard Disk 0...
Welcome to kernel debugger output!
Haiku revision: hrev52295+96
CPU 0: type 0 family 6 extended_family 0 model 15 extended_model 3 stepping 0, string 'GenuineIntel'
CPU 0: vendor 'Intel' model name 'Intel(R) Xeon(R) CPU @ 2.30GHz'
CPU 0: apic id 0, package 0, core 0, smt 0
CPU 0: cache sharing: L1 id 0, L2 id 0, L3 id 0
CPU 0: features: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clfsh mmx fxsr sse sse2 ss htt sse3 pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrnd hypervisor syscall nx long arat tsc_adjust bmi1 avx2 smep bmi2 erms invpcid ibrs stibp 
reserve_io_interrupt_vectors: reserved 16 vectors starting from 0
mark_page_range_in_use(0x0, 0x100): start page is before free list
mark_page_range_in_use(0x0, 0xa0): start page is before free list
add_memory_type_range(3, 0x0, 0xa0000, 6)
add_memory_type_range(84, 0xa0000, 0x26000, 0)
PANIC: vm_page_fault: unhandled page fault in kernel space at 0x0, ip 0xffffffff8161883a

Welcome to Kernel Debugging Land...
Thread 257 "app_server" running on CPU 0
stack trace for thread 257 "app_server"
    kernel stack: 0xffffffff81215000 to 0xffffffff8121a000
      user stack: 0x00007fbf9da8e000 to 0x00007fbf9ea8e000
frame                       caller             :function + offset
 0 ffffffff81219648 (+  16) ffffffff8012fd49    arch_debug_stack_trace + 0x13
 1 ffffffff81219658 (+  16) ffffffff8009e035    stack_trace_trampoline(void*) + 0x09
 2 ffffffff81219668 (+  24) ffffffff8012806c    arch_debug_call_with_fault_handler + 0x16
 3 ffffffff81219680 (+  96) ffffffff8009ea4f    debug_call_with_fault_handler + 0x8b
 4 ffffffff812196e0 (+  96) ffffffff8009faab    kernel_debugger_loop(char const*, char const*, __va_list_tag*, int) + 0x10a
 5 ffffffff81219740 (+  80) ffffffff8009ff14    kernel_debugger_internal(char const*, char const*, __va_list_tag*, int) + 0x1a2
 6 ffffffff81219790 (+ 240) ffffffff800a0113    panic + 0xba
 7 ffffffff81219880 (+ 240) ffffffff8011744c    vm_page_fault + 0x1f8
 8 ffffffff81219970 (+  64) ffffffff801310b3    x86_page_fault_exception + 0x24d
 9 ffffffff812199b0 (+ 536) ffffffff801297d2    int_bottom + 0x56
kernel iframe at 0xffffffff81219bc8 (end = 0xffffffff81219c90)
 rax 0x0                   rbx 0xffffffff81875cc0    rcx 0x8
 rdx 0x3ce                 rsi 0x4                   rdi 0x3ce
 rbp 0xffffffff81219d10     r8 0x0                    r9 0x27f
 r10 0xffffffff800be4a0    r11 0x3206                r12 0x7fbf9ea8cd30
 r13 0x7fbf9ea8cd30        r14 0x0                   r15 0x27f
 rip 0xffffffff8161883a    rsp 0xffffffff81219c90 rflags 0x13202
 vector: 0xe, error code: 0x0
10 ffffffff81219bc8 (+ 328) ffffffff8161883a    vga_planar_blit(vesa_shared_info*, unsigned char*, int, int, int, int, int) + 0xb1
11 ffffffff81219d10 (+  96) ffffffff81617320    device_ioctl(void*, unsigned int, void*, unsigned long) + 0xb7
12 ffffffff81219d70 (+  16) ffffffff800b8343    BPrivate::AbstractModuleDevice::Control(void*, int, void*, unsigned long) + 0x19
13 ffffffff81219d80 (+ 304) ffffffff800be6ae    devfs_ioctl(fs_volume*, fs_vnode*, void*, unsigned int, void*, unsigned long) + 0x20e
14 ffffffff81219eb0 (+  16) ffffffff800e4221    common_ioctl(file_descriptor*, unsigned long, void*, unsigned long) + 0x2f
15 ffffffff81219ec0 (+  64) ffffffff800d932b    fd_ioctl(bool, int, unsigned int, void*, unsigned long) + 0x6d
16 ffffffff81219f00 (+  32) ffffffff800da031    _user_ioctl + 0x40
17 ffffffff81219f20 (+  16) ffffffff80129a78    x86_64_syscall_entry + 0xfb
user iframe at 0xffffffff81219f30 (end = 0xffffffff81219ff8)
 rax 0x92                  rbx 0x27f                 rcx 0x1163ca665bc
 rdx 0x7fbf9ea8cd30        rsi 0x2716                rdi 0x4
 rbp 0x7fbf9ea8cd00         r8 0x0                    r9 0x27f
 r10 0x20                  r11 0x3206                r12 0x0
 r13 0x874433a870          r14 0x874427fc20          r15 0x0
 rip 0x1163ca665bc         rsp 0x7fbf9ea8cc98     rflags 0x3206
 vector: 0x63, error code: 0x0
18 ffffffff81219f30 (+140463105846736) 000001163ca665bc    _kern_ioctl + 0x0c
19 00007fbf9ea8cd00 (+ 128) 00000191a58e718f   <_APP_> HWInterface::_CopyToFront const(unsigned char*, unsigned int, int, int, int, int) + 0x449
20 00007fbf9ea8cd80 (+  96) 00000191a58e737d   <_APP_> HWInterface::_CopyBackToFront(BRegion&) + 0x95
21 00007fbf9ea8cde0 (+ 112) 00000191a58cd5ed   <_APP_> AccelerantHWInterface::_CopyBackToFront(BRegion&) + 0xe7
22 00007fbf9ea8ce50 (+ 192) 00000191a58e8e24   <_APP_> HWInterface::CopyBackToFront(BRect const&) + 0x16c
23 00007fbf9ea8cf10 (+  32) 00000191a58e6851   <_APP_> HWInterface::Invalidate(BRect const&) + 0x35
24 00007fbf9ea8cf30 (+ 160) 00000191a58ddf50   <_APP_> DrawingEngine::FillRegion(BRegion&, rgb_color const&) + 0x166
25 00007fbf9ea8cfd0 (+ 112) 00000191a58794af   <_APP_> Desktop::_SetBackground(BRegion&) + 0xbb
26 00007fbf9ea8d040 (+ 240) 00000191a587d3a0   <_APP_> Desktop::Init() + 0x2c2
27 00007fbf9ea8d130 (+  80) 00000191a5871602   <_APP_> AppServer::_CreateDesktop(unsigned int, char const*) + 0x56
28 00007fbf9ea8d180 (+ 176) 00000191a5871807   <_APP_> AppServer::MessageReceived(BMessage*) + 0xfd
29 00007fbf9ea8d230 (+  16) 0000023a878fc188    BLooper::DispatchMessage(BMessage*, BHandler*) + 0x1e
30 00007fbf9ea8d240 (+ 576) 0000023a878f58ac    BApplication::DispatchMessage(BMessage*, BHandler*) + 0x39a
31 00007fbf9ea8d480 (+  96) 0000023a878fc54e    BLooper::task_looper() + 0x200
32 00007fbf9ea8d4e0 (+  32) 0000023a878f2578    BApplication::Run() + 0x46
33 00007fbf9ea8d500 (+  48) 00000191a5871b65   <_APP_> main + 0x55
34 00007fbf9ea8d530 (+  48) 00000191a5870d8e   <_APP_> _start + 0x54
35 00007fbf9ea8d560 (+  48) 00000141190398a0     + 0x138a0
36 00007fbf9ea8d590 (+   0) 00007fba5ed54260    commpage_thread_exit + 0x00
kdebug> 

This issue can be reproduced via:

qemu-system-x86_64 -vga none -nographic -cdrom haiku-nightly-anyboot.iso -m 1024

Change History (3)

comment:1 Changed 2 months ago by waddlesplash

10 ffffffff81219bc8 (+ 328) ffffffff8161883a    vga_planar_blit(vesa_shared_info*, unsigned char*, int, int, int, int, int) + 0xb1

Since this is a NULL dereference, probably the VESA framebuffer simply doesn't exist, and so vga_planar_bit invokes a NULL dereference.

Try adding some more NULL checks around that function (probably on info->framebuffer itself is the place to start) and see if this fixes the problem.

comment:2 Changed 2 months ago by kallisti5

Description: modified (diff)
Summary: Haiku R1/Beta1 fails to boot on GCPHaiku fails to boot with no video framebuffer / VESA

comment:3 Changed 2 months ago by kallisti5

After hrev52875 we no longer KDL, but the app_server now crashes.

Note: See TracTickets for help on using tickets.