View Issue Details

IDProjectCategoryView StatusLast Update
0000887DraftBugpublic2012-11-23 19:45
Reporterdarthfrodo Assigned Toyorik  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
PlatformArch LinuxOSGnu/LinuxOS Versionupdated 11/22/12
Fixed in Version0.13 
Summary0000887: Clicking to close b-spline causes seg-fault
DescriptionWhen closing a b-spline in the drafting module by clicking on the first point, the program seg-faults. The error doesn't occur if the spline is closed with the button in the draft command bar, or by pressing 'c'.

This bug also appears in 0.12 Revision 5382
Steps To Reproduce-Create a new document
-Click the 'multipoint b-spline' button in the drafting bar
-Click out two or more points and close it by clicking on the initial point.
Additional InformationOutput to command line:
$ freecad-git
FreeCAD 0.13, Libs: 0.13R1665 (Git)
© Juergen Riegel, Werner Mayer, Yorik van Havre 2001-2011
  ##### #### ### ####
  # # # # # #
  # ## #### #### # # # # #
  #### # # # # # # # ##### # #
  # # #### #### # # # # #
  # # # # # # # # # ## ## ##
  # # #### #### ### # # #### ## ## ##

matplotlib not found, Plot module will be disabled
pycollada not found, collada support will be disabled.
Pick first point:
Pick next point:
Pick next point, or (F)inish or (C)lose:
Pick next point, or (F)inish or (C)lose:
Pick next point, or (F)inish or (C)lose:
Last point has been removed
Spline has been closed
Segmentation fault
$

I've attached a gdb backtrace. Let me know if anything else could be useful.
TagsNo tags attached.
FreeCAD Information

Activities

2012-11-23 06:03

 

backtrace.txt (4,506 bytes)   
(gdb) backtrace 
#0  0x00007ffff0ec3673 in SoAction::traverse(SoNode*) () from /usr/lib/libCoin.so.60
#1  0x00007ffff0fd3677 in SoChildList::traverse(SoAction*, int, int) () from /usr/lib/libCoin.so.60
#2  0x00007ffff109687b in SoGroup::doAction(SoAction*) () from /usr/lib/libCoin.so.60
#3  0x00007ffff10aef4f in SoSeparator::doAction(SoAction*) () from /usr/lib/libCoin.so.60
#4  0x00007ffff7785f4d in Gui::SoFCUnifiedSelection::handleEvent(SoHandleEventAction*) () from /usr/lib/freecad-git/lib/libFreeCADGui.so.2
#5  0x00007ffff0ec36b4 in SoAction::traverse(SoNode*) () from /usr/lib/libCoin.so.60
#6  0x00007ffff0fd3677 in SoChildList::traverse(SoAction*, int, int) () from /usr/lib/libCoin.so.60
#7  0x00007ffff109687b in SoGroup::doAction(SoAction*) () from /usr/lib/libCoin.so.60
#8  0x00007ffff10aef4f in SoSeparator::doAction(SoAction*) () from /usr/lib/libCoin.so.60
#9  0x00007ffff0ec36b4 in SoAction::traverse(SoNode*) () from /usr/lib/libCoin.so.60
#10 0x00007ffff0fd3677 in SoChildList::traverse(SoAction*, int, int) () from /usr/lib/libCoin.so.60
#11 0x00007ffff109687b in SoGroup::doAction(SoAction*) () from /usr/lib/libCoin.so.60
#12 0x00007ffff10aef4f in SoSeparator::doAction(SoAction*) () from /usr/lib/libCoin.so.60
#13 0x00007ffff0ec36b4 in SoAction::traverse(SoNode*) () from /usr/lib/libCoin.so.60
#14 0x00007ffff0ecc618 in SoHandleEventAction::beginTraversal(SoNode*) () from /usr/lib/libCoin.so.60
#15 0x00007ffff0ec4209 in SoAction::apply(SoNode*) () from /usr/lib/libCoin.so.60
#16 0x00007ffff105d080 in SoEventManager::actuallyProcessEvent(SoEvent const*) () from /usr/lib/libCoin.so.60
#17 0x00007ffff1db5b8c in SoQtRenderArea::processSoEvent(SoEvent const*) () from /usr/lib/libSoQt.so.20
#18 0x00007ffff1dda89b in SoQtViewer::processSoEvent(SoEvent const*) () from /usr/lib/libSoQt.so.20
#19 0x00007ffff7627952 in Gui::CADNavigationStyle::processSoEvent(SoEvent const*) () from /usr/lib/freecad-git/lib/libFreeCADGui.so.2
#20 0x00007ffff7715c05 in Gui::NavigationStyle::processEvent(SoEvent const*) () from /usr/lib/freecad-git/lib/libFreeCADGui.so.2
#21 0x00007ffff77c0044 in Gui::View3DInventorViewer::processSoEvent(SoEvent const*) () from /usr/lib/freecad-git/lib/libFreeCADGui.so.2
#22 0x00007ffff1db60d0 in SoQtRenderArea::processEvent(QEvent*) () from /usr/lib/libSoQt.so.20
#23 0x00007ffff77c2171 in Gui::View3DInventorViewer::processEvent(QEvent*) () from /usr/lib/freecad-git/lib/libFreeCADGui.so.2
#24 0x00007ffff1db2dd5 in SoQtGLWidgetP::eventFilter(QObject*, QEvent*) () from /usr/lib/libSoQt.so.20
#25 0x00007ffff5aca736 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#26 0x00007ffff66a905c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#27 0x00007ffff66add6b in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#28 0x00007ffff761664f in Gui::GUIApplication::notify(QObject*, QEvent*) () from /usr/lib/freecad-git/lib/libFreeCADGui.so.2
#29 0x00007ffff5aca5ce in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#30 0x00007ffff66a9ecb in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/libQtGui.so.4
#31 0x00007ffff6724994 in ?? () from /usr/lib/libQtGui.so.4
#32 0x00007ffff6723721 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4
#33 0x00007ffff67498b2 in ?? () from /usr/lib/libQtGui.so.4
#34 0x00007fffee32e845 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#35 0x00007fffee32eb78 in ?? () from /usr/lib/libglib-2.0.so.0
#36 0x00007fffee32ec34 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#37 0x00007ffff5af8736 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#38 0x00007ffff674952e in ?? () from /usr/lib/libQtGui.so.4
#39 0x00007ffff5ac931f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#40 0x00007ffff5ac95a8 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#41 0x00007ffff5ace248 in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#42 0x00007ffff7613cdb in Gui::Application::runApplication() () from /usr/lib/freecad-git/lib/libFreeCADGui.so.2
#43 0x0000000000404003 in ?? ()
#44 0x00007ffff4adf725 in __libc_start_main () from /usr/lib/libc.so.6
#45 0x0000000000405241 in ?? ()

backtrace.txt (4,506 bytes)   

yorik

2012-11-23 11:18

administrator   ~0002577

Ok, I'll look into it...

wmayer

2012-11-23 16:40

administrator   ~0002580

When finish creating the b-spline with a double click in debug mode this message comes up:
Coin warning in SoChildList::traverse(): Detected modification of scene graph layout during action traversal. This is considered to be hazardous and error prone, and we strongly advice you to change your code and/or reorganize your scene graph so that this is not necessary.

I guess that's why it crashes in release mode.

yorik

2012-11-23 19:45

administrator   ~0002582

Ok I committed a fix in a2a7f41 that removes the unwanted scene traversal. That should indeed solve the problem (the scene traversal error message appears in the same conditions as when the OP says the crash occurs). I'll close this bug report, don't hesitate to reopen if the crash still occurs.

Issue History

Date Modified Username Field Change
2012-11-23 06:03 darthfrodo New Issue
2012-11-23 06:03 darthfrodo File Added: backtrace.txt
2012-11-23 11:18 yorik Status new => assigned
2012-11-23 11:18 yorik Assigned To => yorik
2012-11-23 11:18 yorik Note Added: 0002577
2012-11-23 16:40 wmayer Note Added: 0002580
2012-11-23 19:45 yorik Note Added: 0002582
2012-11-23 19:45 yorik Status assigned => closed
2012-11-23 19:45 yorik Resolution open => fixed
2012-11-23 19:45 yorik Fixed in Version => 0.13