Opened 9 years ago

Last modified 4 years ago

#5317 assigned bug

KDL when changing screen size

Reported by: jahaiku Owned by: mmlr
Priority: normal Milestone: R1
Component: System/Kernel Version: R1/Development
Keywords: port heap Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description

I changed the screen size from 1024x768 to 800x600 with a gcc4 build from hrev35261 in qemu and I got the following SegFault:

vm_soft_fault: va 0x0 not covered by area in address space
vm_page_fault: vm_soft_fault returned error 'Bad address' on fault at 0x8, ip 0x80046e7d, write 0, user 0, thread 0x178
PANIC: vm_page_fault: unhandled page fault in kernel space at 0x8, ip 0x80046e7d

Welcome to Kernel Debugging Land...
Thread 376 "w>Screen" running on CPU 0
kdebug> bt
stack trace for thread 376 "w>Screen"
    kernel stack: 0x82e84000 to 0x82e88000
      user stack: 0x70000000 to 0x70040000
frame               caller     <image>:function + offset
 0 82e879e4 (+  32) 8006dad9   <kernel_x86> invoke_command_trampoline(void*: 0x82e87a64) + 0x0015
 1 82e87a04 (+  12) 800ded58   <kernel_x86>:arch_debug_call_with_fault_handler + 0x001b
 2 82e87a10 (+  48) 8006b916   <kernel_x86>:debug_call_with_fault_handler + 0x0051
 3 82e87a40 (+  64) 8006de82   <kernel_x86>:invoke_debugger_command + 0x00bb
 4 82e87a80 (+  48) 8006df9f   <kernel_x86> invoke_pipe_segment(debugger_command_pipe*: 0x80131622, int32: 0, char*: NULL) + 0x0083
 5 82e87ab0 (+  32) 8006e067   <kernel_x86>:invoke_debugger_command_pipe + 0x008b
 6 82e87ad0 (+ 128) 80071e06   <kernel_x86> ExpressionParser<0x82e87ba0>::_ParseCommandPipe(int&: 0x82e87b9c) + 0x0aae
 7 82e87b50 (+  48) 800745cf   <kernel_x86> ExpressionParser<0x82e87ba0>::EvaluateCommand(char const*: 0x80131620 "bt", int&: 0x82e87b9c) + 0x06df
 8 82e87b80 (+ 192) 80074748   <kernel_x86>:evaluate_debug_command + 0x0084
 9 82e87c40 (+  96) 8006c6e9   <kernel_x86> kernel_debugger_internal(char const*: 0x8109d870 "H �", int32: -2098692916) + 0x039a
10 82e87ca0 (+  16) 8006c83f   <kernel_x86>:kernel_debugger + 0x0019
11 82e87cb0 (+ 160) 8006c919   <kernel_x86>:panic + 0x002a
12 82e87d50 (+  64) 800c786b   <kernel_x86>:vm_page_fault + 0x00f7
13 82e87d90 (+  80) 800da7bd   <kernel_x86> page_fault_exception(iframe*: 0x82e87dec) + 0x0171
14 82e87de0 (+  12) 800df0fd   <kernel_x86>:int_bottom + 0x003d
kernel iframe at 0x82e87dec (end = 0x82e87e3c)
 eax 0x0            ebx 0x8171d790      ecx 0x8171d740   edx 0xccd0c000
 esi 0x5            edi 0x0             ebp 0x82e87e84   esp 0x82e87e20
 eip 0x80046e7d  eflags 0x10286    
 vector: 0xe, error code: 0x0
15 82e87dec (+ 152) 80046e7d   <kernel_x86>:heap_memalign + 0x00ee
16 82e87e84 (+ 112) 80053956   <kernel_x86>:writev_port_etc + 0x0322
17 82e87ef4 (+  80) 80054269   <kernel_x86>:_user_write_port_etc + 0x00c3
18 82e87f44 (+ 100) 800df332   <kernel_x86>:handle_syscall + 0x00af
user iframe at 0x82e87fa8 (end = 0x82e88000)
 eax 0xca           ebx 0x52e388        ecx 0x7003f740   edx 0xffff0114
 esi 0xffffffff     edi 0x7fffffff      ebp 0x7003f76c   esp 0x82e87fdc
 eip 0xffff0114  eflags 0x216      user esp 0x7003f740
 vector: 0x63, error code: 0x0
19 82e87fa8 (+   0) ffff0114   <commpage>:commpage_syscall + 0x0004
20 7003f76c (+  48) 002c2f33   <libbe.so> BPrivate::LinkSender<0x1801f090>::Flush(int64: 9223372036854775807, true) + 0x009d
21 7003f79c (+  32) 002d6e6d   <libbe.so> BPrivate::ServerLink<0x1801d100>::FlushWithReply(long&: 0x7003f7ec) + 0x0025
22 7003f7bc (+  64) 00369341   <libbe.so> BView<0x7003fa4c>::LowColor const() + 0x0067
23 7003f7fc (+1088) 002e3e61   <libbe.so> BButton<0x18057670>::Draw(BRect: 0x7003fc54) + 0x010f
24 7003fc3c (+  48) 0036fd98   <libbe.so> BView<0x18057670>::_Draw(BRect: 0x7003ff04) + 0x007e
25 7003fc6c (+ 720) 0037a691   <libbe.so> BWindow<0x1804a4a0>::DispatchMessage(BMessage*: 0x180638c8, BHandler*: 0x1804a4a0) + 0x1799
26 7003ff3c (+  96) 003761fd   <libbe.so> BWindow<0x1804a4a0>::task_looper() + 0x0277
27 7003ff9c (+  32) 002c5082   <libbe.so> BLooper<0x1804a4a0>::_task0_(void*: NULL) + 0x0030
28 7003ffbc (+  32) 00490ca0   <libroot.so>:exit_thread (nearest) + 0x0058
29 7003ffdc (+   0) 7003ffec   3322:w>Screen_376_stack@0x70000000 + 0x3ffec
kdebug> 

Change History (5)

comment:1 Changed 9 years ago by mmadia

Version: R1/alpha1R1/Development

comment:2 Changed 9 years ago by axeld

Component: Preferences/ScreenSystem/Kernel
Owner: changed from axeld to mmlr
Status: newassigned
Summary: SegFault when changing screen sizeKDL when changing screen size

Looks like a heap issue.

comment:3 Changed 9 years ago by mmlr

This could very well be the same as #5474.

comment:4 Changed 9 years ago by bonefish

Keywords: port heap added

comment:5 Changed 4 years ago by waddlesplash

Still an issue? -- can someone with a QEMU installation test?

Note: See TracTickets for help on using tickets.