godotengine / godotengine/godot
SpinBox seemingly randomly crashes the whole Editor
- Dominant language
- C++
- Stars
- 117k
- Forks
- 26.8k
- PR merge metrics
- PR metrics pending
Description
### Tested versions
Reproducible in: v4.3.stable.official [77dcf97d8]
(didnt test more versions since it takes so much time to get results)
### System information
Godot v4.3.stable - Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3060 Ti (NVIDIA; 32.0.15.6094) - 13th Gen Intel(R) Core(TM) i5-13400 (16 Threads)
### Issue description
While I was testing my plugin's UI the whole editor suddenly crashed. I was able to repruduce the crash multiple times but its very inconsistent.
I stripped away as much stuff from my plugin as possible and left the project as a minimal repro project below. (Thats why the variable names and the labels have those not so generic texts)
Honestly, I couldnt figure out what is truly causing the crash since its so random and I cant get a crash log or anything. I tried launching the editor with --verbose but nothing gets printed when crashing.
And the even more weird thing is, I recorded my mouse inputs with a software and played back the whole thing after crashing and even this way i couldnt get a consistent result, I crashed a bit later.
I have left a video of me reproducing the crash but it well takes around 2-10 minutes to get a crash. It was really hard for me to test this since I was just guessing what might cause the crash and I cant even make sure that after like 10 minutes of trying this and not getting a crash wouldnt have caused a crash after like 15 minutes of trying.
All I can say is, doing the steps I list below on the minimal repro project WILL EVENTUALLY cause the editor to crash.
### Steps to reproduce
1. Click the `Add limb` button on the 3D toolbar.
2. Click the `Select tip bone` button
3. Click randomly around on the `SpinBox arrows` and maybe in the `input field` too for some time.
4. Click on the `Select` button.
5. Go back to step 2. and repeat a couple of times.
6. Click away from the PopupPanel and repeat the whole thing until the editor freezes and crashes at some point.
[editor_crash.zip](https://github.com/user-attachments/files/17949309/editor_crash.zip)
### Minimal reproduction project (MRP)
[plugin-bug-test.zip](https://github.com/user-attachments/files/17948584/plugin-bug-test.zip)
Contributor guide
Research direction
Start by opening plugin-bug-test.zip in the stated Godot v4.3 environment and follow the numbered reproduction steps involving Add limb, Select tip bone, the SpinBox, and Select. Use editor_crash.zip and the provided video as additional evidence. Done means identifying and fixing the eventual editor crash, with a reliable way to verify the repeated interaction no longer crashes the editor.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, godot
- Domain
- desktop-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 28/100