View Issue Details

IDProjectCategoryView StatusLast Update
0001956FreeCADBugpublic2015-12-27 10:45
Reporternormandc Assigned Towmayer  
PrioritynormalSeverityblockReproducibilityalways
Status closedResolutionfixed 
Fixed in Version0.16 
Summary0001956: FreeCAD 0.14.370x hangs when attempting to edit sketch containing ellipse
DescriptionThe Sketcher Ellipse was added to FreeCAD after release of 0.14.370x. Hence it is not supported in the 0.14 branch. But currently, if a user attempts to open in FreeCAD 0.14 a file created in 0.15.4xxx and containing an ellipse in a sketch, either of two things happens:

- FreeCAD hangs if the user attempts to edit the sketch
- In some cases, FreeCAD crashes upon opening the file.

Both cases are IMHO undesirable. It is quite possible that some users will not update FreeCAD for some time after the 0.15 release.
Steps To Reproduce1. Open FreeCAD 0.14.370x
2. Open attached file (sketcher-ellipse.fcstd)
3. Edit the sketch
4. FreeCAD hangs after a few seconds.

I was not able to get a backtrace. The terminal in gdb mode is unresponsive until the FreeCAD process is terminated.
Additional InformationThe FreeCAD file provided in this forum topic crashes FreeCAD 0.14.3705 upon opening it:
http://forum.freecadweb.org/viewtopic.php?f=3&t=9657#p78322

OS: Ubuntu 14.04.1 LTS
Word size: 64-bit
Version: 0.14.3705 (Git)
Branch: FreeCAD-0-14
Hash: f25e6e4716fb63ef3ac618ce9e552761bbc1b4b1
Python version: 2.7.6
Qt version: 4.8.6
Coin version: 4.0.0a
SoQt version: 1.6.0a
OCC version: 6.7.1

TagsFCStd forward compatibility
FreeCAD Information

Activities

normandc

2015-02-08 22:47

manager  

sketcher-ellipse.fcstd (Attachment missing)

normandc

2015-02-08 22:48

manager  

dab_spire.fcstd (Attachment missing)

normandc

2015-02-08 22:50

manager   ~0005770

backtrace for dab_spire.fcstd:

#0 0x0000000000000000 in ?? ()
#1 0x00007fff65f74403 in Part::PropertyGeometryList::Restore(Base::XMLReader&)
    ()
   from /home/user/freecad-releases-0-14-build/Mod/Part/Part.so
0000002 0x00007ffff7077214 in App::PropertyContainer::Restore(Base::XMLReader&) ()
   from /home/user/freecad-releases-0-14-build/lib/libFreeCADApp.so
0000003 0x00007ffff702c0ee in App::Document::readObjects(Base::XMLReader&) ()
   from /home/user/freecad-releases-0-14-build/lib/libFreeCADApp.so
0000004 0x00007ffff7031573 in App::Document::Restore(Base::XMLReader&) ()
   from /home/user/freecad-releases-0-14-build/lib/libFreeCADApp.so
0000005 0x00007ffff7032902 in App::Document::restore() ()
   from /home/user/freecad-releases-0-14-build/lib/libFreeCADApp.so
0000006 0x00007ffff70ac88b in App::Application::openDocument(char const*) ()
   from /home/user/freecad-releases-0-14-build/lib/libFreeCADApp.so
0000007 0x00007ffff70bcfa0 in App::Application::sOpenDocument(_object*, _object*, _object*) ()
   from /home/user/freecad-releases-0-14-build/lib/libFreeCADApp.so

wmayer

2015-12-27 10:42

administrator   ~0006640

The problem is that FreeCAD doesn't check if the read-in constraint and/or geometry type are supported by this version. This leads to an endless loop as soon as the user tries to edit the sketch. There the problematic part is ViewProviderSketch::draw() and its continuous call of "goto Restart".

To make FreeCAD upward compatible the solution is to check constraint and geometry types when reading in a project file whether it's supported by the sketcher. If not, it must be filtered out.

Now, it doesn't make sense to fix version 0.14 as 0.15 is out for a long time. However, the problem basically still exists in current developer version. So, it makes most sense to fix it in the master branch.

Related Changesets

FreeCAD: master 462ec492

2015-12-27 11:44:47

wmayer

Details Diff
+ fixes 0001956: FreeCAD 0.14.370x hangs when attempting to edit sketch containing ellipse Affected Issues
0001956
mod - src/Mod/Sketcher/App/Constraint.h Diff File
mod - src/Mod/Sketcher/App/PropertyConstraintList.cpp Diff File
mod - src/Mod/Sketcher/App/SketchObject.cpp Diff File
mod - src/Mod/Sketcher/App/SketchObject.h Diff File
mod - src/Mod/Sketcher/Gui/ViewProviderSketch.cpp Diff File

Issue History

Date Modified Username Field Change
2015-02-08 22:47 normandc New Issue
2015-02-08 22:47 normandc File Added: sketcher-ellipse.fcstd
2015-02-08 22:48 normandc File Added: dab_spire.fcstd
2015-02-08 22:50 normandc Note Added: 0005770
2015-02-09 12:56 shoogen Tag Attached: FCStd forward compatibility
2015-12-27 10:42 wmayer Note Added: 0006640
2015-12-27 10:45 wmayer Changeset attached => FreeCAD Master master 462ec492
2015-12-27 10:45 wmayer Assigned To => wmayer
2015-12-27 10:45 wmayer Status new => closed
2015-12-27 10:45 wmayer Resolution open => fixed
2015-12-27 10:45 wmayer Fixed in Version => 0.16