Regression: Crash on COW delete of shared custom data #109583
Operating system: Linux-5.4.0-153-generic-x86_64-with-glibc2.31 64 Bits, X11 UI
Graphics card: NVIDIA GeForce RTX 2070 SUPER/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 535.54.03
Operating system: Windows-10-10.0.19045-SP0 64 Bits
Graphics card: NVIDIA GeForce RTX 2070 SUPER/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 531.41
Broken: version: 3.6.0 Alpha, branch: main, commit date: 2023-04-15 01:59, hash:
Worked: version: 3.6.0 Alpha, branch: main, commit date: 2023-04-12 22:05, hash:
Short description of error
Blender crashes when I pose bones (Rotate, Grab, Scale) of the armature in the attached .blend file.
This is a project I created before Blender 3.6.
I deleted everything from it but the objects that seem to be involved in the crash.
BLI_assert failed: F:\Blender_build\first\blender\source\blender\blenlib\BLI_implicit_sharing.hh:136, remove_user_and_delete_if_last(), at 'old_user_count >= 1'
Exact steps for others to reproduce the error
- Open the attached .blend file.
- Press 'R' and rotate the selected Bone (or do some other posing).
(Might need some tries)
Search problem: This is not a regression. Previously, this was a very long memory leak. But now it's a potential crash.
I will continue to revise this report to make the playback steps as simple as possible.
Wow, thank you for such quick response and investigation! :D <3
So far, I can see that this can be simplified down to an object with time dependent geometry and a bunch of attached hair objects. And also a lot of layers of custom data. But still can't reproduce from scratch. It seems that the problem is in the synchronization of the dependency graph.
Memory leak introduced between:
Broken: version: 3.5.0 Alpha, branch: master, commit date: 2023-01-13 23:22, hash:
Worked: version: 3.5.0 Alpha, branch: master, commit date: 2023-01-08 22:09, hash:
No due date set.
No dependencies set.
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?