Page MenuHome

Blender 2.8 "Make duplicates real" operator settings crashes blender
Closed, ResolvedPublic

Description

System Information
Operating system: Win10
Graphics card: NVIDIA GeForce GTX 960M

Blender Version
Broken: blender-2.80.0-git.0f5b53ba4dc-windows64

Short description of error
Crashes when trying to setup "Make duplicates real" operator.

Exact steps for others to reproduce the error

  1. Create two objects (meshes)
  2. Make 1 parent of second one.
  3. Enable Object > Instancing > Verts and/or Faces
  4. Use "Make Duplicates real" (spacebar menu)
  5. Click any of checkboxes in opeartor toolbox (Parent / Keep Hierarchy)

Maybe related? https://developer.blender.org/T49918 (appeared in older version)
Also probably related to this: https://developer.blender.org/T58118

Event Timeline

Philipp Oeser (lichtwerk) lowered the priority of this task from Needs Triage by Developer to Confirmed, Medium.Dec 3 2018, 10:19 AM

Can confirm.

Right now (since rB9ed522db735b), we are asserting even earlier here:

BLI_assert(ob->id.tag & LIB_TAG_COPIED_ON_WRITE);

1   raise                                                       0x7ffff466853f 
2   abort                                                       0x7ffff4652895 
3   mesh_build_data                  DerivedMesh.c         2009 0x29a6733      
4   mesh_get_eval_final              DerivedMesh.c         2170 0x29a6b8a      
5   make_duplis_verts                object_dupli.c        495  0x2b34245      
6   object_duplilist                 object_dupli.c        1197 0x2b36267      
7   make_object_duplilist_real       object_add.c          1523 0x2135ef1      
8   object_duplicates_make_real_exec object_add.c          1680 0x21365fd

without the above assert, it is asserting elsewhere (when changing setting for redo):

BLI_assert(scene_cow != NULL && DEG::deg_copy_on_write_is_expanded(&scene_cow->id));

1   raise                                                      0x7ffff466853f 
2   abort                                                      0x7ffff4652895 
3   DEG_get_evaluated_scene          depsgraph_query.cc   134  0x2f1b71d      
4   DEG_get_evaluated_view_layer     depsgraph_query.cc   142  0x2f1b743      
5   init_context                     object_dupli.c       108  0x2b32f88      
6   object_duplilist                 object_dupli.c       1194 0x2b361e3      
7   make_object_duplilist_real       object_add.c         1523 0x2135ef1      
8   object_duplicates_make_real_exec object_add.c         1680 0x21365fd      
9   wm_operator_exec                 wm_event_system.c    964  0x1c6bc5a      
10  WM_operator_repeat               wm_event_system.c    1041 0x1c6bf28      
11  ED_undo_operator_repeat          ed_undo.c            456  0x1cab4b2

Checking further...

Hm, is_child() is failing in make_child_duplis() as well... [I guess it is comaparing evaluated vs. original object?]

Still pretty much lost when it comes to COW/DEG, here is some try to get something meaningful happen P855 (that will make "Make Duplicates Real" actually do something, but it is still crashing on redo... -- and I am unsure if this is even the route to go...)

@Sergey Sharybin (sergey): could you check?