[haiku-bugs] Re: [Haiku] #3085: [Sounds] crashes after playing the event sounds consecutively.

  • From: "ttcoder" <trac@xxxxxxxxxxxx>
  • Date: Mon, 19 Aug 2013 17:26:32 -0000

#3085: [Sounds] crashes after playing the event sounds consecutively.
----------------------------------+----------------------------
   Reporter:  richienyhus         |      Owner:  mmu_man
       Type:  bug                 |     Status:  new
   Priority:  normal              |  Milestone:  R1
  Component:  Preferences/Sounds  |    Version:  R1/Development
 Resolution:                      |   Keywords:
 Blocked By:                      |   Blocking:
Has a Patch:  0                   |   Platform:  x86
----------------------------------+----------------------------

Comment (by ttcoder):

 Regarding {{{ Component: Preferences/Sounds}}},

 In hrev45824 I witnessed just now a call to system_beep() (specifically,
 in BeShare) going "click" (brief click then silence, instead of playing
 the sound).. Went to Preferences/Sounds immediately, but when I selected
 the corresponding line and clicked "Play" it worked fine. A couple years
 ago it used to crash as described above. If memory serves, there has been
 changes in the media-kit but not in "Sounds" since that time, so it seems
 the MK was the culprit and has much improved since then.

 There's a possibility the remaining problem is not in Sounds but rather in
 the MK implementation of system_beep(). I base that on a MK vulnerability
 I discovered recently (still have to file a ticket): if playing a sound in
 a certain way, one may block the media_server, such that all applications
 accessing it are "frozen". After some digging I found out that my code had
 to use {{{Preroll()}}} and call {{{BSoundPlayer::Stop()}}} before ever
 {{{delete}}}ing it (not sure which one of these two fixed it, but the
 vulnerability is fixed now). So the MK is a bit sensitive to the order in
 which functions are called to access it. If it can trigger a freeze, it
 can trigger a "click" or the old crash in older, more vulnerable versions.
 Maybe system_beep() (as presumably used in Sounds) forgets to call
 {{{Stop()}}} before recycling the BSoundPlayer, or something like that.

--
Ticket URL: <http://dev.haiku-os.org/ticket/3085#comment:13>
Haiku <http://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: