Segmentation fault crash with boolean difference modifier and three objects #43802

Closed
opened 2015-02-25 00:11:50 +01:00 by catlover2 · 9 comments

bug3.16.blend has three mesh objects. Two (Cylinder and Cylinder.001) have two boolean difference modifiers each, and one of those two (Cylinder.001) also has an array modifier. When Boolean.002 on Cylinder is activated, Blender crashes every time for me. I have not tested this extensively, but it appears that any four of the modifiers can be activated at once without crashing and that the crash only occurs when all five are activated at once.

Machines I've reproduced this with:

Blender 2.73 on Arch Linux x64 with NVIDIA GTX 770
Blender 2.73 on Arch Linux x64 with Intel HD Graphics 3000
Blender 2.72 on Debian Jesse x64 with Intel HD Graphics 3000

bug3.16.blend.stderr

bug3.16.blend.stdout

bug3.16.crash.txt

[bug3.16.blend](https://archive.blender.org/developer/F145737/bug3.16.blend) has three mesh objects. Two (Cylinder and Cylinder.001) have two boolean difference modifiers each, and one of those two (Cylinder.001) also has an array modifier. When Boolean.002 on Cylinder is activated, Blender crashes every time for me. I have not tested this extensively, but it appears that any four of the modifiers can be activated at once without crashing and that the crash only occurs when all five are activated at once. Machines I've reproduced this with: Blender 2.73 on Arch Linux x64 with NVIDIA GTX 770 Blender 2.73 on Arch Linux x64 with Intel HD Graphics 3000 Blender 2.72 on Debian Jesse x64 with Intel HD Graphics 3000 [bug3.16.blend.stderr](https://archive.blender.org/developer/F145738/bug3.16.blend.stderr) [bug3.16.blend.stdout](https://archive.blender.org/developer/F145741/bug3.16.blend.stdout) [bug3.16.crash.txt](https://archive.blender.org/developer/F145740/bug3.16.crash.txt)
Author

Changed status to: 'Open'

Changed status to: 'Open'
Author

Added subscribers: @catlover2, @gandalf3

Added subscribers: @catlover2, @gandalf3
Sergey Sharybin self-assigned this 2015-02-25 10:04:30 +01:00

Seems to be an issue with dissolving edges after boolean operation failure. Will look into it.

Seems to be an issue with dissolving edges after boolean operation failure. Will look into it.

Added subscriber: @faerietree

Added subscriber: @faerietree

Related, a crash in the following deprecated scene, when toggling from Edit mode to Object mode, seems to cause a crash with Boolean modifier (depending on selection or not).

boolean_crash_revision_0aa258117d52cf09530e1ff30837f697f3bb8307.tar.gz

Here the crash stacktrace that leads to the Boolean carving.
The error should be producable as follows:

Blender 2.73 (with pie menues enabled):

  • Open scene boolean_crash_revision_<revision>.blend. Current mode is Edit mode.
  • (Deselecting everything at this point does (at least for me) prevent the segmentation fault.)
  • Make sure something is selected.
  • Toggle mode to Object mode.
  • crash.

Blender (today's HEAD) revision 0aa258117d / without Pie menues:

  • Similar. The difference is that strangely it's possible to toggle between object and edit mode several times before the crash occurs.

Stacktrace:

(gdb) file ~/build_linux/bin/blender
(gdb) run
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffefe49700 (LWP 2089)]
[New Thread 0x7fffef648700 (LWP 2090)]
[New Thread 0x7fffed17c700 (LWP 2091)]
[Thread 0x7fffed17c700 (LWP 2091) exited]
[New Thread 0x7fffed17c700 (LWP 2092)]
[New Thread 0x7fffe897a700 (LWP 2093)]
[New Thread 0x7fffe3fff700 (LWP 2094)]
[Thread 0x7fffe3fff700 (LWP 2094) exited]
[New Thread 0x7fffe0aa7700 (LWP 2096)]

Program received signal SIGSEGV, Segmentation fault.
0x0000000001b334e3 in carve::mesh::detail::FaceStitcher::resolveOpenEdges() ()
(gdb) where
- 0  0x0000000001b334e3 in carve::mesh::detail::FaceStitcher::resolveOpenEdges() ()
- 1  0x0000000001b38935 in carve::mesh::detail::FaceStitcher::construct() ()
- 2  0x0000000001b2ee23 in void carve::mesh::MeshSet<3u>::_init_from_faces<__gnu_cxx::__normal_iterator<carve::mesh::Face<3u>**, std::ve
- 3  0x0000000001b6ee4f in carve::csg::(anonymous namespace)::BaseCollector::done(carve::csg::CSG::Hooks&) ()
- 4  0x0000000001b0d904 in carve::csg::CSG::compute(carve::mesh::MeshSet<3u>*, carve::mesh::MeshSet<3u>*, carve::csg::CSG::Collector&, s
- 5  0x0000000001b0de69 in carve::csg::CSG::compute(carve::mesh::MeshSet<3u>*, carve::mesh::MeshSet<3u>*, carve::csg::CSG::OP, std::unor
 - 6  0x0000000001ae0415 in carve_performBooleanOperation ()
 - 7  0x0000000000e2a557 in NewBooleanDerivedMesh ()
 - 8  0x0000000000e0caf9 in applyModifier ()
 - 9  0x0000000000ee134a in mesh_calc_modifiers ()
 - 10 0x0000000000ee1ebc in mesh_build_data ()
 - 11 0x0000000000fbce43 in BKE_object_handle_update_ex ()
 - 12 0x0000000000ff70c8 in scene_update_object_func ()
 - 13 0x000000000123e153 in BLI_task_pool_work_and_wait ()
 - 14 0x0000000000ff7280 in scene_update_objects ()
 - 15 0x0000000000ff82b8 in scene_update_tagged_recursive ()
 - 16 0x0000000000ff84ff in BKE_scene_update_tagged ()
 - 17 0x0000000000948942 in wm_event_do_notifiers ()
 - 18 0x0000000000943170 in WM_main ()
- 19 0x0000000000931385 in main ()

Related, a crash in the following deprecated scene, when toggling from Edit mode to Object mode, seems to cause a crash with Boolean modifier (depending on selection or not). [boolean_crash_revision_0aa258117d52cf09530e1ff30837f697f3bb8307.tar.gz](https://archive.blender.org/developer/F146556/boolean_crash_revision_0aa258117d52cf09530e1ff30837f697f3bb8307.tar.gz) Here the crash stacktrace that leads to the Boolean carving. The error should be producable as follows: Blender 2.73 (with pie menues enabled): - Open scene `boolean_crash_revision_<revision>.blend`. Current mode is Edit mode. - (Deselecting everything at this point does (at least for me) prevent the segmentation fault.) - Make sure something is selected. - Toggle mode to Object mode. - crash. Blender (today's HEAD) revision 0aa258117d52cf09530e1ff30837f697f3bb8307 / without Pie menues: - Similar. The difference is that strangely it's possible to toggle between object and edit mode several times before the crash occurs. Stacktrace: ``` (gdb) file ~/build_linux/bin/blender (gdb) run [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". [New Thread 0x7fffefe49700 (LWP 2089)] [New Thread 0x7fffef648700 (LWP 2090)] [New Thread 0x7fffed17c700 (LWP 2091)] [Thread 0x7fffed17c700 (LWP 2091) exited] [New Thread 0x7fffed17c700 (LWP 2092)] [New Thread 0x7fffe897a700 (LWP 2093)] [New Thread 0x7fffe3fff700 (LWP 2094)] [Thread 0x7fffe3fff700 (LWP 2094) exited] [New Thread 0x7fffe0aa7700 (LWP 2096)] Program received signal SIGSEGV, Segmentation fault. 0x0000000001b334e3 in carve::mesh::detail::FaceStitcher::resolveOpenEdges() () (gdb) where - 0 0x0000000001b334e3 in carve::mesh::detail::FaceStitcher::resolveOpenEdges() () - 1 0x0000000001b38935 in carve::mesh::detail::FaceStitcher::construct() () - 2 0x0000000001b2ee23 in void carve::mesh::MeshSet<3u>::_init_from_faces<__gnu_cxx::__normal_iterator<carve::mesh::Face<3u>**, std::ve - 3 0x0000000001b6ee4f in carve::csg::(anonymous namespace)::BaseCollector::done(carve::csg::CSG::Hooks&) () - 4 0x0000000001b0d904 in carve::csg::CSG::compute(carve::mesh::MeshSet<3u>*, carve::mesh::MeshSet<3u>*, carve::csg::CSG::Collector&, s - 5 0x0000000001b0de69 in carve::csg::CSG::compute(carve::mesh::MeshSet<3u>*, carve::mesh::MeshSet<3u>*, carve::csg::CSG::OP, std::unor - 6 0x0000000001ae0415 in carve_performBooleanOperation () - 7 0x0000000000e2a557 in NewBooleanDerivedMesh () - 8 0x0000000000e0caf9 in applyModifier () - 9 0x0000000000ee134a in mesh_calc_modifiers () - 10 0x0000000000ee1ebc in mesh_build_data () - 11 0x0000000000fbce43 in BKE_object_handle_update_ex () - 12 0x0000000000ff70c8 in scene_update_object_func () - 13 0x000000000123e153 in BLI_task_pool_work_and_wait () - 14 0x0000000000ff7280 in scene_update_objects () - 15 0x0000000000ff82b8 in scene_update_tagged_recursive () - 16 0x0000000000ff84ff in BKE_scene_update_tagged () - 17 0x0000000000948942 in wm_event_do_notifiers () - 18 0x0000000000943170 in WM_main () - 19 0x0000000000931385 in main () ```

Unfortunately, the backtrace is not really helpful because it indicates where the issue was reveal, not when it actually happened. Actual issue happens somewhere prior to that point and it's causing corrupted geometry.

Spent quite some time now trying to nail the root of the issue down, but we've got experiment branchwhere we're using Blender's BMesh for boolean operations which seems rather promising from the performance point of view, and it'll also easier for us to follow/maintain. Would prefer concentrating finishing that project. Would take some time tho.

This is also not really a new issue, it existed to some extent in all previous versions -- it didn't crash, but failed to apply modifier all together.

Unfortunately, the backtrace is not really helpful because it indicates where the issue was reveal, not when it actually happened. Actual issue happens somewhere prior to that point and it's causing corrupted geometry. Spent quite some time now trying to nail the root of the issue down, but we've got experiment branchwhere we're using Blender's BMesh for boolean operations which seems rather promising from the performance point of view, and it'll also easier for us to follow/maintain. Would prefer concentrating finishing that project. Would take some time tho. This is also not really a new issue, it existed to some extent in all previous versions -- it didn't crash, but failed to apply modifier all together.
Member

Added subscriber: @Blendify

Added subscriber: @Blendify
Member

Changed status from 'Confirmed' to: 'Resolved'

Changed status from 'Confirmed' to: 'Resolved'
Member

This does not crash for me anymore.

This does not crash for me anymore.
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
4 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#43802
No description provided.