[haiku-bugs] Re: [Haiku] #11452: Race condition in BPopUpMenu leads to KDL

  • From: "pulkomandy" <trac@xxxxxxxxxxxx>
  • Date: Tue, 11 Nov 2014 17:26:36 -0000

#11452: Race condition in BPopUpMenu leads to KDL
--------------------------+----------------------------
   Reporter:  pulkomandy  |      Owner:  nobody
       Type:  bug         |     Status:  new
   Priority:  normal      |  Milestone:  R1
  Component:  - General   |    Version:  R1/Development
 Resolution:              |   Keywords:
 Blocked By:              |   Blocking:
Has a Patch:  0           |   Platform:  All
--------------------------+----------------------------
Description changed by pulkomandy:

Old description:

> This may not be easy to trigger...
>
> We are supposed to only allow one popup menu on a given view at a time.
> This doesn't work perfectly however and I often manage to open two menus
> in Tracker: the desktop one and the specific menu for a given icon (you
> have to be fast to do this - right click on the desktop and then on the
> icon a short time after that, but before the first menu is open).
>
> Usually this is harmless and only leads to the two menus opening. But
> today I went to KDL.
>
> {{{
> PANIC: vm_page_fault: unhandled page fault in kernel space at 0x706f78,
> ip 0x80084ba2
> }}}
>
> The panic is in  wait_for_thread_etc, called by BPopUpMenu::_Go. It seems
> that it's trying to access invalid thread data.

New description:

 This may not be easy to trigger...

 We are supposed to only allow one popup menu on a given view at a time.
 This doesn't work perfectly however and I often manage to open two menus
 in Tracker: the desktop one and the specific menu for a given icon (you
 have to be fast to do this - right click on the desktop and then on the
 icon a short time after that, but before the first menu is open).

 Usually this is harmless and only leads to the two menus opening. But
 today I went to KDL.

 {{{
 PANIC: vm_page_fault: unhandled page fault in kernel space at 0x706f78, ip
 0x80084ba2
 }}}

 The panic is in  wait_for_thread_etc, called by BPopUpMenu::_Go. It seems
 that it's trying to access invalid thread data.

 I should note that I was trying to replicate the CDDA panics/corruption,
 so that may be the actual problem...

--

--
Ticket URL: <https://dev.haiku-os.org/ticket/11452#comment:1>
Haiku <https://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: