godotengine / godotengine/godot

gd4.3.beta1 animation_tree sub thread bug

Open
#93,050 5 comments 0 reactions 0 assignees View on GitHub
needs testing topic:core
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.