Page MenuHome

Crash on Boolean Modifier
Closed, ResolvedPublic

Description

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:

Event Timeline

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

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.

Bastien Montagne (mont29) triaged this task as Normal priority.

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 :)

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