Carve Boolean solver crash when joining meshes #53246

Closed
opened 2017-11-03 17:32:37 +01:00 by Chris Bare · 9 comments

System Information
Ubuntu Linux 16.04.3
GeForce GTX 980 Ti
Nvidia driver version 384.90

Blender Version
Broken: # Blender 2.79 (sub 0), Commit date: 2017-09-11 10:43, Hash 5bd8ac9abf

Short description of error
Joining a mesh to an existing mesh that is used as a boolean modifier causes a crash

Exact steps for others to reproduce the error
open the attached blender file. 2 meshes are selected. type ctrl-j to join them.
Sometimes it crashes immediately, sometimes I have to hit Tab twice, then it crashes.

When this initially happened, the crash.txt file contained the message:
CSG failed, exception /home/sources/blender-release/extern/carve/lib/intersect_face_division.cpp:578 "implement me"

but when I was able to reproduce it, that message was no longer in the crash.txt. I mention it just in case it provides a clue.

**System Information** Ubuntu Linux 16.04.3 GeForce GTX 980 Ti Nvidia driver version 384.90 **Blender Version** Broken: # Blender 2.79 (sub 0), Commit date: 2017-09-11 10:43, Hash 5bd8ac9abfa **Short description of error** Joining a mesh to an existing mesh that is used as a boolean modifier causes a crash **Exact steps for others to reproduce the error** open the attached blender file. 2 meshes are selected. type ctrl-j to join them. Sometimes it crashes immediately, sometimes I have to hit Tab twice, then it crashes. When this initially happened, the crash.txt file contained the message: CSG failed, exception /home/sources/blender-release/extern/carve/lib/intersect_face_division.cpp:578 "implement me" but when I was able to reproduce it, that message was no longer in the crash.txt. I mention it just in case it provides a clue.
Author

Changed status to: 'Open'

Changed status to: 'Open'
Author

Added subscriber: @chrisbare

Added subscriber: @chrisbare
Author
[test2.blend](https://archive.blender.org/developer/F1090919/test2.blend) [test2.crash.txt](https://archive.blender.org/developer/F1090918/test2.crash.txt)
Vuk Gardašević changed title from CSG failed, exception /home/sources/blender-release/extern/carve/lib/intersect_face_division.cpp:578 "implement me" to Carve Boolean solver crash when joining meshes 2017-11-03 17:51:38 +01:00

Added subscriber: @bliblubli

Added subscriber: @bliblubli

I had to hit tab a lot (spam it more than 10 times) after joining and got a crash indeed on win7 using latest master.

I had to hit tab a lot (spam it more than 10 times) after joining and got a crash indeed on win7 using latest master.
Member

Added subscribers: @Sergey, @lichtwerk

Added subscribers: @Sergey, @lichtwerk
Sergey Sharybin was assigned by Philipp Oeser 2018-01-19 18:31:53 +01:00
Member

triangulator gives us a tri with two identical idxs (337,336,337) which asserts here

1   raise                                                       0x7fffeff3566b 
2   abort                                                       0x7fffeff37381 
3   __assert_fail_base                                          0x7fffeff2d8fa 
4   __assert_fail                                               0x7fffeff2d972 
5   (anonymous namespace)::pushTriangle carve-util.cc      735  0x64d0c3d      
6   carve_triangulatePoly               carve-util.cc      772  0x64d0d53      
7   carve_addMesh                       carve-capi.cc      654  0x64974ee      
8   carve_mesh_from_dm                  MOD_boolean_util.c 701  0x260c1af      
9   NewBooleanDerivedMesh               MOD_boolean_util.c 760  0x260c3e5      
10  applyModifier_carve                 MOD_boolean.c      408  0x25ce412      
11  applyModifier                       MOD_boolean.c      455  0x25ce4c5      
12  modwrap_applyModifier               modifier.c         770  0x2b5f23b      
13  mesh_calc_modifiers                 DerivedMesh.c      2082 0x29f637a      
14  mesh_build_data                     DerivedMesh.c      2653 0x29f84b9      
15  makeDerivedMesh                     DerivedMesh.c      2750 0x29f8884      
16  BKE_object_handle_data_update       object_update.c    189  0x2b94dcb      
17  BKE_object_handle_update_ex         object.c           2659 0x2b8b284      
18  scene_update_object_func            scene.c            1586 0x2be81f4      
19  task_scheduler_thread_run           task.c             441  0x2f49c0f      
20  start_thread                                                0x7ffff04ec61b 
... <More>                                                                     

I noticed @Sergey fixed some stuff here already in 34c7fd1a11, so could you have a look?

triangulator gives us a tri with two identical idxs (337,336,337) which asserts here ``` 1 raise 0x7fffeff3566b 2 abort 0x7fffeff37381 3 __assert_fail_base 0x7fffeff2d8fa 4 __assert_fail 0x7fffeff2d972 5 (anonymous namespace)::pushTriangle carve-util.cc 735 0x64d0c3d 6 carve_triangulatePoly carve-util.cc 772 0x64d0d53 7 carve_addMesh carve-capi.cc 654 0x64974ee 8 carve_mesh_from_dm MOD_boolean_util.c 701 0x260c1af 9 NewBooleanDerivedMesh MOD_boolean_util.c 760 0x260c3e5 10 applyModifier_carve MOD_boolean.c 408 0x25ce412 11 applyModifier MOD_boolean.c 455 0x25ce4c5 12 modwrap_applyModifier modifier.c 770 0x2b5f23b 13 mesh_calc_modifiers DerivedMesh.c 2082 0x29f637a 14 mesh_build_data DerivedMesh.c 2653 0x29f84b9 15 makeDerivedMesh DerivedMesh.c 2750 0x29f8884 16 BKE_object_handle_data_update object_update.c 189 0x2b94dcb 17 BKE_object_handle_update_ex object.c 2659 0x2b8b284 18 scene_update_object_func scene.c 1586 0x2be81f4 19 task_scheduler_thread_run task.c 441 0x2f49c0f 20 start_thread 0x7ffff04ec61b ... <More> ``` I noticed @Sergey fixed some stuff here already in 34c7fd1a11, so could you have a look?

Changed status from 'Open' to: 'Resolved'

Changed status from 'Open' to: 'Resolved'

The issue was caused by some precision issue inside Carve itself.

Since we've got BMesh solver which is much easier for us to maintain, we've removed Carve solver now. So this bug should no longer happen!

The issue was caused by some precision issue inside Carve itself. Since we've got BMesh solver which is much easier for us to maintain, we've removed Carve solver now. So this bug should no longer happen!
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#53246
No description provided.