Page MenuHome

Crash when deleting particle system modifier with the X Shortcut
Closed, ResolvedPublic

Description

System Information
Operating system: Linux-5.7.5-arch1-1-x86_64-with-arch 64 Bits
Graphics card: GeForce GTX 1080 Ti/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 440.82

Blender Version
Broken: version: 2.90.0 Alpha, branch: master, commit date: 2020-07-06 20:39, hash: rBe20171e59f48

Short description of error
Deleting a duplicated particle system from the modifier stack crashes Blender.
Possibly related to T74786 (?)

Exact steps for others to reproduce the error
0. load factory settings.

  1. Select the default cube and add a Particle System. (e.g. by adding a Particle System modifier)
  2. Hover the mouse over the PS-modifier in the stack and press Shift + D to duplicate.
  3. While still hovering over the modifiers, press X twice to delete both Particle System modifiers.

(This is how I can reproduce it 100% of the time. - When I discovered it, I only needed to delete one of the modifiers to cause the crash.)

Event Timeline

Robert Guetzkow (rjg) changed the task status from Needs Triage to Confirmed.Jul 7 2020, 8:23 PM
Robert Guetzkow (rjg) triaged this task as High priority.
psys_emitter_customdata_mask(ParticleSystem * psys, CustomData_MeshMasks * r_cddata_masks) Line 1953	C
requiredDataMask(Object * UNUSED_ob, ModifierData * md, CustomData_MeshMasks * r_cddata_masks) Line 104	C
BKE_modifier_calc_data_masks(Scene * scene, Object * ob, ModifierData * md, CustomData_MeshMasks * final_datamask, int required_mode, ModifierData * previewmd, const CustomData_MeshMasks * previewmask) Line 573	C
mesh_calc_modifiers(Depsgraph * depsgraph, Scene * scene, Object * ob, int useDeform, const bool need_mapping, const CustomData_MeshMasks * dataMask, const int index, const bool use_cache, const bool allow_shared_mesh, Mesh * * r_deform, Mesh * * r_final) Line 951	C
mesh_build_data(Depsgraph * depsgraph, Scene * scene, Object * ob, const CustomData_MeshMasks * dataMask, const bool need_mapping) Line 1805	C
makeDerivedMesh(Depsgraph * depsgraph, Scene * scene, Object * ob, BMEditMesh * em, const CustomData_MeshMasks * dataMask) Line 1920	C
BKE_object_handle_data_update(Depsgraph * depsgraph, Scene * scene, Object * ob) Line 194	C
BKE_object_eval_uber_data(Depsgraph * depsgraph, Scene * scene, Object * ob) Line 385	C
Bastien Montagne (mont29) reopened this task as Confirmed.Jul 8 2020, 6:10 PM

Meh, wrong task number in commit message :(

Well, basically copying code is doing everything wrong it can do for that modifier... TBH particle system modifier is a weirdo, always needs its own custom handling.

This has nothing to do with Pipeline, Assets & I/O project really, just bad code in handling of that modifier/psys.

Fix incoming.