godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
88.63k stars 20.1k forks source link

Godot 3.2.1 Startup Crash and Missing/Broken Scenes #39667

Open FayeAlephNil opened 4 years ago

FayeAlephNil commented 4 years ago

Godot Engine v3.2.1.stable

GLES3, Intel Mesa Integrated GPU

There was a crash immediately upon opening my project. Before it started crashing it reported missing/broken scenes that were correctly named and in the correct filepath that it was requesting. The backtrace is included here

[I] [faye@acerpred ~] godot --verbose                                            20:46:06
Godot Engine v3.2.1.stable.custom_build - https://godotengine.org
XInput: Refreshing devices.
XInput: No touch devices found.
Detecting GPUs, set DRI_PRIME in the environment to override GPU detection logic.
Only one GPU found, using default.
XcursorGetTheme could not get cursor theme
Using GLES3 video driver
OpenGL ES 3.0 Renderer: Mesa Intel(R) HD Graphics 630 (KBL GT2)
Audio buffer frames: 341 calculated latency: 7ms

CORE API HASH: 10822102301860774635
EDITOR API HASH: 14982495073158502407
Loading resource: res://.config/godot/editor_settings-3.tres
EditorSettings: Load OK!
EditorSettings: Save OK!
Loaded builtin certs
Editing project: /home/faye/Games/Dev/Godot/RPG (::home::faye::Games::Dev::Godot::RPG)
Godot Engine v3.2.1.stable.custom_build - https://godotengine.org
EditorSettings: Save OK!
OpenGL ES 3.0 Renderer: Mesa Intel(R) HD Graphics 630 (KBL GT2)
handle_crash: Program crashed with signal 11
Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues
[1] /usr/lib/libc.so.6(+0x3c3e0) [0x7f08825d43e0] (??:0)
[2] /usr/bin/godot() [0x1b770a4] (??:?)
[3] /usr/bin/godot() [0x234cca9] (??:?)
[4] /usr/bin/godot() [0x234eebd] (??:?)
[5] /usr/bin/godot() [0x234d4b9] (??:?)
[6] /usr/bin/godot() [0x234eebd] (??:?)
[7] /usr/bin/godot() [0x12afd83] (??:?)
[8] /usr/bin/godot() [0x12b1768] (??:?)
[9] /usr/bin/godot() [0x9506e5] (??:0)
[10] /usr/bin/godot() [0x2a866c7] (??:?)
[11] /usr/bin/godot() [0x2a930d5] (??:?)
[12] /usr/bin/godot() [0x2a94180] (??:?)
[13] /usr/bin/godot() [0x1246c7d] (??:?)
[14] /usr/bin/godot() [0x2a86034] (??:?)
[15] /usr/bin/godot() [0x1bae9ba] (??:?)
[16] /usr/bin/godot() [0x1bb8e10] (??:?)
[17] /usr/bin/godot() [0x774a7a] (??:0)
[18] /usr/bin/godot() [0x75cfc1] (??:0)
[19] /usr/bin/godot() [0x74b07d] (??:0)
[20] /usr/lib/libc.so.6(__libc_start_main+0xf2) [0x7f08825bf002] (??:0)
[21] /usr/bin/godot() [0x74d73e] (??:0)
-- END OF BACKTRACE --

I'm unsure of particular steps to reproduce, but the godot project that I had this crash on is included here. The issue persisted even after deleting .import to try and reimport everything.

RPG.zip

FayeAlephNil commented 4 years ago

Godot Beta v3.2.2.rc1.official crashes in the same manner with nearly the exact same backtrace. Also Godot 4 crashes at startup (without opening the project), which I think is a separate issue

qarmin commented 4 years ago

Backtrace

[1] /lib/x86_64-linux-gnu/libc.so.6(+0x46210) [0x7f0d5f74b210] (??:0)
[2] Node::get_node_or_null(NodePath const&) const (/mnt/Miecz/godot/scene/main/node.cpp:1320)
[3] SceneState::instance(SceneState::GenEditState) const (/mnt/Miecz/godot/scene/resources/packed_scene.cpp:96 (discriminator 4))
[4] PackedScene::instance(PackedScene::GenEditState) const (/mnt/Miecz/godot/scene/resources/packed_scene.cpp:1698)
[5] SceneState::instance(SceneState::GenEditState) const (/mnt/Miecz/godot/scene/resources/packed_scene.cpp:141)
[6] PackedScene::instance(PackedScene::GenEditState) const (/mnt/Miecz/godot/scene/resources/packed_scene.cpp:1698)
[7] EditorNode::load_scene(String const&, bool, bool, bool, bool) (/mnt/Miecz/godot/editor/editor_node.cpp:3426)
[8] EditorNode::_sources_changed(bool) (/mnt/Miecz/godot/editor/editor_node.cpp:689)
[9] MethodBind1<bool>::call(Object*, Variant const**, int, Variant::CallError&) (/mnt/Miecz/godot/./core/method_bind.gen.inc:775 (discriminator 12))
[10] Object::call(StringName const&, Variant const**, int, Variant::CallError&) (/mnt/Miecz/godot/core/object.cpp:922 (discriminator 1))
[11] Object::emit_signal(StringName const&, Variant const**, int) (/mnt/Miecz/godot/core/object.cpp:1249 (discriminator 1))
[12] Object::emit_signal(StringName const&, Variant const&, Variant const&, Variant const&, Variant const&, Variant const&) (/mnt/Miecz/godot/core/object.cpp:1307)
[13] EditorFileSystem::_notification(int) (/mnt/Miecz/godot/editor/editor_file_system.cpp:1175 (discriminator 4))
[14] EditorFileSystem::_notificationv(int, bool) (/mnt/Miecz/godot/editor/editor_file_system.h:108 (discriminator 14))
[15] Object::notification(int, bool) (/mnt/Miecz/godot/core/object.cpp:934)
[16] SceneTree::_notify_group_pause(StringName const&, int) (/mnt/Miecz/godot/scene/main/scene_tree.cpp:985)
[17] SceneTree::idle(float) (/mnt/Miecz/godot/scene/main/scene_tree.cpp:525 (discriminator 3))
[18] Main::iteration() (/mnt/Miecz/godot/main/main.cpp:2090)
[19] OS_X11::run() (/mnt/Miecz/godot/platform/x11/os_x11.cpp:3265)
[20] godot(main+0x125) [0x141ab2b] (/mnt/Miecz/godot/platform/x11/godot_x11.cpp:57)
[21] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x7f0d5f72c0b3] (??:0)
[22] godot(_start+0x2e) [0x141a94e] (??:?)
ghost commented 4 years ago

@FayeAlephNil

Your Heart.tscn and HeartContainer.tscn somehow got corrupted. It looks like maybe you were trying to make these inherited scenes, but something went wrong in the editor. If you could reproduce that, then that would be the bug here.

Another thing to note is in these scenes the scripts are built-in, and you do have external scripts, so you might want to attach those.

The corruption here is that the nodes in the TSCN file didn't have types. I added them as you can see in these highlights.

sublime_text_KCloen1Y3Y

To get your project running again, you can overwrite these two files over top of what you have. Then once the editor is running again you might want to try to fix them up from there.

Heart Items.zip

ghost commented 4 years ago

For devs:

  1. The bug might be something to do with scene inheritance corrupting a scene file.
  2. It would be worth adding checks on the parsing of node types to give errors, rather than crashing.
FayeAlephNil commented 4 years ago

@avencherus Thanks for the help with that! The project is back up and running, but parse errors would definitely be helpful for this kind of thing

ghost commented 4 years ago

@FayeAlephNil Not a problem. 👍 Do you remember anything that might of happened with those scenes that might reproduce the problem?

FayeAlephNil commented 4 years ago

@FayeAlephNil Not a problem. +1 Do you remember anything that might of happened with those scenes that might reproduce the problem?

Hm, the Heart.tscn and HeartContainer.tscn were being used as resources in Packed Scenes for a loot table system. I then restructured some folder stuff all within the editor. It began to report errors about broken scenes (which I didn't get the debug traces for, sorry), before refusing to launch altogether

qarmin commented 3 years ago

Also same crash is shown when trying to run project from Godot 4.0 in Godot 3.2.4 beta 1 - RegressionTestProject.zip