godotengine / godotengine/godot
Engine crashes when playing a Particle effect set to queue_free when it ends.
- Dominant language
- C++
- Stars
- 117k
- Forks
- 26.8k
- PR merge metrics
- PR metrics pending
Description
### Tested versions
v4.3.dev5.official [89f70e98d]
### System information
Godot v4.3.dev5 - Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3080 (NVIDIA; 31.0.15.3623) - 12th Gen Intel(R) Core(TM) i9-12900KF (24 Threads)
### Issue description
Steps to reproduce explain it.
### Steps to reproduce
Create a GPUParticles3D. Set One Shot to true. In Signals, set finished() to call queue_free() directly. Click on Emitting. Engine crashes once emitting finishes.
### Minimal reproduction project (MRP)
[crashmvp.zip](https://github.com/godotengine/godot/files/14943979/crashmvp.zip)
Contributor guide
Research direction
Open the linked crashmvp.zip project and reproduce the crash with a GPUParticles3D configured as one-shot, connecting finished() directly to queue_free(). Then inspect the GPUParticles3D finished-signal and object-lifecycle handling around emission completion. Done means the reproduction no longer crashes the engine when the particle effect frees itself.
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
- Clearly specified
- Newbie friendliness
- 35/100