godotengine / godotengine/godot
After clicking "upgrade all resources" editor crashes on restart.
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 117k
- Forks
- 26.8k
- PR merge metrics
- PR metrics pending
Description
Tested versions
Godot 4.7
System information
Windows 10
Issue description
Switched to 4.7 after some time ago.
Seen some UID warnings in the log.
Clicked on Upgrade All Resources.
After restart it keeps crashing.
godot.windows.editor.dev.x86_64.exe!StringName::operator==(const StringName & p_name) Line 112 (d:\Godot\core\string\string_name.h:112)
godot.windows.editor.dev.x86_64.exe!HashMapComparatorDefault<StringName,void>::compare(const StringName & p_lhs, const StringName & p_rhs) Line 304 (d:\Godot\core\templates\hashfuncs.h:304)
godot.windows.editor.dev.x86_64.exe!HashMap<StringName,Variant,HashMapHasherDefault,HashMapComparatorDefault<StringName,void>,DefaultTypedAllocator<HashMapElement<StringName,Variant>>>::_lookup_idx_unchecked(const StringName & p_key, unsigned int p_hash, unsigned int & r_idx) Line 130 (d:\Godot\core\templates\hash_map.h:130)
godot.windows.editor.dev.x86_64.exe!HashMap<StringName,Variant,HashMapHasherDefault,HashMapComparatorDefault<StringName,void>,DefaultTypedAllocator<HashMapElement<StringName,Variant>>>::_lookup_idx(const StringName & p_key, unsigned int & r_idx) Line 111 (d:\Godot\core\templates\hash_map.h:111)
godot.windows.editor.dev.x86_64.exe!HashMap<StringName,Variant,HashMapHasherDefault,HashMapComparatorDefault<StringName,void>,DefaultTypedAllocator<HashMapElement<StringName,Variant>>>::has(const StringName & p_key) Line 323 (d:\Godot\core\templates\hash_map.h:323)
godot.windows.editor.dev.x86_64.exe!ClassDB::class_get_default_property_value(const StringName & p_class, const StringName & p_property, bool * r_valid) Line 2216 (d:\Godot\core\object\class_db.cpp:2216)
godot.windows.editor.dev.x86_64.exe!PropertyUtils::get_property_default_value(const Object * p_object, const StringName & p_property, bool * r_is_valid, const Vector<SceneState::PackState> * p_states_stack_cache, bool p_update_exports, const Node * p_owner, bool * r_is_class_default) Line 177 (d:\Godot\scene\property_utils.cpp:177)
godot.windows.editor.dev.x86_64.exe!ResourceFormatSaverBinaryInstance::save(const String & p_path, const Ref<Resource> & p_resource, unsigned int p_flags) Line 2231 (d:\Godot\core\io\resource_format_binary.cpp:2231)
godot.windows.editor.dev.x86_64.exe!ResourceFormatSaverBinary::save(const Ref<Resource> & p_resource, const String & p_path, unsigned int p_flags) Line 2463 (d:\Godot\core\io\resource_format_binary.cpp:2463)
godot.windows.editor.dev.x86_64.exe!ResourceSaver::save(RequiredParam<Resource> rp_resource, const String & p_path, unsigned int p_flags) Line 129 (d:\Godot\core\io\resource_saver.cpp:129)
godot.windows.editor.dev.x86_64.exe!ResourceImporterDynamicFont::import(__int64 p_source_id, const String & p_source_file, const String & p_save_path, const HashMap<StringName,Variant,HashMapHasherDefault,HashMapComparatorDefault<StringName,void>,DefaultTypedAllocator<HashMapElement<StringName,Variant>>> & p_options, List<String,DefaultAllocator> * r_platform_variants, List<String,DefaultAllocator> * r_gen_files, Variant * r_metadata) Line 297 (d:\Godot\editor\import\resource_importer_dynamic_font.cpp:297)
godot.windows.editor.dev.x86_64.exe!EditorFileSystem::_reimport_file(const String & p_file, const HashMap<StringName,Variant,HashMapHasherDefault,HashMapComparatorDefault<StringName,void>,DefaultTypedAllocator<HashMapElement<StringName,Variant>>> & p_custom_options, const String & p_custom_importer, Variant * p_generator_parameters, bool p_update_file_system) Line 2942 (d:\Godot\editor\file_system\editor_file_system.cpp:2942)
godot.windows.editor.dev.x86_64.exe!EditorFileSystem::_reimport_thread(unsigned int p_index, EditorFileSystem::ImportThreadData * p_import_data) Line 3252 (d:\Godot\editor\file_system\editor_file_system.cpp:3252)
godot.windows.editor.dev.x86_64.exe!WorkerThreadPool::GroupUserData<EditorFileSystem,void (__cdecl EditorFileSystem::*)(unsigned int,EditorFileSystem::ImportThreadData *),EditorFileSystem::ImportThreadData *>::callback_indexed(unsigned int p_index) Line 216 (d:\Godot\core\object\worker_thread_pool.h:216)
godot.windows.editor.dev.x86_64.exe!WorkerThreadPool::_process_task(WorkerThreadPool::Task * p_task) Line 106 (d:\Godot\core\object\worker_thread_pool.cpp:106)
godot.windows.editor.dev.x86_64.exe!WorkerThreadPool::_thread_function(void * p_user) Line 220 (d:\Godot\core\object\worker_thread_pool.cpp:220)
godot.windows.editor.dev.x86_64.exe!Thread::callback(unsigned __int64 p_caller_id, const Thread::Settings & p_settings, void(*)(void *) p_callback, void * p_userdata) Line 64 (d:\Godot\core\os\thread.cpp:64)
godot.windows.editor.dev.x86_64.exe!std::invoke<void (__cdecl*)(unsigned __int64,Thread::Settings const &,void (__cdecl*)(void *),void *),unsigned __int64,Thread::Settings,void (__cdecl*)(void *),void *>(void(*)(unsigned __int64, const Thread::Settings &, void(*)(void *), void *) && _Obj, unsigned __int64 && _Arg1, Thread::Settings && <_Args2_0>, void(*)(void *) && <_Args2_1>, void * && <_Args2_2>) Line 1680 (c:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207\include\type_traits:1680)
godot.windows.editor.dev.x86_64.exe!std::thread::_Invoke<std::tuple<void (__cdecl*)(unsigned __int64,Thread::Settings const &,void (__cdecl*)(void *),void *),unsigned __int64,Thread::Settings,void (__cdecl*)(void *),void *>,0,1,2,3,4>(void * _RawVals) Line 61 (c:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207\include\thread:61)
godot.windows.editor.dev.x86_64.exe!thread_start<unsigned int (__cdecl*)(void *),1>(void * const parameter) Line 97 (c:\Users\yanda\AppData\Local\Programs\Microsoft VS Code\minkernel\crts\ucrt\src\appcrt\startup\thread.cpp:97)
kernel32.dll!00007ffb3ddd7374() (Unknown Source:0)
ntdll.dll!00007ffb3ebbcc91() (Unknown Source:0)
My attempt to give more insight info:
Steps to reproduce
N/A
Minimal reproduction project (MRP)
N/A
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the crash after clicking “Upgrade All Resources” in Godot 4.7 on Windows, then inspect editor/import/resource_importer_dynamic_font.cpp and the save path through core/io/resource_format_binary.cpp and scene/property_utils.cpp shown in the stack trace. Use the crash stack and attached screenshots to narrow the failing resource; done means the project restarts and resource reimport completes without crashing.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- game-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 45/100