View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0001435||FreeCAD||Bug||public||2014-02-23 09:36||2014-03-03 16:19|
|OS||Linux (debian wheezy)|
|Summary||0001435: Crash in boolean with Part::Prism object|
|Description||After 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
|Tags||No tags attached.|
||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.|
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.
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.
||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.|
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.
I'm using oce 0.15 with a 0.16-dev branding
i removed the final doc.recompute() in importCSG, to inspect the document before the crash.
||@tanderson: the commit doesn't make a difference|
||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.|
||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.|
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.
||But if i touch every elements. It crashes at the next recompute.|
||i found out that "bfuse" resembles the the boolean. I now get a SIGSEGV in DRAWEXE as well.|
||So, it's clearly a OCC bug. Should we close this as "unfixable" then?|
|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|