Opened 9 years ago

Closed 9 years ago

#7073 closed bug (fixed)

[BootManager] crash in BPath::Path ()

Reported by: diver Owned by: anevilyak
Priority: normal Milestone: R1
Component: Applications/BootManager Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description

This is hrev40142, gcc4hybrid.

While trying to figure out what's wrong with jumping text on the Backup Master Boot Record page by clicking next/Previous buttons several times BootManager suddenly crashed.

Thread 233 caused an exception: Segment violation
[...]
[Switching to team /boot/system/apps/BootManager (229) thread w>BootManager (233)]
0x003c6926 in BPath::Path () from /boot/system/lib/libbe.so
(gdb) bt
#0  0x003c6926 in BPath::Path () from /boot/system/lib/libbe.so
#1  0x0020fddd in DrivesPage::PageCompleted ()
#2  0x002143b2 in WizardView::PageCompleted ()
#3  0x00214cc2 in WizardController::Next ()
#4  0x0020e818 in BootManagerWindow::MessageReceived ()
#5  0x002e38b8 in BLooper::DispatchMessage () from /boot/system/lib/libbe.so
#6  0x003a6828 in BWindow::DispatchMessage () from /boot/system/lib/libbe.so
#7  0x003a212d in BWindow::task_looper () from /boot/system/lib/libbe.so
#8  0x002e511a in BLooper::_task0_ () from /boot/system/lib/libbe.so
#9  0x00783060 in thread_entry () from /boot/system/lib/libroot.so
#10 0x7003ffec in ?? ()
(gdb)

Change History (16)

comment:1 by laplace, 9 years ago

Owner: changed from laplace to axeld
Status: newassigned

comment:2 by diver, 9 years ago

Is syslog needed at all?

KERN: vm_soft_fault: va 0x0 not covered by area in address space
KERN: vm_page_fault: vm_soft_fault returned error 'Bad address' on fault at 0x88, ip 0x3c6926, write 0, user 1, thread 0xe9
KERN: vm_page_fault: thread "w>BootManager" (233) in team "BootManager" (229) tried to read address 0x88, ip 0x3c6926 ("libbe.so_seg0ro" +0x1aa926)
KERN: debug_server: Thread 233 entered the debugger: Segment violation
KERN: stack trace, current PC 0x3c6926  _ZNK5BPath4PathEv + 0x6:
KERN:   (0x7003fb7c)  0x20fddd  _ZN10DrivesPage13PageCompletedEv + 0x29
KERN:   (0x7003fbac)  0x2143b2  _ZN10WizardView13PageCompletedEv + 0x2e
KERN:   (0x7003fbec)  0x214cc2  _ZN16WizardController4NextEP10WizardView + 0x24
KERN:   (0x7003fc1c)  0x20e818  _ZN17BootManagerWindow15MessageReceivedEP8BMessage + 0x48
KERN:   (0x7003fc3c)  0x2e38b8  _ZN7BLooper15DispatchMessageEP8BMessageP8BHandler + 0x50
KERN:   (0x7003fc5c)  0x3a6828  _ZN7BWindow15DispatchMessageEP8BMessageP8BHandler + 0x19da
KERN:   (0x7003ff1c)  0x3a212d  _ZN7BWindow11task_looperEv + 0x22b
KERN:   (0x7003ff9c)  0x2e511a  _ZN7BLooper7_task0_EPv + 0x30
KERN:   (0x7003ffbc)  0x783060  thread_entry + 0x2d

comment:3 by axeld, 9 years ago

This just a work-in-progress version; the crash should be gone now.

In any case, there are still some layout problems left; I probably won't find the time to work on that myself in which case I will add some bug reports for them if no one beats me.

comment:4 by axeld, 9 years ago

Resolution: fixed
Status: assignedclosed

Damn hidden "resolve as fixed" UI gets me every time...

comment:5 by laplace, 9 years ago

There is now a similar problem. On the first page select a drive then click "Install"; then click "Back"; now the "Install" button is still enabled, but no drive is selected. When you click "Install" the application crashes.

comment:6 by axeld, 9 years ago

Thanks for the note! I could not reproduce the problem, however - the boot volume should have been selected always.

In any case, there were a number of issues that I resolved in hrev40173, for example, the next button is now actually disabled if there is no selection (copy&paste bug), and the previously chosen disk is now selected again when reentering the page.

comment:7 by diver, 9 years ago

Resolution: fixed
Status: closedreopened

Reproducible in hrev40189, reopening.

comment:8 by diver, 9 years ago

It crashes when no drives are selected and I click Install.

comment:9 by axeld, 9 years ago

Ah, you mean when you click on an empty space in the list? Looks like Rene's fix to the problem I introduced wasn't complete yet.

comment:10 by diver, 9 years ago

That's right.

in reply to:  9 comment:11 by anevilyak, 9 years ago

Replying to axeld:

Ah, you mean when you click on an empty space in the list? Looks like Rene's fix to the problem I introduced wasn't complete yet.

Oops, sorry. Should both Next and Previous be disabled in that instance? I notice right now it bases the Previous button's state on the selected drive as well.

comment:12 by axeld, 9 years ago

Both should be disabled in that case, yes (as they are misused as "uninstall" and "install" buttons at that time). I think the code when creating the UI should just be moved to _UpdateWizardButtons(), and that function should then also be called with a NULL parameter before filling the list.

comment:13 by anevilyak, 9 years ago

Can you give hrev40193 a try diver?

comment:14 by anevilyak, 9 years ago

Owner: changed from axeld to anevilyak
Status: reopenedin-progress

comment:15 by diver, 9 years ago

It doesn't crash anymore. Thanks!

comment:16 by anevilyak, 9 years ago

Resolution: fixed
Status: in-progressclosed

Thanks for testing!

Note: See TracTickets for help on using tickets.