Opened 9 years ago

Closed 9 years ago

#5987 closed bug (fixed)

menu thread lockup when using cursor key on empty folder

Reported by: Ziusudra Owned by: stippi
Priority: normal Milestone: R1
Component: Kits/Interface Kit Version: R1/alpha2
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description

Use mouse to open a Tracker or Deskbar menu to an empty folder then press cursor up or down key. Thread will deadlock and next interaction with app will cause it to deadlock.

Attachments (1)

menu_deadlock.txt (5.1 KB) - added by Ziusudra 9 years ago.
gdb backtraces

Download all attachments as: .zip

Change History (4)

Changed 9 years ago by Ziusudra

Attachment: menu_deadlock.txt added

gdb backtraces

comment:1 Changed 9 years ago by stippi

Owner: changed from axeld to stippi
Status: newin-progress

It just so happens that I came across a method in the Menu tracking code that I thought was curious and should deadlock in certain situations. And indeed there is a ticket within the next day... :-)

(gdb) bt
#0  0x002fc0c7 in BMenu::_NextItem () from /boot/system/lib/libbe.so
#1  0x002fd4d7 in BMenu::_SelectNextItem () from /boot/system/lib/libbe.so
#2  0x002feb8c in BMenu::KeyDown () from /boot/system/lib/libbe.so
#3  0x00365984 in BWindow::DispatchMessage () from /boot/system/lib/libbe.so
#4  0x00309343 in BPrivate::BMenuWindow::DispatchMessage () from /boot/system/lib/libbe.so
#5  0x00361de9 in BWindow::task_looper () from /boot/system/lib/libbe.so
#6  0x002ade0e in BLooper::_task0_ () from /boot/system/lib/libbe.so
#7  0x005eee6c in thread_entry () from /boot/system/lib/libroot.so
#8  0x78594fec in ?? ()

When the method has no other item to go to, it will loop forever.

comment:2 Changed 9 years ago by stippi

Not deadlock, I mean busy-loop... sorry.

comment:3 Changed 9 years ago by stippi

Resolution: fixed
Status: in-progressclosed

Fixed in hrev36813. I've also noticed the cached menu window thread can deadlock when trying to close a submenu by pressing Esc. That's a different issue, though.

Note: See TracTickets for help on using tickets.