RobotecAI / robotec-o3de-tools

Toolset for demo recordings in O3DE
5 stars 1 forks source link

[Crash] LevelModificationTools/PrefabVariant - crash when trying to delete variant #17

Closed pawelbudziszewski closed 4 months ago

pawelbudziszewski commented 4 months ago

Crash occurs if I click any of the red-marked delete icons. The blue one works as expected.

Screenshot from 2024-05-21 12-38-16

* thread #1, name = 'Editor', stop reason = signal SIGSEGV: invalid address (fault address: 0x0)
  * frame #0: 0x00007ffed73e364a libLevelModificationTools.Editor.so`AZ::Internal::AZStdAssociativeContainer<AZStd::unordered_map<int, AZ::Data::Asset<AzFramework::Spawnable>, AZStd::hash<int>, AZStd::equal_to<int>, AZStd::allocator> >::RemoveElement(void*, void const*, AZ::SerializeContext*) + 42
    frame #1: 0x00007ffd6a662506 libComponentEntityEditorPlugin.so`AZ::DocumentPropertyEditor::ReflectionAdapterReflectionImpl::ContainerElement::OnRemoveElement(AZ::DocumentPropertyEditor::ReflectionAdapterReflectionImpl*, AZ::Dom::Path const&) + 102
    frame #2: 0x00007ffd6a623cfb libComponentEntityEditorPlugin.so`void AZStd::Internal::function_util::get_invoker<void (), AZStd::Internal::function_util::function_obj_tag, AZStd::allocator>::call<AZ::DocumentPropertyEditor::ReflectionAdapter::HandleMessage(AZ::DocumentPropertyEditor::AdapterMessage const&)::$_18>(AZStd::Internal::function_util::function_buffer&) + 571
    frame #3: 0x00007ffd6a6612b2 libComponentEntityEditorPlugin.so`AZ::DocumentPropertyEditor::CallbackAttributeDefinition<void ()>::MatchMessage(AZ::DocumentPropertyEditor::AdapterMessage const&, AZ::Dom::Value&, AZStd::function<void ()> const&) const + 194
    frame #4: 0x00007ffd6a62140a libComponentEntityEditorPlugin.so`AZ::DocumentPropertyEditor::ReflectionAdapter::HandleMessage(AZ::DocumentPropertyEditor::AdapterMessage const&) + 1402
    frame #5: 0x00007ffd68b576c4 libComponentEntityEditorPlugin.so`AzToolsFramework::Prefab::PrefabComponentAdapter::HandleMessage(AZ::DocumentPropertyEditor::AdapterMessage const&) + 388
    frame #6: 0x00007ffff4b2182e libEditorLib.so`AZ::DocumentPropertyEditor::BoundAdapterMessage::operator()(AZ::Dom::Value const&) + 158
    frame #7: 0x00007ffff29e5294 libEditorLib.so`AZ::Outcome<void, AZStd::basic_fixed_string<char, 128ul, AZStd::char_traits<char> > > AZ::DocumentPropertyEditor::CallbackAttributeDefinition<void ()>::InvokeOnDomValue<>(AZ::Dom::Value const&) const + 388
    frame #8: 0x00007ffff29b1a6a libEditorLib.so`AZ::Outcome<void, AZStd::basic_fixed_string<char, 128ul, AZStd::char_traits<char> > > AZ::DocumentPropertyEditor::CallbackAttributeDefinition<void ()>::InvokeOnDomNode<>(AZ::Dom::Value const&) const + 122
    frame #9: 0x00007ffff29a2478 libEditorLib.so`AzToolsFramework::ContainerActionButtonHandler::OnClicked() + 248
    frame #10: 0x00007ffff29e50c3 libEditorLib.so`QtPrivate::QSlotObject<void (AzToolsFramework::GenericButtonHandler::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) + 83
    frame #11: 0x00007ffff7b089ce libQt5Core.so.5`void doActivate<false>(QObject*, int, void**) [inlined] QtPrivate::QSlotObjectBase::call(a=<unavailable>, r=<unavailable>, this=<unavailable>) at qobjectdefs_impl.h:398:57
    frame #12: 0x00007ffff7b089bc libQt5Core.so.5`void doActivate<false>(sender=0x000055556dc94a20, signal_index=9, argv=0x00007fffffffb6d0) at qobject.cpp:3886:21
    frame #13: 0x00007ffff7b01d97 libQt5Core.so.5`QMetaObject::activate(sender=<unavailable>, m=<unavailable>, local_signal_index=<unavailable>, argv=<unavailable>) at qobject.cpp:3946:26 [artificial]
    frame #14: 0x00007fffe9e6d7e6 libQt5Widgets.so.5`QAbstractButton::clicked(this=<unavailable>, _t1=<unavailable>) at moc_qabstractbutton.cpp:308:26
    frame #15: 0x00007fffe9e6da0e libQt5Widgets.so.5`QAbstractButtonPrivate::emitClicked(this=<unavailable>) at qabstractbutton.cpp:415:20
    frame #16: 0x00007fffe9e6eee3 libQt5Widgets.so.5`QAbstractButtonPrivate::click(this=0x000055556dc97830) at qabstractbutton.cpp:408:20
    frame #17: 0x00007fffe9e6f0a5 libQt5Widgets.so.5`QAbstractButton::mouseReleaseEvent(this=0x000055556dc94a20, e=0x00007fffffffbc80) at qabstractbutton.cpp:1044:17
    frame #18: 0x00007fffe9f6625e libQt5Widgets.so.5`QToolButton::mouseReleaseEvent(this=<unavailable>, e=<unavailable>) at qtoolbutton.cpp:622:39
    frame #19: 0x00007fffe9db7fd6 libQt5Widgets.so.5`QWidget::event(this=0x000055556dc94a20, event=0x00007fffffffbc80) at qwidget.cpp:9053:20
    frame #20: 0x00007fffe9e702d3 libQt5Widgets.so.5`QAbstractButton::event(this=<unavailable>, e=<unavailable>) at qabstractbutton.cpp:1001:26 [artificial]
    frame #21: 0x00007fffe9f66308 libQt5Widgets.so.5`QToolButton::event(this=0x000055556dc94a20, event=0x00007fffffffbc80) at qtoolbutton.cpp:1012:34
    frame #22: 0x00007fffe9d74e03 libQt5Widgets.so.5`QApplicationPrivate::notify_helper(this=<unavailable>, receiver=0x000055556dc94a20, e=0x00007fffffffbc80) at qapplication.cpp:3630:31
    frame #23: 0x00007fffe9d7df17 libQt5Widgets.so.5`QApplication::notify(this=<unavailable>, receiver=0x000055556b2d5430, e=0x00007fffffffbc80) at qapplication.cpp:3074:43
michalpelka commented 4 months ago

This crash is caused by DPE in o3de, not code in this repo. I propose a way to work around the issue. I will prepare a minimal reproduction for o3de and raise an issue there.