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

  • From: "Haiku" <trac@xxxxxxxxxxxx>
  • To: undisclosed-recipients: ;
  • Date: Sat, 03 Nov 2018 20:49:08 -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
--------------------------+----------------------------

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.

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

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...

--

Comment (by waddlesplash):

 Still an issue after user_memcpy changes?

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

Other related posts: