View Issue Details

IDProjectCategoryView StatusLast Update
0001435FreeCADBugpublic2014-03-03 16:19
Reportershoogen Assigned Toshoogen  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionnot fixable 
OSLinux (debian wheezy) 
Product Versiontrunk 
Summary0001435: Crash in boolean with Part::Prism object
DescriptionAfter importing the attached .scad file, FreeCAD crashes in the recompute.

Additional Information#0 0x00007fff88f1d50b in BOPCol_Array1<BOPDS_InterfVE>::Append() () from /usr/local/lib/libTKBO.so.7
#1 0x00007fff88f75b16 in BOPAlgo_PaveFiller::ForceInterfVE(int, handle_BOPDS_PaveBlock&, NCollection_Map<Handle_BOPDS_PaveBlock, TColStd_MapTransientHasher>&) () from /usr/local/lib/libTKBO.so.7
0000002 0x00007fff88f7a62b in BOPAlgo_PaveFiller::PerformEE() () from /usr/local/lib/libTKBO.so.7
0000003 0x00007fff88f5bd26 in BOPAlgo_PaveFiller::Perform() () from /usr/local/lib/libTKBO.so.7
0000004 0x00007fff88ee4081 in BRepAlgoAPI_BooleanOperation::Build() () from /usr/local/lib/libTKBO.so.7
0000005 0x00007fff88eead31 in BRepAlgoAPI_Fuse::BRepAlgoAPI_Fuse(TopoDS_Shape const&, TopoDS_Shape const&) () from /usr/local/lib/libTKBO.so.7
0000006 0x00007fff8bf39ecb in Part::Fuse::makeOperation (this=0x46d51d0, base=...,
    tool=...) at free-cad/src/Mod/Part/App/FeaturePartFuse.cpp:50
0000007 0x00007fff8bf2e7e1 in Part::Boolean::execute (this=0x46d51d0) at free-cad/src/Mod/Part/App/FeaturePartBoolean.cpp:82
0000008 0x00007ffff6c33e87 in App::DocumentObject::recompute (this=0x46d51d0) at free-cad/src/App/DocumentObject.cpp:85
0000009 0x00007fff8bf4d98f in Part::Feature::recompute (this=0x46d51d0) at free-cad/src/Mod/Part/App/PartFeature.cpp:81
0000010 0x00007ffff6bedffa in App::Document::_recomputeFeature (this=0x3812a70,
    Feat=0x46d51d0) at free-cad/src/App/Document.cpp:1347
0000011 0x00007ffff6bedcaa in App::Document::recompute (this=0x3812a70) at free-cad/src/App/Document.cpp:1314
0000012 0x00007ffff6c5361c in App::DocumentPy::recompute (this=0xc38a80, args=0x7fffe7a15050) at free-cad/src/App/DocumentPyImp.cpp:319
0000013 0x00007ffff6c4f212 in App::DocumentPy::staticCallback_recompute (
    self=0xc38a88, args=0x7fffe7a15050) at fc-build/src/App/DocumentPy.cpp:1408
0000014 0x00007ffff610e422 in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0
TagsNo tags attached.
FreeCAD Information

Activities

shoogen

2014-02-23 09:36

developer  

captive_nut.scad (Attachment missing)

wmayer

2014-02-23 10:02

administrator   ~0004271

Isn't this related to 0001429? Did you update to the latest sources which fixed the bug there? When loading your file I don't get a crash.

shoogen

2014-02-23 10:15

developer   ~0004272

recreating the same geometry from a python script does not reproduce the problem.
the fix should be included by i only did an incremental build.

shoogen

2014-02-23 13:09

developer   ~0004273

I did clean rebuild of oce and FreeCAD. The problem persists.
Video of crashing http://youtu.be/1CbspatborQ
Video of stepping over the recompute the first time http://youtu.be/kyvG1J7zd9Q
To me this looks like an ugly race condition.

wmayer

2014-02-23 15:54

administrator   ~0004274

When I load the file the refresh button isn't active. I have to modify one of the properties of the input shapes to make it active. And when running it I don't get a crash but on the other hand the output is always broken. What is your OCC version? Mine is 6.5.0.

tanderson69

2014-02-23 16:25

developer   ~0004275

Shoogen: pull down tanderson-test-BRepPrimAPI_MakePrism from the sourceforge repo. You can just cherry-pick the last commit to get the change. git cherry-pick 3d41ca27b966deb4fd922823c17272c39f57f419. see if that makes a difference.

I did some more research and the results are in tests.zip. Files with "Old" in the name were constructed before the above commit. Files with "New" in the name were constructed after the commit. You don't have to look at the files, but look at the log.txt(from drawexe) and notice the quantity of shapes. It looks like some kind of sharing of the seed face. Thoughts?

I am assuming this bug report is about the same geometry in the forum post here http://forum.freecadweb.org/viewtopic.php?f=10&t=2389&start=80#p47127 If not ignore what I am about to say. I took the bottom face of your prism and extruded it inside drawexe using the copy parameter. Took that result and brought it back into freecad and did the union successfully. The ouput didn't pass the check geometry, but I was seeing some tweaked numbers on the boolean input solids. Like the float to double issue.

tanderson69

2014-02-23 16:26

developer  

Tests.zip (Attachment missing)

shoogen

2014-02-23 16:40

developer   ~0004278

I'm using oce 0.15 with a 0.16-dev branding
2de158fd270e5a582b0e92588e7a227efd50c584

i removed the final doc.recompute() in importCSG, to inspect the document before the crash.

shoogen

2014-02-23 17:26

developer   ~0004280

@tanderson: the commit doesn't make a difference

tanderson69

2014-02-23 19:49

developer   ~0004282

Shoogen: This looks quite different from what we where talking about on the corrupt model forum thread. Sorry to pollute this bug report. I will take my test results elsewhere.

wmayer

2014-02-24 14:10

administrator   ~0004287

This can be hardly a race condition -- at least not in the recompute -- because this is completely done sequentially. I checked your callstack but I cannot find BOPAlgo_PaveFiller::ForceInterfVE in my OCC version so it must be something new. So, it could also be a regression in the new OCC/OCE version.

shoogen

2014-02-24 14:40

developer  

captivenut.py (Attachment missing)

shoogen

2014-02-24 15:03

developer   ~0004289

My Problem is that i can only repoduce this problem from the CSG importer. I tried to issue the same commands from a macro and the python console. But i can not reproduce the Problem this way.

Maybe race condition the wrong word. Let's call it side effect.

now I got "Invalid MultiConnexity" and "Invalid Imbrication Of Wires" after stepping over the recompute method.

shoogen

2014-02-24 15:26

developer   ~0004293

But if i touch every elements. It crashes at the next recompute.

shoogen

2014-02-25 11:31

developer   ~0004301

i found out that "bfuse" resembles the the boolean. I now get a SIGSEGV in DRAWEXE as well.

wmayer

2014-02-25 11:37

administrator   ~0004302

So, it's clearly a OCC bug. Should we close this as "unfixable" then?

shoogen

2014-03-03 16:19

developer   ~0004366

http://tracker.dev.opencascade.org/view.php?id=24678

Issue History

Date Modified Username Field Change
2014-02-23 09:36 shoogen New Issue
2014-02-23 09:36 shoogen File Added: captive_nut.scad
2014-02-23 10:02 wmayer Note Added: 0004271
2014-02-23 10:15 shoogen Note Added: 0004272
2014-02-23 13:09 shoogen Note Added: 0004273
2014-02-23 15:54 wmayer Note Added: 0004274
2014-02-23 16:25 tanderson69 Note Added: 0004275
2014-02-23 16:26 tanderson69 File Added: Tests.zip
2014-02-23 16:40 shoogen Note Added: 0004278
2014-02-23 17:26 shoogen Note Added: 0004280
2014-02-23 19:49 tanderson69 Note Added: 0004282
2014-02-24 14:10 wmayer Note Added: 0004287
2014-02-24 14:40 shoogen File Added: captivenut.py
2014-02-24 15:03 shoogen Note Added: 0004289
2014-02-24 15:26 shoogen Note Added: 0004293
2014-02-25 11:31 shoogen Note Added: 0004301
2014-02-25 11:37 wmayer Note Added: 0004302
2014-02-25 13:31 shoogen Status new => closed
2014-02-25 13:31 shoogen Assigned To => shoogen
2014-02-25 13:31 shoogen Resolution open => not fixable
2014-03-03 16:19 shoogen Note Added: 0004366
2014-03-03 16:19 shoogen Status closed => feedback
2014-03-03 16:19 shoogen Resolution not fixable => reopened
2014-03-03 16:19 shoogen Status feedback => closed
2014-03-03 16:19 shoogen Resolution reopened => not fixable