Uploaded image for project: 'Snowstorm'
  1. Snowstorm
  2. STORM-1831 Obtain LSL syntax table from simulator so that it is always up to date
  3. STORM-1998

[STORM-1831] Viewer crashes on teleport if you have had a script open anytime that session before teleporting.

    Details

    • Type: Task
    • Status: Closed
    • Priority: Unset
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
      None
    • Environment:

      Description

      Steps to Reproduce

      1. Login on the STORM-1831 test viewer (http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/contrib_storm-1831/rev/284217/index.html) to a region that supports the STORM-1831 feature (eg secondlife://Aditi/secondlife/Flurry/128/128/24) - though region doesnt appear to matter tbh, this crash repros whether you only TP between regions that support this feature or ones that do not.
      2. Teleport between regions Blizzard and Flurry a few times (Blizzard region also supports STORM-1831).
      3. Observe teleports complete successfully so far.
      4. Open inventory and open any script.
      5. Close script.
      6. Attempt to teleport between Blizzard and Flurry again.

      Observed Behaviour

      Viewer always crashes just as you click teleport.

      I appear to get one of 2 different callstacks each time I crash.

      Callstack 1:

      Operating system: Windows NT
                        6.0.6002 Service Pack 2
      CPU: x86
           GenuineIntel family 6 model 23 stepping 10
           4 CPUs
       
      Crash reason:  EXCEPTION_ACCESS_VIOLATION_READ
      Crash address: 0x6e655224
       
      Thread 0 (crashed)
       0  SecondLifeTest.exe!LLSD::assign(LLSD const &) [llsd.cpp : 805 + 0x24]
       
       1  SecondLifeTest.exe!LLKeywords::initialise(LLSD) [llkeywords.cpp : 200 + 0x12]
       
       2  SecondLifeTest.exe!LLScriptEdCore::onRegionChangeInitialiseKeywords() [llpreviewscript.cpp : 422 + 0x22]
       
       3  SecondLifeTest.exe!boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal0_impl<void,boost::signals2::optional_last_value<void>,int,std::less<int>,boost::function<void >,boost::function<void >,boost::signals2::mutex>::slot_invoker,std::_List_iterator<std::_List_val<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot0<void,boost::function<void > >,boost::signals2::mutex> >,std::allocator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot0<void,boost::function<void > >,boost::signals2::mutex> > > > >,boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot0<void,boost::function<void > >,boost::signals2::mutex> >::dereference() [slot_call_iterator.hpp : 82 + 0x46]
       
       4  SecondLifeTest.exe!boost::signals2::optional_last_value<void>::operator()<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal0_impl<void,boost::signals2::optional_last_value<void>,int,std::less<int>,boost::function<void >,boost::function<void >,boost::signals2::mutex>::slot_invoker,std::_List_iterator<std::_List_val<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot0<void,boost::function<void > >,boost::signals2::mutex> >,std::allocator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot0<void,boost::function<void > >,boost::signals2::mutex> > > > >,boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot0<void,boost::function<void > >,boost::signals2::mutex> > >(boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal0_impl<void,boost::signals2::optional_last_value<void>,int,std::less<int>,boost::function<void >,boost::function<void >,boost::signals2::mutex>::slot_invoker,std::_List_iterator<std::_List_val<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot0<void,boost::function<void > >,boost::signals2::mutex> >,std::allocator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot0<void,boost::function<void > >,boost::signals2::mutex> > > > >,boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot0<void,boost::function<void > >,boost::signals2::mutex> >,boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal0_impl<void,boost::signals2::optional_last_value<void>,int,std::less<int>,boost::function<void >,boost::function<void >,boost::signals2::mutex>::slot_invoker,std::_List_iterator<std::_List_val<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot0<void,boost::function<void > >,boost::signals2::mutex> >,std::allocator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot0<void,boost::function<void > >,boost::signals2::mutex> > > > >,boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot0<void,boost::function<void > >,boost::signals2::mutex> >) [optional_last_value.hpp : 55 + 0xe]
       
       5  SecondLifeTest.exe!boost::signals2::detail::signal0_impl<void,boost::signals2::optional_last_value<void>,int,std::less<int>,boost::function<void >,boost::function<void >,boost::signals2::mutex>::operator()() [signal_template.hpp : 246 + 0xa3]
       
       6  SecondLifeTest.exe!LLAgent::setRegion(LLViewerRegion *) [llagent.cpp : 953 + 0xa]
       
       7  SecondLifeTest.exe!process_agent_movement_complete(LLMessageSystem *,void * *) [llviewermessage.cpp : 4083 + 0xa]
       
       8  SecondLifeTest.exe!LLTemplateMessageReader::decodeData(unsigned char const *,LLHost const &) [lltemplatemessagereader.cpp : 709 + 0x1e]
       
       9  SecondLifeTest.exe!LLMessageSystem::checkMessages(__int64) [message.cpp : 725 + 0x12]
       
      10  SecondLifeTest.exe!LLMessageSystem::checkAllMessages(__int64,LLPumpIO *) [message.cpp : 4021 + 0x11]
       
      11  SecondLifeTest.exe!LLAppViewer::idleNetwork() [llappviewer.cpp : 5096 + 0x25]
       
      12  SecondLifeTest.exe!LLAppViewer::idle() [llappviewer.cpp : 4640 + 0x6]
       
      13  SecondLifeTest.exe!LLAppViewer::mainLoop() [llappviewer.cpp : 1393 + 0xa]
       
      14  SecondLifeTest.exe!WinMain [llappviewerwin32.cpp : 297 + 0x8]
       
      15  SecondLifeTest.exe!__tmainCRTStartup [crtexe.c : 547 + 0x1b]
       
      16  kernel32.dll + 0x4d2e8
       
      17  ntdll.dll + 0x41602
       
      18  ntdll.dll + 0x415d5
      

      Callstack 2:

      Operating system: Windows NT
                        6.0.6002 Service Pack 2
      CPU: x86
           GenuineIntel family 6 model 23 stepping 10
           4 CPUs
       
      Crash reason:  EXCEPTION_ACCESS_VIOLATION_READ
      Crash address: 0x2d
       
      Thread 0 (crashed)
       0  SecondLifeTest.exe!std::_Tree<std::_Tmap_traits<LLKeywords::WStringMapIndex,LLKeywordToken *,std::less<LLKeywords::WStringMapIndex>,std::allocator<std::pair<LLKeywords::WStringMapIndex const ,LLKeywordToken *> >,0> >::_Lbound(LLKeywords::WStringMapIndex const &) [xtree : 1745 + 0x0]
       
       1  SecondLifeTest.exe!std::map<LLKeywords::WStringMapIndex,LLKeywordToken *,std::less<LLKeywords::WStringMapIndex>,std::allocator<std::pair<LLKeywords::WStringMapIndex const ,LLKeywordToken *> > >::operator[](LLKeywords::WStringMapIndex const &) [map : 213 + 0x7]
       
       2  SecondLifeTest.exe!LLKeywords::addToken(LLKeywordToken::TOKEN_TYPE,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,LLColor4 const &,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &) [llkeywords.cpp : 115 + 0x62]
       
       3  SecondLifeTest.exe!LLKeywords::processTokens() [llkeywords.cpp : 234 + 0x8e]
       
       4  SecondLifeTest.exe!LLTextEditor::loadKeywords() [lltexteditor.cpp : 2519 + 0xd]
       
       5  SecondLifeTest.exe!LLScriptEdCore::onRegionChangeInitialiseKeywords() [llpreviewscript.cpp : 424 + 0xa]
       
       6  SecondLifeTest.exe!boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal0_impl<void,boost::signals2::optional_last_value<void>,int,std::less<int>,boost::function<void >,boost::function<void >,boost::signals2::mutex>::slot_invoker,std::_List_iterator<std::_List_val<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot0<void,boost::function<void > >,boost::signals2::mutex> >,std::allocator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot0<void,boost::function<void > >,boost::signals2::mutex> > > > >,boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot0<void,boost::function<void > >,boost::signals2::mutex> >::dereference() [slot_call_iterator.hpp : 82 + 0x46]
       
       7  SecondLifeTest.exe!boost::signals2::optional_last_value<void>::operator()<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal0_impl<void,boost::signals2::optional_last_value<void>,int,std::less<int>,boost::function<void >,boost::function<void >,boost::signals2::mutex>::slot_invoker,std::_List_iterator<std::_List_val<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot0<void,boost::function<void > >,boost::signals2::mutex> >,std::allocator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot0<void,boost::function<void > >,boost::signals2::mutex> > > > >,boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot0<void,boost::function<void > >,boost::signals2::mutex> > >(boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal0_impl<void,boost::signals2::optional_last_value<void>,int,std::less<int>,boost::function<void >,boost::function<void >,boost::signals2::mutex>::slot_invoker,std::_List_iterator<std::_List_val<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot0<void,boost::function<void > >,boost::signals2::mutex> >,std::allocator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot0<void,boost::function<void > >,boost::signals2::mutex> > > > >,boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot0<void,boost::function<void > >,boost::signals2::mutex> >,boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal0_impl<void,boost::signals2::optional_last_value<void>,int,std::less<int>,boost::function<void >,boost::function<void >,boost::signals2::mutex>::slot_invoker,std::_List_iterator<std::_List_val<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot0<void,boost::function<void > >,boost::signals2::mutex> >,std::allocator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot0<void,boost::function<void > >,boost::signals2::mutex> > > > >,boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot0<void,boost::function<void > >,boost::signals2::mutex> >) [optional_last_value.hpp : 55 + 0xe]
       
       8  SecondLifeTest.exe!boost::signals2::detail::signal0_impl<void,boost::signals2::optional_last_value<void>,int,std::less<int>,boost::function<void >,boost::function<void >,boost::signals2::mutex>::operator()() [signal_template.hpp : 246 + 0xa3]
          eip = 0x002e0b18   esp = 0x0284f450   ebp = 0x0284f56c
          Found by: call frame info
       9  SecondLifeTest.exe!LLAgent::setRegion(LLViewerRegion *) [llagent.cpp : 953 + 0xa]
       
      10  SecondLifeTest.exe!process_agent_movement_complete(LLMessageSystem *,void * *) [llviewermessage.cpp : 4083 + 0xa]
       
      11  SecondLifeTest.exe!LLTemplateMessageReader::decodeData(unsigned char const *,LLHost const &) [lltemplatemessagereader.cpp : 709 + 0x1e]
       
      12  SecondLifeTest.exe!LLMessageSystem::checkMessages(__int64) [message.cpp : 725 + 0x12]
       
      13  SecondLifeTest.exe!LLMessageSystem::checkAllMessages(__int64,LLPumpIO *) [message.cpp : 4021 + 0x11]
       
      14  SecondLifeTest.exe!LLAppViewer::idleNetwork() [llappviewer.cpp : 5096 + 0x13]
       
      15  SecondLifeTest.exe!LLAppViewer::idle() [llappviewer.cpp : 4640 + 0x6]
       
      16  SecondLifeTest.exe!LLAppViewer::mainLoop() [llappviewer.cpp : 1393 + 0xa]
       
      17  SecondLifeTest.exe!WinMain [llappviewerwin32.cpp : 297 + 0x8]
       
      18  SecondLifeTest.exe!__tmainCRTStartup [crtexe.c : 547 + 0x1b]
       
      19  kernel32.dll + 0x4d2e8
       
      20  ntdll.dll + 0x41602
       
      21  ntdll.dll + 0x415d5
      

      Logs and full callstacks attached.

      Expected Behaviour

      No crash.

        Attachments

        1. callstack1.txt
          56 kB
        2. callstack2.txt
          43 kB
        3. logs.zip
          130 kB

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                whirly.fizzle Whirly Fizzle
              • Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: