Firestorm
  1. Firestorm
  2. FIRE-5395

[CRASH] Clicking "stop" within sound exporer causes crash to desktop.

    Details

    • Type: Bug Bug
    • Status: Closed Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: Phoenix Firestorm 4.0.1
    • Fix Version/s: Phoenix Firestorm 4.1.1
    • Component/s: None
    • Environment:
    • SL Avatar Name:
      Whirly Fizzle
    • Patch attached:
      Patch attached
    • Reported In:
      Firestorm 4.0 FUI

      Description

      Steps to reproduce:

      • World -> Sound explorer
      • Click a sound source & select "Stop"
      • It may not crash the 1st time, usually on the 3rd or 4th try, youll CTD

      Callstack below.
      Crash logs attached.

      1. Firestorm.old
        132 kB
        Whirly Fizzle

        Issue Links

          Activity

          Hide
          Whirly Fizzle added a comment -

          Callstack:

           	llcommon.dll!LLFastTimer::DeclareTimer::`RTTI Complete Object Locator'() 	C++
          >	firestorm-bin.exe!LLAudioSource::play(const LLUUID & audio_uuid)  Line 1528	C++
           	firestorm-bin.exe!NACLFloaterExploreSounds::handle_stop(void * user_data)  Line 334	C++
           	firestorm-bin.exe!boost::detail::function::void_function_obj_invoker2<boost::_bi::bind_t<void,void (__cdecl*)(LLUUID const &),boost::_bi::list1<boost::arg<1> > >,void,LLUUID const &,LLAvatarName const &>::invoke(boost::detail::function::function_buffer & function_obj_ptr, const LLUUID & a0, const LLAvatarName & a1)  Line 153 + 0xb bytes	C++
           	firestorm-bin.exe!boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<boost::_bi::unspecified,boost::function<void __cdecl(void *)>,boost::_bi::list1<boost::_bi::value<void *> > >,void>::invoke(boost::detail::function::function_buffer & function_obj_ptr)  Line 153 + 0x41 bytes	C++
           	firestorm-bin.exe!boost::signals2::detail::signal2_impl<void,unsigned int,LLSD const &,boost::signals2::optional_last_value<void>,int,std::less<int>,boost::function<void __cdecl(unsigned int,LLSD const &)>,boost::function<void __cdecl(boost::signals2::connection const &,unsigned int,LLSD const &)>,boost::signals2::mutex>::slot_invoker::operator()(const boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<enum boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot2<void,unsigned int,LLSD const &,boost::function<void __cdecl(unsigned int,LLSD const &)> >,boost::signals2::mutex> > & connectionBody)  Line 340 + 0x4c bytes	C++
           	firestorm-bin.exe!boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal2_impl<void,unsigned int,LLSD const &,boost::signals2::optional_last_value<void>,int,std::less<int>,boost::function<void __cdecl(unsigned int,LLSD const &)>,boost::function<void __cdecl(boost::signals2::connection const &,unsigned int,LLSD const &)>,boost::signals2::mutex>::slot_invoker,std::_List_iterator<std::_List_val<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<enum boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot2<void,unsigned int,LLSD const &,boost::function<void __cdecl(unsigned int,LLSD const &)> >,boost::signals2::mutex> >,std::allocator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<enum boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot2<void,unsigned int,LLSD const &,boost::function<void __cdecl(unsigned int,LLSD const &)> >,boost::signals2::mutex> > > > >,boost::signals2::detail::connection_body<std::pair<enum boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot2<void,unsigned int,LLSD const &,boost::function<void __cdecl(unsigned int,LLSD const &)> >,boost::signals2::mutex> >::dereference()  Line 82 + 0x1c bytes	C++
           	firestorm-bin.exe!boost::signals2::optional_last_value<void>::operator()<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal2_impl<void,unsigned int,LLSD const &,boost::signals2::optional_last_value<void>,int,std::less<int>,boost::function<void __cdecl(unsigned int,LLSD const &)>,boost::function<void __cdecl(boost::signals2::connection const &,unsigned int,LLSD const &)>,boost::signals2::mutex>::slot_invoker,std::_List_iterator<std::_List_val<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<enum boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot2<void,unsigned int,LLSD const &,boost::function<void __cdecl(unsigned int,LLSD const &)> >,boost::signals2::mutex> >,std::allocator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<enum boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot2<void,unsigned int,LLSD const &,boost::function<void __cdecl(unsigned int,LLSD const &)> >,boost::signals2::mutex> > > > >,boost::signals2::detail::connection_body<std::pair<enum boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot2<void,unsigned int,LLSD const &,boost::function<void __cdecl(unsigned int,LLSD const &)> >,boost::signals2::mutex> > >(boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal2_impl<void,unsigned int,LLSD const &,boost::signals2::optional_last_value<void>,int,std::less<int>,boost::function<void __cdecl(unsigned int,LLSD const &)>,boost::function<void __cdecl(boost::signals2::connection const &,unsigned int,LLSD const &)>,boost::signals2::mutex>::slot_invoker,std::_List_iterator<std::_List_val<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<enum boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot2<void,unsigned int,LLSD const &,boost::function<void __cdecl(unsigned int,LLSD const &)> >,boost::signals2::mutex> >,std::allocator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<enum boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot2<void,unsigned int,LLSD const &,boost::function<void __cdecl(unsigned int,LLSD const &)> >,boost::signals2::mutex> > > > >,boost::signals2::detail::connection_body<std::pa first, boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal2_impl<void,unsigned int,LLSD const &,boost::signals2::optional_last_value<void>,int,std::less<int>,boost::function<void __cdecl(unsigned int,LLSD const &)>,boost::function<void __cdecl(boost::signals2::connection const &,unsigned int,LLSD const &)>,boost::signals2::mutex>::slot_invoker,std::_List_iterator<std::_List_val<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<enum boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot2<void,unsigned int,LLSD const &,boost::function<void __cdecl(unsigned int,LLSD const &)> >,boost::signals2::mutex> >,std::allocator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<enum boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot2<void,unsigned int,LLSD const &,boost::function<void __cdecl(unsigned int,LLSD const &)> >,boost::signals2::mutex> > > > >,boost::signals2::detail::connection_body<std::pa last)  Line 65535	C++
           	firestorm-bin.exe!boost::signals2::detail::signal2_impl<void,LLUICtrl *,LLSD const &,boost::signals2::optional_last_value<void>,int,std::less<int>,boost::function<void __cdecl(LLUICtrl *,LLSD const &)>,boost::function<void __cdecl(boost::signals2::connection const &,LLUICtrl *,LLSD const &)>,boost::signals2::mutex>::operator()(LLUICtrl * arg1, const LLSD & arg2)  Line 246 + 0xa4 bytes	C++
           	firestorm-bin.exe!LLUICtrl::onCommit()  Line 380 + 0x27 bytes	C++
           	firestorm-bin.exe!LLButton::handleMouseUp(int x, int y, unsigned int mask)  Line 517	C++
           	firestorm-bin.exe!LLMouseHandler::handleAnyMouseClick(int x, int y, unsigned int mask, LLMouseHandler::EClickType clicktype, int down)  Line 49 + 0x13 bytes	C++
           	firestorm-bin.exe!LLViewerWindow::handleAnyMouseClick(LLWindow * window, LLCoordGL pos, unsigned int mask, LLMouseHandler::EClickType clicktype, int down)  Line 984	C++
           	firestorm-bin.exe!LLViewerWindow::handleMouseUp(LLWindow * window, LLCoordGL pos, unsigned int mask)  Line 1009	C++
           	firestorm-bin.exe!LLWindowWin32::mainWindowProc(HWND__ * h_wnd, unsigned int u_msg, unsigned int w_param, long l_param)  Line 2193	C++
           	user32.dll!75a4fd72() 	
           	[Frames below may be incorrect and/or missing, no symbols loaded for user32.dll]	
           	user32.dll!75a4fe4a() 	
           	user32.dll!75a4fdf3() 	
           	user32.dll!75a509d3() 	
           	user32.dll!75a50979() 	
           	opengl32.dll!53be834f() 	
           	user32.dll!75a4fd72() 	
           	user32.dll!75a4fe4a() 	
           	user32.dll!75a4fdf3() 	
           	user32.dll!75a5018d() 	
           	user32.dll!75a501ad() 	
           	user32.dll!75a5022b() 	
           	firestorm-bin.exe!LLWindowWin32::gatherInput()  Line 1770	C++
           	firestorm-bin.exe!LLAppViewer::mainLoop()  Line 1337	C++
           	firestorm-bin.exe!WinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, char * lpCmdLine, int nCmdShow)  Line 172	C++
           	firestorm-bin.exe!__tmainCRTStartup()  Line 547 + 0x1c bytes	C
           	kernel32.dll!75e8d309() 	
           	ntdll.dll!76f81603() 	
           	ntdll.dll!76f815d6() 	
          
          Show
          Whirly Fizzle added a comment - Callstack: llcommon.dll!LLFastTimer::DeclareTimer::`RTTI Complete Object Locator'() C++ > firestorm-bin.exe!LLAudioSource::play( const LLUUID & audio_uuid) Line 1528 C++ firestorm-bin.exe!NACLFloaterExploreSounds::handle_stop(void * user_data) Line 334 C++ firestorm-bin.exe!boost::detail::function::void_function_obj_invoker2<boost::_bi::bind_t<void,void (__cdecl*)(LLUUID const &),boost::_bi::list1<boost::arg<1> > >,void,LLUUID const &,LLAvatarName const &>::invoke(boost::detail::function::function_buffer & function_obj_ptr, const LLUUID & a0, const LLAvatarName & a1) Line 153 + 0xb bytes C++ firestorm-bin.exe!boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<boost::_bi::unspecified,boost::function<void __cdecl(void *)>,boost::_bi::list1<boost::_bi::value<void *> > >,void>::invoke(boost::detail::function::function_buffer & function_obj_ptr) Line 153 + 0x41 bytes C++ firestorm-bin.exe!boost::signals2::detail::signal2_impl<void,unsigned int ,LLSD const &,boost::signals2::optional_last_value<void>, int ,std::less< int >,boost::function<void __cdecl(unsigned int ,LLSD const &)>,boost::function<void __cdecl(boost::signals2::connection const &,unsigned int ,LLSD const &)>,boost::signals2::mutex>::slot_invoker:: operator ()( const boost::shared_ptr<boost::signals2::detail::connection_body<std::pair< enum boost::signals2::detail::slot_meta_group,boost::optional< int > >,boost::signals2::slot2<void,unsigned int ,LLSD const &,boost::function<void __cdecl(unsigned int ,LLSD const &)> >,boost::signals2::mutex> > & connectionBody) Line 340 + 0x4c bytes C++ firestorm-bin.exe!boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal2_impl<void,unsigned int ,LLSD const &,boost::signals2::optional_last_value<void>, int ,std::less< int >,boost::function<void __cdecl(unsigned int ,LLSD const &)>,boost::function<void __cdecl(boost::signals2::connection const &,unsigned int ,LLSD const &)>,boost::signals2::mutex>::slot_invoker,std::_List_iterator<std::_List_val<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair< enum boost::signals2::detail::slot_meta_group,boost::optional< int > >,boost::signals2::slot2<void,unsigned int ,LLSD const &,boost::function<void __cdecl(unsigned int ,LLSD const &)> >,boost::signals2::mutex> >,std::allocator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair< enum boost::signals2::detail::slot_meta_group,boost::optional< int > >,boost::signals2::slot2<void,unsigned int ,LLSD const &,boost::function<void __cdecl(unsigned int ,LLSD const &)> >,boost::signals2::mutex> > > > >,boost::signals2::detail::connection_body<std::pair< enum boost::signals2::detail::slot_meta_group,boost::optional< int > >,boost::signals2::slot2<void,unsigned int ,LLSD const &,boost::function<void __cdecl(unsigned int ,LLSD const &)> >,boost::signals2::mutex> >::dereference() Line 82 + 0x1c bytes C++ firestorm-bin.exe!boost::signals2::optional_last_value<void>:: operator ()<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal2_impl<void,unsigned int ,LLSD const &,boost::signals2::optional_last_value<void>, int ,std::less< int >,boost::function<void __cdecl(unsigned int ,LLSD const &)>,boost::function<void __cdecl(boost::signals2::connection const &,unsigned int ,LLSD const &)>,boost::signals2::mutex>::slot_invoker,std::_List_iterator<std::_List_val<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair< enum boost::signals2::detail::slot_meta_group,boost::optional< int > >,boost::signals2::slot2<void,unsigned int ,LLSD const &,boost::function<void __cdecl(unsigned int ,LLSD const &)> >,boost::signals2::mutex> >,std::allocator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair< enum boost::signals2::detail::slot_meta_group,boost::optional< int > >,boost::signals2::slot2<void,unsigned int ,LLSD const &,boost::function<void __cdecl(unsigned int ,LLSD const &)> >,boost::signals2::mutex> > > > >,boost::signals2::detail::connection_body<std::pair< enum boost::signals2::detail::slot_meta_group,boost::optional< int > >,boost::signals2::slot2<void,unsigned int ,LLSD const &,boost::function<void __cdecl(unsigned int ,LLSD const &)> >,boost::signals2::mutex> > >(boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal2_impl<void,unsigned int ,LLSD const &,boost::signals2::optional_last_value<void>, int ,std::less< int >,boost::function<void __cdecl(unsigned int ,LLSD const &)>,boost::function<void __cdecl(boost::signals2::connection const &,unsigned int ,LLSD const &)>,boost::signals2::mutex>::slot_invoker,std::_List_iterator<std::_List_val<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair< enum boost::signals2::detail::slot_meta_group,boost::optional< int > >,boost::signals2::slot2<void,unsigned int ,LLSD const &,boost::function<void __cdecl(unsigned int ,LLSD const &)> >,boost::signals2::mutex> >,std::allocator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair< enum boost::signals2::detail::slot_meta_group,boost::optional< int > >,boost::signals2::slot2<void,unsigned int ,LLSD const &,boost::function<void __cdecl(unsigned int ,LLSD const &)> >,boost::signals2::mutex> > > > >,boost::signals2::detail::connection_body<std::pa first, boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal2_impl<void,unsigned int ,LLSD const &,boost::signals2::optional_last_value<void>, int ,std::less< int >,boost::function<void __cdecl(unsigned int ,LLSD const &)>,boost::function<void __cdecl(boost::signals2::connection const &,unsigned int ,LLSD const &)>,boost::signals2::mutex>::slot_invoker,std::_List_iterator<std::_List_val<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair< enum boost::signals2::detail::slot_meta_group,boost::optional< int > >,boost::signals2::slot2<void,unsigned int ,LLSD const &,boost::function<void __cdecl(unsigned int ,LLSD const &)> >,boost::signals2::mutex> >,std::allocator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair< enum boost::signals2::detail::slot_meta_group,boost::optional< int > >,boost::signals2::slot2<void,unsigned int ,LLSD const &,boost::function<void __cdecl(unsigned int ,LLSD const &)> >,boost::signals2::mutex> > > > >,boost::signals2::detail::connection_body<std::pa last) Line 65535 C++ firestorm-bin.exe!boost::signals2::detail::signal2_impl<void,LLUICtrl *,LLSD const &,boost::signals2::optional_last_value<void>, int ,std::less< int >,boost::function<void __cdecl(LLUICtrl *,LLSD const &)>,boost::function<void __cdecl(boost::signals2::connection const &,LLUICtrl *,LLSD const &)>,boost::signals2::mutex>:: operator ()(LLUICtrl * arg1, const LLSD & arg2) Line 246 + 0xa4 bytes C++ firestorm-bin.exe!LLUICtrl::onCommit() Line 380 + 0x27 bytes C++ firestorm-bin.exe!LLButton::handleMouseUp( int x, int y, unsigned int mask) Line 517 C++ firestorm-bin.exe!LLMouseHandler::handleAnyMouseClick( int x, int y, unsigned int mask, LLMouseHandler::EClickType clicktype, int down) Line 49 + 0x13 bytes C++ firestorm-bin.exe!LLViewerWindow::handleAnyMouseClick(LLWindow * window, LLCoordGL pos, unsigned int mask, LLMouseHandler::EClickType clicktype, int down) Line 984 C++ firestorm-bin.exe!LLViewerWindow::handleMouseUp(LLWindow * window, LLCoordGL pos, unsigned int mask) Line 1009 C++ firestorm-bin.exe!LLWindowWin32::mainWindowProc(HWND__ * h_wnd, unsigned int u_msg, unsigned int w_param, long l_param) Line 2193 C++ user32.dll!75a4fd72() [Frames below may be incorrect and/or missing, no symbols loaded for user32.dll] user32.dll!75a4fe4a() user32.dll!75a4fdf3() user32.dll!75a509d3() user32.dll!75a50979() opengl32.dll!53be834f() user32.dll!75a4fd72() user32.dll!75a4fe4a() user32.dll!75a4fdf3() user32.dll!75a5018d() user32.dll!75a501ad() user32.dll!75a5022b() firestorm-bin.exe!LLWindowWin32::gatherInput() Line 1770 C++ firestorm-bin.exe!LLAppViewer::mainLoop() Line 1337 C++ firestorm-bin.exe!WinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, char * lpCmdLine, int nCmdShow) Line 172 C++ firestorm-bin.exe!__tmainCRTStartup() Line 547 + 0x1c bytes C kernel32.dll!75e8d309() ntdll.dll!76f81603() ntdll.dll!76f815d6()
          Hide
          Zi Ree added a comment -

          I can reproduce this and I'm looking into it. It's pretty elusive, looks like an invalidated pointer.

          Show
          Zi Ree added a comment - I can reproduce this and I'm looking into it. It's pretty elusive, looks like an invalidated pointer.
          Show
          Zi Ree added a comment - http://hg.phoenixviewer.com/phoenix-firestorm-lgpl/rev/2506651156fc Fixed.
          Hide
          Tank Master added a comment -

          and again at http://hg.phoenixviewer.com/phoenix-firestorm-lgpl/rev/6b6ccc3dae07 for sound explorer reintroduction

          Show
          Tank Master added a comment - and again at http://hg.phoenixviewer.com/phoenix-firestorm-lgpl/rev/6b6ccc3dae07 for sound explorer reintroduction
          Hide
          Jessica Lyon added a comment -

          Part of FIRE-2080 sound explorer. Approved for 4.1.1 release.

          Show
          Jessica Lyon added a comment - Part of FIRE-2080 sound explorer. Approved for 4.1.1 release.

            People

            • Assignee:
              Zi Ree
              Reporter:
              Whirly Fizzle
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: