Opened 9 years ago

Closed 7 years ago

#7059 closed bug (fixed)

[Tracker] crashes while holding Ctrl + multiple right clicks

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

Description

This is hrev40089, gcc4hybrid.

Holding Ctrl while clicking multiple times some application can crash Tracker:

Thread 508 caused an exception: Segment violation
[...]
0x006a5cf3 in BPrivate::processHeap::free () from /boot/system/lib/libroot.so
(gdb) bt
#0  0x006a5cf3 in BPrivate::processHeap::free () from /boot/system/lib/libroot.so
#1  0x006a76bd in free () from /boot/system/lib/libroot.so
#2  0x0032b40f in BMenuItem::~BMenuItem () from /boot/system/lib/libbe.so
#3  0x004ffb32 in BPrivate::BContainerWindow::SetupOpenWithMenu () from /boot/system/lib/libtracker.so
#4  0x004fe341 in BPrivate::BContainerWindow::ShowContextMenu () from /boot/system/lib/libtracker.so
#5  0x0057b023 in BPrivate::BPoseView::ShowContextMenu () from /boot/system/lib/libtracker.so
#6  0x0057b468 in BPrivate::BPoseView::MouseDown () from /boot/system/lib/libtracker.so
#7  0x0038bea6 in BWindow::DispatchMessage () from /boot/system/lib/libbe.so
#8  0x003881ad in BWindow::task_looper () from /boot/system/lib/libbe.so
#9  0x002cb0fa in BLooper::_task0_ () from /boot/system/lib/libbe.so
#10 0x00633064 in thread_entry () from /boot/system/lib/libroot.so
#11 0x7003ffec in ?? ()
(gdb)

Change History (8)

comment:1 by diver, 9 years ago

Summary: [Tracker] crashes while holding Ctrl + multiple clicks[Tracker] crashes while holding Ctrl + multiple right clicks

comment:2 by diver, 9 years ago

Sometimes Tracker crashes with another back trace, in such case FileContext window thread starts to consume all CPU power which results in extremely slow GUI update.

Thread 221 called debugger(): getNumAvailable() == 0
[...]
[Switching to team /boot/system/Tracker (112) thread w>/boot/home (221)]
0xffff0112 in ?? ()
(gdb) bt
#0  0xffff0112 in ?? ()
#1  0x0062f1cb in debugger () from /boot/system/lib/libroot.so
#2  0x00639597 in __assert_fail () from /boot/system/lib/libroot.so
#3  0x006a9f21 in BPrivate::hoardHeap::findAvailableSuperblock () from /boot/system/lib/libroot.so
#4  0x006a6af9 in BPrivate::threadHeap::malloc () from /boot/system/lib/libroot.so
#5  0x006a78e4 in malloc () from /boot/system/lib/libroot.so
#6  0x006ab949 in operator new (sz=20) at /home/iceid/haiku/buildtools/gcc/libstdc++-v3/libsupc++/new_opnt.cc:44
#7  0x0038c58f in BWindow::DispatchMessage () from /boot/system/lib/libbe.so
#8  0x0038ca16 in BWindow::UpdateIfNeeded () from /boot/system/lib/libbe.so
#9  0x00380983 in BView::GetMouse () from /boot/system/lib/libbe.so
#10 0x0057b3c0 in BPrivate::BPoseView::MouseDown () from /boot/system/lib/libtracker.so
#11 0x0038bea6 in BWindow::DispatchMessage () from /boot/system/lib/libbe.so
#12 0x003881ad in BWindow::task_looper () from /boot/system/lib/libbe.so
#13 0x002cb0fa in BLooper::_task0_ () from /boot/system/lib/libbe.so
#14 0x00633064 in thread_entry () from /boot/system/lib/libroot.so
#15 0x7003ffec in ?? ()
(gdb)

syslog part:

KERN: 221: DEBUGGER: getNumAvailable() == 0
KERN: debug_server: Thread 221 entered the debugger: Debugger call: `getNumAvailable() == 0'
KERN: stack trace, current PC 0xffff0112  :
KERN:   (0x7003f6ec)  0x639597  __assert_fail + 0x46
KERN:   (0x7003f70c)  0x6a9f21  _ZN8BPrivate9hoardHeap23findAvailableSuperblockEiRPNS_5blockEPNS_11processHeapE + 0x537
KERN:   (0x7003f75c)  0x6a6af9  _ZN8BPrivate10threadHeap6mallocEm + 0xb9
KERN:   (0x7003f7ac)  0x6a78e4  malloc + 0x1ff
KERN:   (0x7003f7dc)  0x6ab949  _ZnwmRKSt9nothrow_t + 0x29
KERN:   (0x7003f81c)  0x38c58f  _ZN7BWindow15DispatchMessageEP8BMessageP8BHandler + 0x16c1
KERN:   (0x7003fadc)  0x38ca16  _ZN7BWindow14UpdateIfNeededEv + 0xda
KERN:   (0x7003fb1c)  0x380983  _ZN5BView8GetMouseEP6BPointPmb + 0x6f
KERN:   (0x7003fb8c)  0x57b3c0  _ZN8BPrivate9BPoseView9MouseDownE6BPoint + 0x214
KERN:   (0x7003fc5c)  0x38bea6  _ZN7BWindow15DispatchMessageEP8BMessageP8BHandler + 0xfd8
KERN:   (0x7003ff1c)  0x3881ad  _ZN7BWindow11task_looperEv + 0x22b
KERN:   (0x7003ff9c)  0x2cb0fa  _ZN7BLooper7_task0_EPv + 0x30
KERN:   (0x7003ffbc)  0x633064  thread_entry + 0x2d

comment:3 by diver, 9 years ago

Seems to depend on which mouse button. With left mouse button I get this:

Thread 351 called debugger(): getNumAvailable() == 0
[...]
[Switching to team /boot/system/Tracker (112) thread popup (351)]
0xffff0112 in ?? ()
(gdb) bt
#0  0xffff0112 in ?? ()
#1  0x0062f1cb in debugger () from /boot/system/lib/libroot.so
#2  0x00639597 in __assert_fail () from /boot/system/lib/libroot.so
#3  0x006a9f21 in BPrivate::hoardHeap::findAvailableSuperblock () from /boot/system/lib/libroot.so
#4  0x006a6af9 in BPrivate::threadHeap::malloc () from /boot/system/lib/libroot.so
#5  0x006a78e4 in malloc () from /boot/system/lib/libroot.so
#6  0x006ab949 in operator new (sz=20) at /home/iceid/haiku/buildtools/gcc/libstdc++-v3/libsupc++/new_opnt.cc:44
#7  0x00389ac5 in BWindow::AddShortcut () from /boot/system/lib/libbe.so
#8  0x00389fde in BWindow::_InitData () from /boot/system/lib/libbe.so
#9  0x0038d4b1 in BWindow::BWindow () from /boot/system/lib/libbe.so
#10 0x0032c856 in BPrivate::BMenuWindow::BMenuWindow () from /boot/system/lib/libbe.so
#11 0x0031ff2f in BMenu::_Show () from /boot/system/lib/libbe.so
#12 0x00320f4b in BMenu::Show () from /boot/system/lib/libbe.so
#13 0x00320f73 in BMenu::Show () from /boot/system/lib/libbe.so
#14 0x00337bb5 in BPopUpMenu::_StartTrack () from /boot/system/lib/libbe.so
#15 0x00337c7d in BPopUpMenu::_thread_entry () from /boot/system/lib/libbe.so
#16 0x00633064 in thread_entry () from /boot/system/lib/libroot.so
#17 0x7003ffec in ?? ()
(gdb)

syslog part:

KERN: 351: DEBUGGER: getNumAvailable() == 0
KERN: debug_server: Thread 351 entered the debugger: Debugger call: `getNumAvailable() == 0'
KERN: stack trace, current PC 0xffff0112  :
KERN:   (0x7003fbcc)  0x639597  __assert_fail + 0x46
KERN:   (0x7003fbec)  0x6a9f21  _ZN8BPrivate9hoardHeap23findAvailableSuperblockEiRPNS_5blockEPNS_11processHeapE + 0x537
KERN:   (0x7003fc3c)  0x6a6af9  _ZN8BPrivate10threadHeap6mallocEm + 0xb9
KERN:   (0x7003fc8c)  0x6a78e4  malloc + 0x1ff
KERN:   (0x7003fcbc)  0x6ab949  _ZnwmRKSt9nothrow_t + 0x29
KERN:   (0x7003fcfc)  0x389ac5  _ZN7BWindow11AddShortcutEmmP8BMessageP8BHandler + 0x2b
KERN:   (0x7003fd2c)  0x389fde  _ZN7BWindow9_InitDataE5BRectPKc11window_look11window_feelmml + 0x484
KERN:   (0x7003fdac)  0x38d4b1  _ZN7BWindowC2E5BRectPKc11window_look11window_feelmm + 0xb9
KERN:   (0x7003fe0c)  0x32c856  _ZN8BPrivate11BMenuWindowC1EPKc + 0x44
KERN:   (0x7003fe5c)  0x31ff2f  _ZN5BMenu5_ShowEbb + 0xc9
KERN:   (0x7003fecc)  0x320f4b  _ZN5BMenu4ShowEb + 0x37
KERN:   (0x7003fefc)  0x320f73  _ZN5BMenu4ShowEv + 0x1d
KERN:   (0x7003ff1c)  0x337bb5  _ZN10BPopUpMenu11_StartTrackE6BPointbbP5BRect + 0x49
KERN:   (0x7003ff5c)  0x337c7d  _ZN10BPopUpMenu13_thread_entryEPv + 0x59
KERN:   (0x7003ffbc)  0x633064  thread_entry + 0x2d
Thread 421 called debugger(): getNumAvailable() < getNumBlocks()
[...]
[Switching to team /boot/system/Tracker (405) thread w>/boot/home (421)]
0xffff0112 in ?? ()
(gdb) bt
#0  0xffff0112 in ?? ()
#1  0x0062f1cb in debugger () from /boot/system/lib/libroot.so
#2  0x00639597 in __assert_fail () from /boot/system/lib/libroot.so
#3  0x006a4bd1 in BPrivate::hoardHeap::freeBlock () from /boot/system/lib/libroot.so
#4  0x006a5f56 in BPrivate::processHeap::free () from /boot/system/lib/libroot.so
#5  0x006a76bd in free () from /boot/system/lib/libroot.so
#6  0x002d0b62 in BMessage::_Clear () from /boot/system/lib/libbe.so
#7  0x002d2292 in BMessage::~BMessage () from /boot/system/lib/libbe.so
#8  0x002c7fe1 in BInvoker::~BInvoker () from /boot/system/lib/libbe.so
#9  0x0032b17e in BMenuItem::~BMenuItem () from /boot/system/lib/libbe.so
#10 0x00545441 in BPrivate::ModelMenuItem::~ModelMenuItem () from /boot/system/lib/libtracker.so
#11 0x004fcb18 in BPrivate::BContainerWindow::BuildAddOnMenu () from /boot/system/lib/libtracker.so
#12 0x004fbf4b in BPrivate::BContainerWindow::UpdateMenu () from /boot/system/lib/libtracker.so
#13 0x004fe358 in BPrivate::BContainerWindow::ShowContextMenu () from /boot/system/lib/libtracker.so
#14 0x0057b023 in BPrivate::BPoseView::ShowContextMenu () from /boot/system/lib/libtracker.so
#15 0x0057b468 in BPrivate::BPoseView::MouseDown () from /boot/system/lib/libtracker.so
---Type <return> to continue, or q <return> to quit---
#16 0x0038bea6 in BWindow::DispatchMessage () from /boot/system/lib/libbe.so
#17 0x003881ad in BWindow::task_looper () from /boot/system/lib/libbe.so
#18 0x002cb0fa in BLooper::_task0_ () from /boot/system/lib/libbe.so
#19 0x00633064 in thread_entry () from /boot/system/lib/libroot.so
#20 0x701c5fec in ?? ()
(gdb) 

syslog part:

KERN: 421: DEBUGGER: getNumAvailable() < getNumBlocks()
KERN: debug_server: Thread 421 entered the debugger: Debugger call: `getNumAvailable() < getNumBlocks()'
KERN: stack trace, current PC 0xffff0112  :
KERN:   (0x701c569c)  0x639597  __assert_fail + 0x46
KERN:   (0x701c56bc)  0x6a4bd1  _ZN8BPrivate9hoardHeap9freeBlockERPNS_5blockERPNS_10superblockEiPNS_11processHeapE + 0x391
KERN:   (0x701c56fc)  0x6a5f56  _ZN8BPrivate11processHeap4freeEPv + 0x298
KERN:   (0x701c576c)  0x6a76bd  free + 0x154
KERN:   (0x701c578c)  0x2d0b62  _ZN8BMessage6_ClearEv + 0x72
KERN:   (0x701c57ac)  0x2d2292  _ZN8BMessageD0Ev + 0x28
KERN:   (0x701c57cc)  0x2c7fe1  _ZN8BInvokerD2Ev + 0x33
KERN:   (0x701c57fc)  0x32b17e  _ZN9BMenuItemD2Ev + 0x68
KERN:   (0x701c582c)  0x545441  _ZN8BPrivate13ModelMenuItemD0Ev + 0x3d
KERN:   (0x701c585c)  0x4fcb18  _ZN8BPrivate16BContainerWindow14BuildAddOnMenuEP5BMenu + 0xca
KERN:   (0x701c58ec)  0x4fbf4b  _ZN8BPrivate16BContainerWindow10UpdateMenuEP5BMenuNS0_17UpdateMenuContextE + 0x405
KERN:   (0x701c594c)  0x4fe358  _ZN8BPrivate16BContainerWindow15ShowContextMenuE6BPointPK9entry_refP5BView + 0x5f2
KERN:   (0x701c5b2c)  0x57b023  _ZN8BPrivate9BPoseView15ShowContextMenuE6BPoint + 0x135
KERN:   (0x701c5b8c)  0x57b468  _ZN8BPrivate9BPoseView9MouseDownE6BPoint + 0x2bc
KERN:   (0x701c5c5c)  0x38bea6  _ZN7BWindow15DispatchMessageEP8BMessageP8BHandler + 0xfd8
KERN:   (0x701c5f1c)  0x3881ad  _ZN7BWindow11task_looperEv + 0x22b
KERN:   (0x701c5f9c)  0x2cb0fa  _ZN7BLooper7_task0_EPv + 0x30
KERN:   (0x701c5fbc)  0x633064  thread_entry + 0x2d

comment:4 by diver, 9 years ago

I only tested it in VirtualBox, where menus open pretty slow.

comment:5 by anevilyak, 9 years ago

I may be wrong, but this looks like it could be a duplicate of #5941.

comment:6 by diver, 9 years ago

Yep, at least first crash from #comment:3 (where AddShortcut is mentioned) seems to be a dupe of #5941.
Not sure about others.

comment:7 by diver, 8 years ago

Still reproducible in hrev41892.

comment:8 by diver, 7 years ago

Resolution: fixed
Status: newclosed

Can't reproduce anymore, closing.

Note: See TracTickets for help on using tickets.