Skip to content
This repository has been archived by the owner on Feb 28, 2024. It is now read-only.

[BUG-226896] [EEP] Crash - Object contents, when opening 2 scripts or 2 notecards #5339

Open
sl-service-account opened this issue Apr 30, 2019 · 3 comments

Comments

@sl-service-account
Copy link

sl-service-account commented Apr 30, 2019

What just happened?

Rez cube.

Create or add 2 scripts or 2 notecards to object contents.

What were you doing when it happened?

Select and open both. Go boom. 

What were you expecting to happen instead?

No boom.

Other information

Does not reproduce on Second Life Release 6.2.0.526190 (64bit) 

Attachments

Original Jira Fields
Field Value
Issue BUG-226896
Summary [EEP] Crash - Object contents, when opening 2 scripts or 2 notecards
Type Bug
Priority Unset
Status Accepted
Resolution Triaged
Labels whirly-eep
Reporter Willow Wilder (willow.wilder)
Created at 2019-04-30T09:39:10Z
Updated at 2020-06-15T15:23:26Z
{
  'Build Id': 'unset',
  'Business Unit': ['Platform'],
  'Date of First Response': '2019-04-30T08:22:57.562-0500',
  "Is there anything you'd like to add?": '.',
  'ReOpened Count': 0.0,
  'Severity': 'Unset',
  'System': 'SL Viewer',
  'Target Viewer Version': 'viewer-development',
  'What just happened?': '.',
  'What were you doing when it happened?': '.',
  'What were you expecting to happen instead?': '.',
  'Where': 'http://maps.secondlife.com/secondlife/Testylvania%20Sandbox/208/96/22',
}
@sl-service-account
Copy link
Author

Whirly Fizzle commented at 2019-04-30T13:22:58Z

Crash still reproduces on EEP Nightly: Second Life Release 6.2.2.526771 (64bit)

@sl-service-account
Copy link
Author

Whirly Fizzle commented at 2019-04-30T13:33:37Z

Can't get the stack from the LL EEP because of Bugsplat.
Here is the stack from Firestorm EEP.

Operating system: Windows NT
                  6.1.7601 Service Pack 1
CPU: amd64
     family 6 model 60 stepping 3
     8 CPUs

Crash reason:  EXCEPTION_ACCESS_VIOLATION_READ
Crash address: 0xffffffffffffffff
Assertion: Unknown assertion type 0x00000000
Process uptime: 56 seconds

Thread 0 (crashed)
 0  Firestorm-eepx64.exe!LLInventoryAction::doToSelected(LLInventoryModel *,LLFolderView *,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,int) [llinventoryfunctions.cpp : 2658 + 0xf]
 1  Firestorm-eepx64.exe!LLPanelObjectInventory::doToSelected(LLSD const &) [llpanelobjectinventory.cpp : 1531 + 0x2a]
 2  Firestorm-eepx64.exe!boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type,LLUICtrl *,LLSD const &>,std::_List_iterator<std::_List_val<std::_List_simple_types<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot<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::slot<void ,boost::function<void > >,boost::signals2::mutex> >::dereference() [slot_call_iterator.hpp : 82 + 0x5f]
 3  Firestorm-eepx64.exe!boost::signals2::optional_last_value<void>::operator()<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type,LLUICtrl *,LLSD const &>,std::_List_iterator<std::_List_val<std::_List_simple_types<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot<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::slot<void ,boost::function<void > >,boost::signals2::mutex> > >(boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type,LLUICtrl *,LLSD const &>,std::_List_iterator<std::_List_val<std::_List_simple_types<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot<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::slot<void ,boost::function<void > >,boost::signals2::mutex> >,boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type,LLUICtrl *,LLSD const &>,std::_List_iterator<std::_List_val<std::_List_simple_types<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot<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::slot<void ,boost::function<void > >,boost::signals2::mutex> >) [optional_last_value.hpp : 55 + 0x8]
 4  Firestorm-eepx64.exe!boost::signals2::detail::signal_impl<void ,boost::signals2::optional_last_value<void>,int,std::less<int>,boost::function<void >,boost::function<void >,boost::signals2::mutex>::operator()(LLUICtrl *,LLSD const &) [signal_template.hpp : 246 + 0x85]
 5  Firestorm-eepx64.exe!LLUICtrl::onCommit() [lluictrl.cpp : 401 + 0x25]
 6  Firestorm-eepx64.exe!LLMenuItemGL::handleMouseUp(int,int,unsigned int) [llmenugl.cpp : 476 + 0x14]
 7  Firestorm-eepx64.exe!LLView::childrenHandleMouseEvent<int ( LLView::*)(int,int,unsigned int),unsigned int>(int ( LLView::*const &)(int,int,unsigned int),int,int,unsigned int,bool) [llview.cpp : 788 + 0x18]
 8  Firestorm-eepx64.exe!LLView::handleMouseUp(int,int,unsigned int) [llview.cpp : 1096 + 0x37]
 9  Firestorm-eepx64.exe!LLUICtrl::handleMouseUp(int,int,unsigned int) [lluictrl.cpp : 345 + 0x10]
10  Firestorm-eepx64.exe!LLView::childrenHandleMouseEvent<int ( LLView::*)(int,int,unsigned int),unsigned int>(int ( LLView::*const &)(int,int,unsigned int),int,int,unsigned int,bool) [llview.cpp : 788 + 0x18]
11  Firestorm-eepx64.exe!LLView::handleMouseUp(int,int,unsigned int) [llview.cpp : 1096 + 0x37]
12  Firestorm-eepx64.exe!LLUICtrl::handleMouseUp(int,int,unsigned int) [lluictrl.cpp : 345 + 0x10]
13  Firestorm-eepx64.exe!LLView::childrenHandleMouseEvent<int ( LLView::*)(int,int,unsigned int),unsigned int>(int ( LLView::*const &)(int,int,unsigned int),int,int,unsigned int,bool) [llview.cpp : 788 + 0x18]
14  Firestorm-eepx64.exe!LLView::handleMouseUp(int,int,unsigned int) [llview.cpp : 1096 + 0x37]
15  Firestorm-eepx64.exe!LLUICtrl::handleMouseUp(int,int,unsigned int) [lluictrl.cpp : 345 + 0x10]
16  Firestorm-eepx64.exe!LLView::childrenHandleMouseEvent<int ( LLView::*)(int,int,unsigned int),unsigned int>(int ( LLView::*const &)(int,int,unsigned int),int,int,unsigned int,bool) [llview.cpp : 788 + 0x18]
17  Firestorm-eepx64.exe!LLView::handleMouseUp(int,int,unsigned int) [llview.cpp : 1096 + 0x37]
18  Firestorm-eepx64.exe!LLMouseHandler::handleAnyMouseClick(int,int,unsigned int,LLMouseHandler::EClickType,int) [llmousehandler.cpp : 49 + 0x9]
19  Firestorm-eepx64.exe!LLViewerWindow::handleAnyMouseClick(LLWindow *,LLCoord<LL_COORD_TYPE_GL>,unsigned int,LLMouseHandler::EClickType,int) [llviewerwindow.cpp : 1090 + 0x22]
20  Firestorm-eepx64.exe!LLViewerWindow::handleMouseUp(LLWindow *,LLCoord<LL_COORD_TYPE_GL>,unsigned int) [llviewerwindow.cpp : 1168 + 0x18]
21  Firestorm-eepx64.exe!LLWindowWin32::mainWindowProc(HWND__ *,unsigned int,unsigned __int64,__int64) [llwindowwin32.cpp : 2416 + 0x14]
22  user32.dll + 0x19bbd
23  Firestorm-eepx64.exe!LLCoros::Current::Current() [llcoros.cpp : 100 + 0xf]
24  0x970552
25  user32.dll + 0x13b10
26  Firestorm-eepx64.exe + 0x1710960
27  opengl32.dll + 0x3948e
28  Firestorm-eepx64.exe!boost::detail::find_tss_data(void const *) + 0x1a
29  Firestorm-eepx64.exe!boost::detail::get_tss_data(void const *) + 0x9
30  user32.dll + 0x19bbd
31  kernel32.dll + 0x2178a
32  user32.dll + 0x19b2f
33  user32.dll + 0x198c2
34  opengl32.dll + 0x39160
35  Firestorm-eepx64.exe!LLWatchdogTimeout::stop() [llwatchdog.cpp : 147 + 0x29]
36  Firestorm-eepx64.exe!LLWindowWin32::gatherInput() [llwindowwin32.cpp : 1883 + 0xb]
37  Firestorm-eepx64.exe!LLAppViewer::doFrame() [llappviewer.cpp : 1675 + 0x14]
38  Firestorm-eepx64.exe!LLAppViewer::frame() [llappviewer.cpp : 1593 + 0x5]
39  Firestorm-eepx64.exe!WinMain [llappviewerwin32.cpp : 489 + 0x9]
40  Firestorm-eepx64.exe!__tmainCRTStartup [crtexe.c : 618 + 0x15]
41  kernel32.dll + 0x1571d
42  ntdll.dll + 0x5385d
43  kernel32.dll + 0x9b980
44  kernel32.dll + 0x9b980

@sl-service-account
Copy link
Author

Nicky Dasmijn commented at 2019-05-01T18:49:31Z

This is caused by using a C cast on a polymorphic type and assuming the object will always be of the right type.

Fix is here: https://bitbucket.org/Ansariel/phoenix-firestorm-lgpl-eep-integration/commits/a9857b03774844d80d6c6f5190742c9f5befeb3b

 

Also please stop using C casts.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant