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

Editor crashes when re-importing GLTF scene while animation is playing. #82962

Closed
Skywolf285 opened this issue Oct 7, 2023 · 6 comments · Fixed by #83104
Closed

Editor crashes when re-importing GLTF scene while animation is playing. #82962

Skywolf285 opened this issue Oct 7, 2023 · 6 comments · Fixed by #83104

Comments

@Skywolf285
Copy link

Skywolf285 commented Oct 7, 2023

Godot version

Godot_v4.2-dev6_linux

System information

Godot_v4.2-dev6_linux

Issue description

When re-importing a GLTF scene while an AnimationPlayer is playing an animations on nodes inside the imported scene the editor crashes.

Backtrace:

Engine version: Godot Engine v4.2.dev6.official (57a6813bb8bc2417ddef1058d422a91f0c9f753c)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] /lib/x86_64-linux-gnu/libc.so.6(+0x42520) [0x7fbe6b442520] (??:0)
[2] /home/user/Programs/Godot/Godot_v4.2-dev6_linux.x86_64() [0x471814] (??:0)
[3] /home/user/Programs/Godot/Godot_v4.2-dev6_linux.x86_64() [0x262f908] (??:0)
[4] /home/user/Programs/Godot/Godot_v4.2-dev6_linux.x86_64() [0x263f0e4] (??:0)
[5] /home/user/Programs/Godot/Godot_v4.2-dev6_linux.x86_64() [0x2865dee] (??:0)
[6] /home/user/Programs/Godot/Godot_v4.2-dev6_linux.x86_64() [0x28838fc] (??:0)
[7] /home/user/Programs/Godot/Godot_v4.2-dev6_linux.x86_64() [0x3b896b0] (??:0)
[8] /home/user/Programs/Godot/Godot_v4.2-dev6_linux.x86_64() [0x20e6533] (??:0)
[9] /home/user/Programs/Godot/Godot_v4.2-dev6_linux.x86_64() [0x20feb3f] (??:0)
[10] /home/user/Programs/Godot/Godot_v4.2-dev6_linux.x86_64() [0x20ff6b1] (??:0)
[11] /home/user/Programs/Godot/Godot_v4.2-dev6_linux.x86_64() [0x515caa] (??:0)
[12] /home/user/Programs/Godot/Godot_v4.2-dev6_linux.x86_64() [0x45761b] (??:0)
[13] /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x7fbe6b429d90] (??:0)
[14] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x7fbe6b429e40] (??:0)
[15] /home/user/Programs/Godot/Godot_v4.2-dev6_linux.x86_64() [0x4696ae] (??:0)
-- END OF BACKTRACE --

Steps to reproduce

  1. Download the attached minimum reproduction project, extract and open in the Godot Editor.
  2. Open the "Monke.glb" file from the file picker and click re-import. The editor should not crash now.
  3. Click the AnimationPlayer node and play the animation present inside it.
  4. Repeat step 2. Editor should now crash. If not repeat step 3 and 2 (on some very rare occasions I had it work correctly).

Minimal reproduction project

Import Crash.zip

@fire
Copy link
Member

fire commented Oct 7, 2023

Did you at any point select a skeleton 3d node?

@Skywolf285
Copy link
Author

Did you at any point select a skeleton 3d node?

Not during the same session, no. The AnimationPlayer does animate on a Skeleton3D node though so if there are known issues with that it might be related.

@jsjtxietian
Copy link
Contributor

jsjtxietian commented Oct 9, 2023

Looks like some pointer acess violation:

image

Crash call stack:

image

Sometimes it didn't crash but the error log will spam:

image

Personally I think we should stop any animation playing in scene upon reimport.

image

@akien-mga
Copy link
Member

I confirm the issue in 4.2 beta 6. It spams errors about p_bone out of bounds as pointed out by @jsjtxietian.

For me on Linux it doesn't lead to a crash right away, but I suppose it might eventually if the MessageQueue runs out of space.

For comparison, in 4.1.3 it also shows errors, but only once, no spam:

ERROR: Cannot get class ''.
   at: instantiate (core/object/class_db.cpp:339)
ERROR: Condition "name.is_empty()" is true.
   at: set_name (scene/main/node.cpp:1159)
ERROR: Condition "name.is_empty()" is true.
   at: set_name (scene/main/node.cpp:1159)
ERROR: Cannot get class ''.
   at: instantiate (core/object/class_db.cpp:339)
ERROR: Condition "name.is_empty()" is true.
   at: set_name (scene/main/node.cpp:1159)
ERROR: Condition "name.is_empty()" is true.
   at: set_name (scene/main/node.cpp:1159)

@LordMcMutton
Copy link

This still occurs in 4.3

@fire
Copy link
Member

fire commented Sep 6, 2024

@LordMcMutton Can you file a new issue with your details?

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

7 participants