Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash when dragging the mouse in the inspector to modify a value #80335

Closed
Rindbee opened this issue Aug 6, 2023 · 4 comments · Fixed by #80187
Closed

Crash when dragging the mouse in the inspector to modify a value #80335

Rindbee opened this issue Aug 6, 2023 · 4 comments · Fixed by #80187

Comments

@Rindbee
Copy link
Contributor

Rindbee commented Aug 6, 2023

Godot version

v4.2.dev.custom_build [16a9356]

System information

Godot v4.2.dev (16a9356) - Linux Mint 21.2 (Victoria) - X11 - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 1050 Ti (nvidia; 525.125.06) - Intel(R) Core(TM) i5-7300HQ CPU @ 2.50GHz (4 Threads)

Issue description

Peek.2023-08-06.21-36.mp4

When dragging the mouse in the inspector to modify a value, the editor would crash if the left mouse button was released.

ERROR: FATAL: DEV_ASSERT failed  "!root->gui.windowmanager_window_over" is false.
   at: _event_callback (scene/main/window.cpp:675)
Crash log
================================================================
handle_crash: Program crashed with signal 4
Engine version: Godot Engine v4.2.dev.custom_build (16a93563bfd3b02ca0a8f6df2026f3a3217f5571)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] /lib/x86_64-linux-gnu/libc.so.6(+0x42520) [0x7f765fc42520] (??:0)
[2] Window::_event_callback(DisplayServer::WindowEvent) (/opt/godot/godot-editor-l10n/godot/scene/main/window.cpp:675)
[3] void call_with_variant_args_helper<Window, DisplayServer::WindowEvent, 0ul>(Window*, void (Window::*)(DisplayServer::WindowEvent), Variant const**, Callable::CallError&, IndexSequence<0ul>) (/opt/godot/godot-editor-l10n/godot/./core/variant/binder_common.h:308)
[4] void call_with_variant_args<Window, DisplayServer::WindowEvent>(Window*, void (Window::*)(DisplayServer::WindowEvent), Variant const**, int, Callable::CallError&) (/opt/godot/godot-editor-l10n/godot/./core/variant/binder_common.h:418)
[5] CallableCustomMethodPointer<Window, DisplayServer::WindowEvent>::call(Variant const**, int, Variant&, Callable::CallError&) const (/opt/godot/godot-editor-l10n/godot/./core/object/callable_method_pointer.h:105)
[6] Callable::callp(Variant const**, int, Variant&, Callable::CallError&) const (/opt/godot/godot-editor-l10n/godot/core/variant/callable.cpp:51)
[7] DisplayServerX11::_send_window_event(DisplayServerX11::WindowData const&, DisplayServer::WindowEvent) (/opt/godot/godot-editor-l10n/godot/platform/linuxbsd/x11/display_server_x11.cpp:3771)
[8] DisplayServerX11::mouse_set_mode(DisplayServer::MouseMode) (/opt/godot/godot-editor-l10n/godot/platform/linuxbsd/x11/display_server_x11.cpp:383)
[9] DisplayServer::_input_set_mouse_mode(Input::MouseMode) (/opt/godot/godot-editor-l10n/godot/servers/display_server.cpp:944)
[10] Input::set_mouse_mode(Input::MouseMode) (/opt/godot/godot-editor-l10n/godot/core/input/input.cpp:90)
[11] EditorSpinSlider::gui_input(Ref<InputEvent> const&) (/opt/godot/godot-editor-l10n/godot/editor/gui/editor_spin_slider.cpp:81)
[12] Control::_call_gui_input(Ref<InputEvent> const&) (/opt/godot/godot-editor-l10n/godot/scene/gui/control.cpp:1806)
[13] Viewport::_gui_call_input(Control*, Ref<InputEvent> const&) (/opt/godot/godot-editor-l10n/godot/scene/main/viewport.cpp:1562)
[14] Viewport::_gui_input_event(Ref<InputEvent>) (/opt/godot/godot-editor-l10n/godot/scene/main/viewport.cpp:1831)
[15] Viewport::push_input(Ref<InputEvent> const&, bool) (/opt/godot/godot-editor-l10n/godot/scene/main/viewport.cpp:3128)
[16] Window::_window_input(Ref<InputEvent> const&) (/opt/godot/godot-editor-l10n/godot/scene/main/window.cpp:1482)
[17] void call_with_variant_args_helper<Window, Ref<InputEvent> const&, 0ul>(Window*, void (Window::*)(Ref<InputEvent> const&), Variant const**, Callable::CallError&, IndexSequence<0ul>) (/opt/godot/godot-editor-l10n/godot/./core/variant/binder_common.h:303)
[18] void call_with_variant_args<Window, Ref<InputEvent> const&>(Window*, void (Window::*)(Ref<InputEvent> const&), Variant const**, int, Callable::CallError&) (/opt/godot/godot-editor-l10n/godot/./core/variant/binder_common.h:418)
[19] CallableCustomMethodPointer<Window, Ref<InputEvent> const&>::call(Variant const**, int, Variant&, Callable::CallError&) const (/opt/godot/godot-editor-l10n/godot/./core/object/callable_method_pointer.h:105)
[20] Callable::callp(Variant const**, int, Variant&, Callable::CallError&) const (/opt/godot/godot-editor-l10n/godot/core/variant/callable.cpp:51)
[21] DisplayServerX11::_dispatch_input_event(Ref<InputEvent> const&) (/opt/godot/godot-editor-l10n/godot/platform/linuxbsd/x11/display_server_x11.cpp:3751)
[22] DisplayServerX11::_dispatch_input_events(Ref<InputEvent> const&) (/opt/godot/godot-editor-l10n/godot/platform/linuxbsd/x11/display_server_x11.cpp:3723)
[23] Input::_parse_input_event_impl(Ref<InputEvent> const&, bool) (/opt/godot/godot-editor-l10n/godot/core/input/input.cpp:721)
[24] Input::flush_buffered_events() (/opt/godot/godot-editor-l10n/godot/core/input/input.cpp:979)
[25] DisplayServerX11::process_events() (/opt/godot/godot-editor-l10n/godot/platform/linuxbsd/x11/display_server_x11.cpp:4819)
[26] OS_LinuxBSD::run() (/opt/godot/godot-editor-l10n/godot/platform/linuxbsd/os_linuxbsd.cpp:908)
[27] /opt/godot/godot/bin/godot.linuxbsd.editor.dev.x86_64.llvm(main+0x1fe) [0x560f366a986e] (/opt/godot/godot-editor-l10n/godot/platform/linuxbsd/godot_linuxbsd.cpp:74)
[28] /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x7f765fc29d90] (??:0)
[29] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x7f765fc29e40] (??:0)
[30] /opt/godot/godot/bin/godot.linuxbsd.editor.dev.x86_64.llvm(_start+0x25) [0x560f366a95a5] (??:?)
-- END OF BACKTRACE --
================================================================

This seems to be a regression from #67791.

Steps to reproduce

  1. Click on the number field with the left mouse button;
  2. Drag the mouse to change the value;
  3. The editor will crash when the left mouse button is released.

Minimal reproduction project

N/A

@clayjohn
Copy link
Member

clayjohn commented Aug 7, 2023

I am getting the same crash when zooming in and out of the 3D viewport on current master

ERROR: FATAL: DEV_ASSERT failed  "!root->gui.windowmanager_window_over" is false.
   at: _event_callback (scene/main/window.cpp:675)

================================================================
handle_crash: Program crashed with signal 4
Engine version: Godot Engine v4.2.dev.custom_build (d4a54a3ced6f99282f61bf0351c86ca3f44c9df9)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] /lib/x86_64-linux-gnu/libc.so.6(+0x42520) [0x7f3ffea42520] (??:0)
[2] Window::_event_callback(DisplayServer::WindowEvent) (/home/clayjohn/dev/godot/scene/main/window.cpp:675)
[3] void call_with_variant_args_helper<Window, DisplayServer::WindowEvent, 0ul>(Window*, void (Window::*)(DisplayServer::WindowEvent), Variant const**, Callable::CallError&, IndexSequence<0ul>) (/home/clayjohn/dev/godot/./core/variant/binder_common.h:308)
[4] void call_with_variant_args<Window, DisplayServer::WindowEvent>(Window*, void (Window::*)(DisplayServer::WindowEvent), Variant const**, int, Callable::CallError&) (/home/clayjohn/dev/godot/./core/variant/binder_common.h:418)
[5] CallableCustomMethodPointer<Window, DisplayServer::WindowEvent>::call(Variant const**, int, Variant&, Callable::CallError&) const (/home/clayjohn/dev/godot/./core/object/callable_method_pointer.h:105)
[6] Callable::callp(Variant const**, int, Variant&, Callable::CallError&) const (/home/clayjohn/dev/godot/core/variant/callable.cpp:51)
[7] DisplayServerX11::_send_window_event(DisplayServerX11::WindowData const&, DisplayServer::WindowEvent) (/home/clayjohn/dev/godot/platform/linuxbsd/x11/display_server_x11.cpp:3772)
[8] DisplayServerX11::mouse_set_mode(DisplayServer::MouseMode) (/home/clayjohn/dev/godot/platform/linuxbsd/x11/display_server_x11.cpp:383)
[9] DisplayServer::_input_set_mouse_mode(Input::MouseMode) (/home/clayjohn/dev/godot/servers/display_server.cpp:944)
[10] Input::set_mouse_mode(Input::MouseMode) (/home/clayjohn/dev/godot/core/input/input.cpp:90)
[11] Node3DEditorViewport::set_freelook_active(bool) (/home/clayjohn/dev/godot/editor/plugins/node_3d_editor_plugin.cpp:2490)
[12] Node3DEditorViewport::_sinput(Ref<InputEvent> const&) (/home/clayjohn/dev/godot/editor/plugins/node_3d_editor_plugin.cpp:1688)
[13] void call_with_variant_args_helper<Node3DEditorViewport, Ref<InputEvent> const&, 0ul>(Node3DEditorViewport*, void (Node3DEditorViewport::*)(Ref<InputEvent> const&), Variant const**, Callable::CallError&, IndexSequence<0ul>) (/home/clayjohn/dev/godot/./core/variant/binder_common.h:303)
[14] void call_with_variant_args<Node3DEditorViewport, Ref<InputEvent> const&>(Node3DEditorViewport*, void (Node3DEditorViewport::*)(Ref<InputEvent> const&), Variant const**, int, Callable::CallError&) (/home/clayjohn/dev/godot/./core/variant/binder_common.h:418)
[15] CallableCustomMethodPointer<Node3DEditorViewport, Ref<InputEvent> const&>::call(Variant const**, int, Variant&, Callable::CallError&) const (/home/clayjohn/dev/godot/./core/object/callable_method_pointer.h:105)
[16] Callable::callp(Variant const**, int, Variant&, Callable::CallError&) const (/home/clayjohn/dev/godot/core/variant/callable.cpp:51)
[17] Object::emit_signalp(StringName const&, Variant const**, int) (/home/clayjohn/dev/godot/core/object/object.cpp:1072)
[18] Node::emit_signalp(StringName const&, Variant const**, int) (/home/clayjohn/dev/godot/scene/main/node.cpp:3576)
[19] Error Object::emit_signal<Ref<InputEvent> >(StringName const&, Ref<InputEvent>) (/home/clayjohn/dev/godot/./core/object/object.h:891)
[20] Control::_call_gui_input(Ref<InputEvent> const&) (/home/clayjohn/dev/godot/scene/gui/control.cpp:1793)
[21] Viewport::_gui_call_input(Control*, Ref<InputEvent> const&) (/home/clayjohn/dev/godot/scene/main/viewport.cpp:1562)
[22] Viewport::_gui_input_event(Ref<InputEvent>) (/home/clayjohn/dev/godot/scene/main/viewport.cpp:1831)
[23] Viewport::push_input(Ref<InputEvent> const&, bool) (/home/clayjohn/dev/godot/scene/main/viewport.cpp:3128)
[24] Window::_window_input(Ref<InputEvent> const&) (/home/clayjohn/dev/godot/scene/main/window.cpp:1482)
[25] void call_with_variant_args_helper<Window, Ref<InputEvent> const&, 0ul>(Window*, void (Window::*)(Ref<InputEvent> const&), Variant const**, Callable::CallError&, IndexSequence<0ul>) (/home/clayjohn/dev/godot/./core/variant/binder_common.h:303)
[26] void call_with_variant_args<Window, Ref<InputEvent> const&>(Window*, void (Window::*)(Ref<InputEvent> const&), Variant const**, int, Callable::CallError&) (/home/clayjohn/dev/godot/./core/variant/binder_common.h:418)
[27] CallableCustomMethodPointer<Window, Ref<InputEvent> const&>::call(Variant const**, int, Variant&, Callable::CallError&) const (/home/clayjohn/dev/godot/./core/object/callable_method_pointer.h:105)
[28] Callable::callp(Variant const**, int, Variant&, Callable::CallError&) const (/home/clayjohn/dev/godot/core/variant/callable.cpp:51)
[29] DisplayServerX11::_dispatch_input_event(Ref<InputEvent> const&) (/home/clayjohn/dev/godot/platform/linuxbsd/x11/display_server_x11.cpp:3752)
[30] DisplayServerX11::_dispatch_input_events(Ref<InputEvent> const&) (/home/clayjohn/dev/godot/platform/linuxbsd/x11/display_server_x11.cpp:3724)
[31] Input::_parse_input_event_impl(Ref<InputEvent> const&, bool) (/home/clayjohn/dev/godot/core/input/input.cpp:721)
[32] Input::flush_buffered_events() (/home/clayjohn/dev/godot/core/input/input.cpp:979)
[33] DisplayServerX11::process_events() (/home/clayjohn/dev/godot/platform/linuxbsd/x11/display_server_x11.cpp:4820)
[34] OS_LinuxBSD::run() (/home/clayjohn/dev/godot/platform/linuxbsd/os_linuxbsd.cpp:908)
[35] /home/clayjohn/dev/godot/bin/godot.linuxbsd.editor.dev.x86_64.llvm(main+0x1fe) [0x561a5e1978ae] (/home/clayjohn/dev/godot/platform/linuxbsd/godot_linuxbsd.cpp:74)
[36] /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x7f3ffea29d90] (??:0)
[37] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x7f3ffea29e40] (??:0)
[38] /home/clayjohn/dev/godot/bin/godot.linuxbsd.editor.dev.x86_64.llvm(_start+0x25) [0x561a5e1975e5] (??:?)
-- END OF BACKTRACE --
================================================================

@Rindbee
Copy link
Contributor Author

Rindbee commented Aug 8, 2023

It seems that a build built with dev_build=yes is necessary to reproduce this issue.

@capnm
Copy link
Contributor

capnm commented Aug 8, 2023

I'm getting a similar (shorter) bt after dragging some value on current tip:

================================================================
handle_crash: Program crashed with signal 4
Engine version: Godot Engine v4.2.m230808.custom_build (b4760a8119ad5ddbd25edcc5f42d6cc9a11f6699)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] /lib/x86_64-linux-gnu/libc.so.6(+0x43090) [0x7fe4c8785090] (??:0)
[2] Window::_event_callback(DisplayServer::WindowEvent) (./scene/main/window.cpp:?)
[3] DisplayServerX11::_send_window_event(DisplayServerX11::WindowData const&, DisplayServer::WindowEvent) (./core/variant/variant.h:301)
[4] DisplayServerX11::mouse_set_mode(DisplayServer::MouseMode) (./core/templates/hash_map.h:474)
[5] EditorSpinSlider::gui_input(Ref<InputEvent> const&) (./editor/gui/editor_spin_slider.cpp:82)
[6] Control::_call_gui_input(Ref<InputEvent> const&) (./scene/gui/control.cpp:1806)
[7] Viewport::_gui_call_input(Control*, Ref<InputEvent> const&) (./scene/main/node.h:416)
[8] Viewport::_gui_input_event(Ref<InputEvent>) (??:?)
[9] Viewport::push_input(Ref<InputEvent> const&, bool) (./core/object/ref_counted.h:209)
[10] Window::_window_input(Ref<InputEvent> const&) (./scene/main/window.cpp:1482)
[11] void call_with_variant_args_helper<Window, Ref<InputEvent> const&, 0ul>(Window*, void (Window::*)(Ref<InputEvent> const&), Variant const**, Callable::CallError&, IndexSequence<0ul>) (./core/object/ref_counted.h:209)
[12] DisplayServerX11::_dispatch_input_event(Ref<InputEvent> const&) (??:?)
[13] Input::_parse_input_event_impl(Ref<InputEvent> const&, bool) (??:?)
[14] Input::flush_buffered_events() (./core/object/ref_counted.h:209)
[15] DisplayServerX11::process_events() (./core/templates/local_vector.h:319)
[16] OS_LinuxBSD::run() (platform/linuxbsd/os_linuxbsd.cpp:910)
[17] /data4/intranet/develop/godot/godot-build/strato-server/godot.linuxbsd.editor.dev.x86_64.llvm(main+0xc5) [0x5563f5ee8e35] (platform/linuxbsd/godot_linuxbsd.cpp:76)
[18] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x7fe4c8766083] (??:0)
[19] /data4/intranet/develop/godot/godot-build/strato-server/godot.linuxbsd.editor.dev.x86_64.llvm(_start+0x2a) [0x5563f5ee8caa] (??:?)
-- END OF BACKTRACE --
================================================================

@clayjohn
Copy link
Member

clayjohn commented Aug 8, 2023

It seems that a build built with dev_build=yes is necessary to reproduce this issue.

For future reference, it's because DEV_ASSERTs are only compiled in dev builds.

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

Successfully merging a pull request may close this issue.

4 participants