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

Godot Editor crashes when creating a pck file with a deleted .godot directory and adding fonts #98219

Open
dimanys111 opened this issue Oct 16, 2024 · 0 comments

Comments

@dimanys111
Copy link

dimanys111 commented Oct 16, 2024

Tested versions

  • Reproducible in: 4.3.stable

System information

Ubuntu 22.04.5 LTS - Godot Editor 4.3.stable

Issue description

If fonts are added to the project, and the pck file is created using Godot Editor, with the ".godot" directory removed before that, then sometimes the pck file creation occurs with an error and Godot Editor crashes:

reimport: step 0: DejaVuSerifCondensed.ttf
reimport: step 10: DejaVuSansMono-BoldOblique.ttf
reimport: step 14: DejaVuSansCondensed-BoldOblique.ttf
ERROR: Caller thread can't call this function in this node (/root). Use call_deferred() or call_thread_group() instead.
at: propagate_notification (scene/main/node.cpp:2422)

=================================================================
handle_crash: Program crashed with signal 11

Example of a test project new-game-project, to reproduce:
new-game-project.zip

Example of a script for playback:
editor_loop_bug.zip

The script input is the path to the Godot Editor executable file and the path to the new-game-project:

editor_loop_bug.sh -e <path godot.linuxbsd.editor.x86_64> -d <path new-game-project>

The script performs a loop deleting the ".godot" directory and creating a pck file:

for i in {0..100000}; do
	clear
	rm -rf $RESOURCE_DIR/.godot
	${GODOT_EDITOR_BIN} --headless --path ${RESOURCE_DIR} --export-pack ${EXPORT_TEMPLATE} ${PCK_FILE}
	if [[ $? -ne 0 ]]; then
		echo "step failed"
		exit 1
	fi
done

Steps to reproduce

  1. Unpack the archive with the test project:
    new-game-project.zip
    into a convenient directory

  2. Run the editor_loop_bug.sh script:
    editor_loop_bug.zip
    specifying the path to the Godot Editor executable file and the path to the new-game-project as input:

editor_loop_bug.sh -e <path godot.linuxbsd.editor.x86_64> -d <path new-game-project>
  1. Monitor the output

At the Nth iteration, Godot Editor will crash.

On my machine, sometimes the crash lasts for one minute, and sometimes 10 minutes or more

Minimal reproduction project (MRP)

Example of a test project new-game-project, to reproduce:
new-game-project.zip

Example of a script for playback:
editor_loop_bug.zip
The script input is the path to the Godot Editor executable file and the path to the new-game-project:

editor_loop_bug.sh -e <path godot.linuxbsd.editor.x86_64> -d <path new-game-project>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants