godot: Editor crashed after changing interface/theme color in Editor Settings
Godot version
v4.0.alpha.custom_build [a49079947]
System information
Windows 11, Geforce 1660, Vulkan Clustered
Issue description
The editor crashed after editing a color in a color picker.
Godot Engine v4.0.alpha.custom_build.1ec40a94d - https://godotengine.org
Vulkan API 1.2.0 - Using Vulkan Device #0: NVIDIA - NVIDIA GeForce GTX 1660
WARNING: FBX file import is enabled, but no FBX2glTF path is configured. FBX files will not be imported.
at: _editor_init (modules\gltf\register_types.cpp:92)
WARNING: res://effects/asteroid_explosion/asteroid_explosion.tscn:4 - ext_resource, invalid UUID: uid://c5t8x80cymd3s - using text path instead: res://effects/asteroid_explosion/assets/textures/asteroid_explosion_particles.png
at: ResourceLoaderText::load (scene\resources\resource_format_text.cpp:431)
WARNING: res://effects/asteroid_explosion/asteroid_explosion.tscn:5 - ext_resource, invalid UUID: uid://c2c6n30sdbe8b - using text path instead: res://effects/asteroid_explosion/assets/sfx/asteroid_explosion.ogg
at: ResourceLoaderText::load (scene\resources\resource_format_text.cpp:431)
ERROR: Invalid PROPERTY_HINT_RANGE with hint "0,1,0": Step cannot be 0.
at: (editor\editor_properties.cpp:3401)
================================================================
CrashHandlerException: Program crashed
Engine version: Godot Engine v4.0.alpha.custom_build (1ec40a94d5cdde85193ed38f5292a95540677d53)
Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues
[0] oidnUnmapBuffer
[1] oidnUnmapBuffer
[2] oidnUnmapBuffer
[3] oidnUnmapBuffer
[4] oidnUnmapBuffer
[5] oidnUnmapBuffer
[6] oidnUnmapBuffer
[7] oidnUnmapBuffer
[8] oidnUnmapBuffer
[9] <couldn't map PC to fn name>
[10] oidnUnmapBuffer
[11] oidnUnmapBuffer
[12] <couldn't map PC to fn name>
[13] <couldn't map PC to fn name>
[14] <couldn't map PC to fn name>
[15] <couldn't map PC to fn name>
[16] <couldn't map PC to fn name>
[17] oidnUnmapBuffer
[18] BaseThreadInitThunk
-- END OF BACKTRACE --
================================================================
Steps to reproduce
I can’t reproduce the crash a second time. But I’ll try to find a sequence of actions leading to a crash. If I succeed, I will update the issue.
UPD:
It doesn’t always work, it took me 15 - 20 attempts to reproduce. After each attempt, you must either Quit to Project List
and reopen the project or completely restart the editor.
Minimal reproduction project
No response
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Comments: 15 (10 by maintainers)
In fact, modifying other properties in
EditorSettings
may also crash, but modifying the theme properties is the easiest way to reproduce. It’s not that the tooltip visibility changes, it’s that the tooltip gets deleted twice.Crash log
The tooltip is deleted in the following two places:
EditorInspector::update_tree()
(I think it might be more appropriate to change torebuild_tree
);Viewport::_gui_cancel_tooltip()
.Modifying the property value in
EditorSettings
will result in 1, that is, the property tree is unstable.One of the conditions for calling
update_tree
is that the edited object emits theproperty_list_changed
signal. This is also one of the reasons for #60842.I’m not sure what’s the reason for
EditorSettings
, but modifying any of the properties in it seems to callupdate_tree
twice. The property tree in theEditorSettings
dialog is the least stable of allEditorInspector
s, it is always rebuilding the tree.I can reproduce it on Linux Mint 21/20.3;
Still happening in Beta 2, this is the macOS crash report
Tooltip visibility can change while the editor is refreshing its theme. If a tooltip is visible when the editor starts refreshing its theme but the tooltip becomes hidden by the time that the editor finishes refreshing it will crash with the above stack trace. Careful placement of the mouse can prevent the editor from crashing, or deliberately cause a crash if desired.
Everyone in this thread and duplicate issues, including myself, seem to be on Windows so it might be a Windows-only crash due to how system events are dispatched.