Crash on Boolean Modifier #41360

Closed
opened 2014-08-08 02:17:42 +02:00 by Alejandro Anzola Avila · 13 comments

System Information
Windows 7 Professional x64
Nvidia GeForce GTX 780 x2

Blender Version
Broken: Blender 2.71 Hash: 9337574

Short description of error
Using a Boolean modifier, when it is using the operator of difference of another object, then hits render, and when it's processing the object that has the boolean modifier, MOST of the time it crashes, also when hiting "Display modifier in realtime" button (that has an eye on it), happens also most of the time.

Exact steps for others to reproduce the error
Using a Boolean modifier below a solidify modifier of a simple plane (4 vertices), using in the boolean a operator of difference, using another object that is partially inside of the object, the object that is partially inside is a mesh separed in various parts (in my case they are lamps) that conforms the entire object.

Example Blend: prueba_bug.blend

**System Information** Windows 7 Professional x64 Nvidia GeForce GTX 780 x2 **Blender Version** Broken: Blender 2.71 Hash: 9337574 **Short description of error** Using a Boolean modifier, when it is using the operator of difference of another object, then hits render, and when it's processing the object that has the boolean modifier, MOST of the time it crashes, also when hiting "Display modifier in realtime" button (that has an eye on it), happens also most of the time. **Exact steps for others to reproduce the error** Using a Boolean modifier below a solidify modifier of a simple plane (4 vertices), using in the boolean a operator of difference, using another object that is partially inside of the object, the object that is partially inside is a mesh separed in various parts (in my case they are lamps) that conforms the entire object. Example Blend: [prueba_bug.blend](https://archive.blender.org/developer/F101960/prueba_bug.blend)

Changed status to: 'Open'

Changed status to: 'Open'

Added subscriber: @SkinMan95

Added subscriber: @SkinMan95

Added subscriber: @jefrau

Added subscriber: @jefrau

The error exists, the crash disappears when is removed the modifier subdivision of the "lamparas_techo".

The error exists, the crash disappears when is removed the modifier subdivision of the "lamparas_techo".

Added subscriber: @ignatz

Added subscriber: @ignatz

I have examined the example Blend file. It does crash on my system when rendered...

BUT...

I note each of the sub object groups of the mesh object 'lamparas_techo' has a non-manifold outer shell.

In my understanding of it, the boolean modifier is designed to work with manifold objects.

The boolean modifier will sometimes work with a non-manifold object, but in general this is very bad practice and leads to instabilities.

I think one of the programmers could make a more informed comment on this.

I have examined the example Blend file. It does crash on my system when rendered... BUT... I note each of the sub object groups of the mesh object 'lamparas_techo' has a non-manifold outer shell. In my understanding of it, the boolean modifier is designed to work with manifold objects. The boolean modifier will sometimes work with a non-manifold object, but in general this is very bad practice and leads to instabilities. I think one of the programmers could make a more informed comment on this.

Added subscriber: @mont29

Added subscriber: @mont29
Sergey Sharybin was assigned by Bastien Montagne 2014-08-08 10:50:37 +02:00

Boolean modifier does not handle non-manifold cases very well… But it should not crash! Sergey, sounds for you. :)

Boolean modifier does not handle non-manifold cases very well… **But** it should not crash! Sergey, sounds for you. :)

As I remember the scene that I was working with this two objects worked well in 2.69, but when I took the file again with 2.71 and 2.70, this happened... Hope it helps :)

As I remember the scene that I was working with this two objects worked well in 2.69, but when I took the file again with 2.71 and 2.70, this happened... Hope it helps :)

For what’s worth, here is a bt, segfault happens in Carve :/

Program received signal SIGSEGV, Segmentation fault.
0x000000000655f007 in carve::mesh::MeshSimplifier::cleanFaceEdges (this=0x7fffffffc6b0, mesh=0x6080033eb020) at /home/i74700deb64/blender/__work__/src/extern/carve/include/carve/mesh_simplify.hpp:1072
1072	              start = edge->prev;
(gdb) bt
#0  0x000000000655f007 in carve::mesh::MeshSimplifier::cleanFaceEdges (this=0x7fffffffc6b0, mesh=0x6080033eb020) at /home/i74700deb64/blender/__work__/src/extern/carve/include/carve/mesh_simplify.hpp:1072
Python Exception <class 'gdb.error'> There is no member or method named _M_h.: 
#1  0x000000000655f4e9 in carve::mesh::MeshSimplifier::dissolveMeshEdges (this=0x7fffffffc6b0, mesh=0x6080033eb020, dissolve_edges=)
    at /home/i74700deb64/blender/__work__/src/extern/carve/include/carve/mesh_simplify.hpp:1209
Python Exception <class 'ValueError'> Cannot find type const std::set<std::pair<int, int>, std::less<std::pair<int, int> >, std::allocator<std::pair<int, int> > >::_Rep_type: 
#2  0x0000000006554350 in (anonymous namespace)::dissolveTriangulatedEdges (mesh=0x6080033eb020, open_edges=std::set with 2489 elements, face_edge_triangulated_flag=0x613000079608, 
    orig_face_edge_mapping=0x6130000795a0) at /home/i74700deb64/blender/__work__/src/extern/carve/carve-capi.cc:325
- 3  0x0000000006554aa5 in (anonymous namespace)::dissolveTriangulatedEdges (mesh_descr=0x613000079500) at /home/i74700deb64/blender/__work__/src/extern/carve/carve-capi.cc:384
- 4  0x0000000006556f05 in carve_performBooleanOperation (left_mesh=0x6130000fb5c0, right_mesh=0x6130000fb400, operation=1, output_mesh=0x7fffffffcda0)
    at /home/i74700deb64/blender/__work__/src/extern/carve/carve-capi.cc:770
#5  0x000000000323759f in NewBooleanDerivedMesh (dm=0x61c0001de888, ob=0x61b000792288, dm_select=0x61c0001c8888, ob_select=0x61b000791b88, int_op_type=1)
    at /home/i74700deb64/blender/__work__/src/source/blender/modifiers/intern/MOD_boolean_util.c:777
#6  0x00000000031bf80f in applyModifier (md=0x60d00026fdd8, ob=0x61b000791b88, derivedData=0x61c0001c8888, flag=MOD_APPLY_USECACHE)
    at /home/i74700deb64/blender/__work__/src/source/blender/modifiers/intern/MOD_boolean.c:144
#7  0x0000000003a754c3 in modwrap_applyModifier (md=0x60d00026fdd8, ob=0x61b000791b88, dm=0x61c0001c8888, flag=MOD_APPLY_USECACHE)
    at /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/modifier.c:740
#8  0x00000000037668ac in mesh_calc_modifiers (scene=0x62200016c908, ob=0x61b000791b88, inputVertexCos=0x0, deform_r=0x61b000792090, final_r=0x61b000792098, useRenderParams=0, useDeform=1, needMapping=0, 
    dataMask=637534233, index=-1, useCache=1, build_shapekey_layers=0) at /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/DerivedMesh.c:1777
#9  0x000000000376aade in mesh_build_data (scene=0x62200016c908, ob=0x61b000791b88, dataMask=637534233, build_shapekey_layers=0)
    at /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/DerivedMesh.c:2279
#10 0x000000000376b31d in makeDerivedMesh (scene=0x62200016c908, ob=0x61b000791b88, em=0x0, dataMask=637534233, build_shapekey_layers=0)
    at /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/DerivedMesh.c:2352
#11 0x0000000003addac6 in BKE_object_handle_update_ex (eval_ctx=0x602000145a18, scene=0x62200016c908, ob=0x61b000791b88, rbw=0x0, do_proxy_update=false)
    at /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/object.c:2923
- 12 0x0000000003bcf86e in scene_update_object_func (pool=0x60f00013ed38, taskdata=0x60c000181848, threadid=0) at /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/scene.c:1366
- 13 0x00000000043ef755 in BLI_task_pool_work_and_wait (pool=0x60f00013ed38) at /home/i74700deb64/blender/__work__/src/source/blender/blenlib/intern/task.c:367
#14 0x0000000003bd001e in scene_update_objects (eval_ctx=0x602000145a18, bmain=0x61c0001cc088, scene=0x62200016c908, scene_parent=0x62200016c908)
    at /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/scene.c:1512
#15 0x0000000003bd0230 in scene_update_tagged_recursive (eval_ctx=0x602000145a18, bmain=0x61c0001cc088, scene=0x62200016c908, scene_parent=0x62200016c908)
    at /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/scene.c:1553
- 16 0x0000000003bd0817 in BKE_scene_update_tagged (eval_ctx=0x602000145a18, bmain=0x61c0001cc088, scene=0x62200016c908) at /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/scene.c:1640
- 17 0x0000000001e4fe14 in wm_event_do_notifiers (C=0x60b000053c38) at /home/i74700deb64/blender/__work__/src/source/blender/windowmanager/intern/wm_event_system.c:378
- 18 0x0000000001e3fafb in WM_main (C=0x60b000053c38) at /home/i74700deb64/blender/__work__/src/source/blender/windowmanager/intern/wm.c:495
- 19 0x0000000001e3dab0 in main (argc=1, argv=0x7fffffffe038) at /home/i74700deb64/blender/__work__/src/source/creator/creator.c:1761
For what’s worth, here is a bt, segfault happens in Carve :/ ``` Program received signal SIGSEGV, Segmentation fault. 0x000000000655f007 in carve::mesh::MeshSimplifier::cleanFaceEdges (this=0x7fffffffc6b0, mesh=0x6080033eb020) at /home/i74700deb64/blender/__work__/src/extern/carve/include/carve/mesh_simplify.hpp:1072 1072 start = edge->prev; (gdb) bt #0 0x000000000655f007 in carve::mesh::MeshSimplifier::cleanFaceEdges (this=0x7fffffffc6b0, mesh=0x6080033eb020) at /home/i74700deb64/blender/__work__/src/extern/carve/include/carve/mesh_simplify.hpp:1072 Python Exception <class 'gdb.error'> There is no member or method named _M_h.: #1 0x000000000655f4e9 in carve::mesh::MeshSimplifier::dissolveMeshEdges (this=0x7fffffffc6b0, mesh=0x6080033eb020, dissolve_edges=) at /home/i74700deb64/blender/__work__/src/extern/carve/include/carve/mesh_simplify.hpp:1209 Python Exception <class 'ValueError'> Cannot find type const std::set<std::pair<int, int>, std::less<std::pair<int, int> >, std::allocator<std::pair<int, int> > >::_Rep_type: #2 0x0000000006554350 in (anonymous namespace)::dissolveTriangulatedEdges (mesh=0x6080033eb020, open_edges=std::set with 2489 elements, face_edge_triangulated_flag=0x613000079608, orig_face_edge_mapping=0x6130000795a0) at /home/i74700deb64/blender/__work__/src/extern/carve/carve-capi.cc:325 - 3 0x0000000006554aa5 in (anonymous namespace)::dissolveTriangulatedEdges (mesh_descr=0x613000079500) at /home/i74700deb64/blender/__work__/src/extern/carve/carve-capi.cc:384 - 4 0x0000000006556f05 in carve_performBooleanOperation (left_mesh=0x6130000fb5c0, right_mesh=0x6130000fb400, operation=1, output_mesh=0x7fffffffcda0) at /home/i74700deb64/blender/__work__/src/extern/carve/carve-capi.cc:770 #5 0x000000000323759f in NewBooleanDerivedMesh (dm=0x61c0001de888, ob=0x61b000792288, dm_select=0x61c0001c8888, ob_select=0x61b000791b88, int_op_type=1) at /home/i74700deb64/blender/__work__/src/source/blender/modifiers/intern/MOD_boolean_util.c:777 #6 0x00000000031bf80f in applyModifier (md=0x60d00026fdd8, ob=0x61b000791b88, derivedData=0x61c0001c8888, flag=MOD_APPLY_USECACHE) at /home/i74700deb64/blender/__work__/src/source/blender/modifiers/intern/MOD_boolean.c:144 #7 0x0000000003a754c3 in modwrap_applyModifier (md=0x60d00026fdd8, ob=0x61b000791b88, dm=0x61c0001c8888, flag=MOD_APPLY_USECACHE) at /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/modifier.c:740 #8 0x00000000037668ac in mesh_calc_modifiers (scene=0x62200016c908, ob=0x61b000791b88, inputVertexCos=0x0, deform_r=0x61b000792090, final_r=0x61b000792098, useRenderParams=0, useDeform=1, needMapping=0, dataMask=637534233, index=-1, useCache=1, build_shapekey_layers=0) at /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/DerivedMesh.c:1777 #9 0x000000000376aade in mesh_build_data (scene=0x62200016c908, ob=0x61b000791b88, dataMask=637534233, build_shapekey_layers=0) at /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/DerivedMesh.c:2279 #10 0x000000000376b31d in makeDerivedMesh (scene=0x62200016c908, ob=0x61b000791b88, em=0x0, dataMask=637534233, build_shapekey_layers=0) at /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/DerivedMesh.c:2352 #11 0x0000000003addac6 in BKE_object_handle_update_ex (eval_ctx=0x602000145a18, scene=0x62200016c908, ob=0x61b000791b88, rbw=0x0, do_proxy_update=false) at /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/object.c:2923 - 12 0x0000000003bcf86e in scene_update_object_func (pool=0x60f00013ed38, taskdata=0x60c000181848, threadid=0) at /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/scene.c:1366 - 13 0x00000000043ef755 in BLI_task_pool_work_and_wait (pool=0x60f00013ed38) at /home/i74700deb64/blender/__work__/src/source/blender/blenlib/intern/task.c:367 #14 0x0000000003bd001e in scene_update_objects (eval_ctx=0x602000145a18, bmain=0x61c0001cc088, scene=0x62200016c908, scene_parent=0x62200016c908) at /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/scene.c:1512 #15 0x0000000003bd0230 in scene_update_tagged_recursive (eval_ctx=0x602000145a18, bmain=0x61c0001cc088, scene=0x62200016c908, scene_parent=0x62200016c908) at /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/scene.c:1553 - 16 0x0000000003bd0817 in BKE_scene_update_tagged (eval_ctx=0x602000145a18, bmain=0x61c0001cc088, scene=0x62200016c908) at /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/scene.c:1640 - 17 0x0000000001e4fe14 in wm_event_do_notifiers (C=0x60b000053c38) at /home/i74700deb64/blender/__work__/src/source/blender/windowmanager/intern/wm_event_system.c:378 - 18 0x0000000001e3fafb in WM_main (C=0x60b000053c38) at /home/i74700deb64/blender/__work__/src/source/blender/windowmanager/intern/wm.c:495 - 19 0x0000000001e3dab0 in main (argc=1, argv=0x7fffffffe038) at /home/i74700deb64/blender/__work__/src/source/creator/creator.c:1761 ```

This issue was referenced by 0fe70b5e28

This issue was referenced by 0fe70b5e2871bd82d868614548fd62d81f1873c3

Changed status from 'Open' to: 'Resolved'

Changed status from 'Open' to: 'Resolved'

Closed by commit 0fe70b5e28.

Closed by commit 0fe70b5e28.
Sign in to join this conversation.
6 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: blender/blender#41360
No description provided.