godotengine / godotengine/godot
gd4.3.beta1 animation_tree sub thread bug
- Dominant language
- C++
- Stars
- 117k
- Forks
- 26.8k
- PR merge metrics
- PR metrics pending
Description
### Tested versions
4.3.beta1
### System information
windows10
### Issue description
ERROR: Condition "!process_state->tree->property_parent_map[node_state.base_path].has(p_name)" is true.
at: set_parameter (scene/animation/animation_tree.cpp:79)
ERROR: Parameter "process_state" is null.
at: set_parameter (scene/animation/animation_tree.cpp:74)
ERROR: Parameter "process_state" is null.
at: set_parameter (scene/animation/animation_tree.cpp:74)
ERROR: Parameter "process_state" is null.
### Steps to reproduce
```gdscript
func OpenWorld(nodeName, idx, data=null):
var worldNew = widx_map[idx].instantiate()
var newwindow = WorldWindow.new()
newwindow.setWorldNode(worldNew)
newwindow.set_embedding_subwindows(true)
newwindow.set_flag(Window.FLAG_NO_FOCUS, true)
newwindow.set_transient(true)
newwindow.set_as_audio_listener_3d(false)
newwindow.set_disable_input(true)
newwindow.set_handle_input_locally(false)
newwindow.set_name(nodeName)
newwindow.set_world_3d(World3D.new())
newwindow.set_process_thread_group(Node.PROCESS_THREAD_GROUP_SUB_THREAD)
get_tree().get_root().add_child(newwindow)
#on WorldWindow
func _process(delta):
Thread.set_thread_safety_checks_enabled(false)
func _physics_process(delta):
Thread.set_thread_safety_checks_enabled(false)
```
### Minimal reproduction project (MRP)
N/A
Contributor guide
Research direction
Start at set_parameter in scene/animation/animation_tree.cpp, then investigate how AnimationTree state is accessed when a node uses Node.PROCESS_THREAD_GROUP_SUB_THREAD. Reproduce the reported errors with the supplied OpenWorld and WorldWindow code on Godot 4.3.beta1 and Windows 10; done means the errors no longer occur in that setup.
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
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100