View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0001956||FreeCAD||Bug||public||2015-02-08 22:47||2015-12-27 10:45|
|Target Version||Fixed in Version||0.16|
|Summary||0001956: FreeCAD 0.14.370x hangs when attempting to edit sketch containing ellipse|
|Description||The 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 Reproduce||1. 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 Information||The FreeCAD file provided in this forum topic crashes FreeCAD 0.14.3705 upon opening it:|
OS: Ubuntu 14.04.1 LTS
Word size: 64-bit
Version: 0.14.3705 (Git)
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
|Tags||FCStd forward compatibility|
backtrace for dab_spire.fcstd:
#0 0x0000000000000000 in ?? ()
#1 0x00007fff65f74403 in Part::PropertyGeometryList::Restore(Base::XMLReader&)
#2 0x00007ffff7077214 in App::PropertyContainer::Restore(Base::XMLReader&) ()
#3 0x00007ffff702c0ee in App::Document::readObjects(Base::XMLReader&) ()
#4 0x00007ffff7031573 in App::Document::Restore(Base::XMLReader&) ()
#5 0x00007ffff7032902 in App::Document::restore() ()
#6 0x00007ffff70ac88b in App::Application::openDocument(char const*) ()
#7 0x00007ffff70bcfa0 in App::Application::sOpenDocument(_object*, _object*, _object*) ()
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.
|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|