Deleting tip in a Body with a Part fusion on the top crashes

About the development of the Part Design module/workbench. PLEASE DO NOT POST HELP REQUESTS HERE!
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Post Reply
Premik
Posts: 10
Joined: Sat Aug 19, 2017 9:50 am

Deleting tip in a Body with a Part fusion on the top crashes

Post by Premik »

  • Load the attached Crash3.FCStd file.
  • Navigate to the "Fusion/Body" and delete the last "Pocket1". -> crash.
Pocket1.png
Pocket1.png (9.12 KiB) Viewed 1403 times

Code: Select all

OS: "Arch Linux"
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.12364 (Git)
Build type: Debug
Branch: master
Hash: 5632f17d813ca74487a045416c7937fcc9103fe3
Python version: 2.7.14
Qt version: 5.9.1
Coin version: 3.1.3
OCC version: 6.9.1.oce-0.18
Locale: English/UnitedStates (en_US)


Note:
  • Setting Tip manually to a different primitive or removing the topmost Union-Fusion beforehand prevents the crash.
  • I managed to get to this state by removing multiple primitives before. I can attach the very original file too if it would help.
  • It appears the Pocket1's base is not the Pad1 but some other primitive I've deleted earlier. But I don't see where I can change a pad's base now. Not sure if this is related to the crash or not.
Backtrace

Code: Select all

Thread 1 "FreeCAD" received signal SIGSEGV, Segmentation fault.
0x00007fffbdce03e6 in BOPDS_DS::Init() () from /opt/oce/lib/libTKBO.so.11


#0  0x00007fffbdce03e6 in BOPDS_DS::Init() () from /opt/oce/lib/libTKBO.so.11
#1  0x00007fffbdd49d42 in BOPAlgo_PaveFiller::Init() () from /opt/oce/lib/libTKBO.so.11
#2  0x00007fffbdd49a91 in BOPAlgo_PaveFiller::PerformInternal() () from /opt/oce/lib/libTKBO.so.11
#3  0x00007fffbdd49992 in BOPAlgo_PaveFiller::Perform() () from /opt/oce/lib/libTKBO.so.11
#4  0x00007fffbdcd5d5e in BRepAlgoAPI_BooleanOperation::Build() () from /opt/oce/lib/libTKBO.so.11
#5  0x00007fffc34519d2 in Part::MultiFuse::execute (this=0x5555596d7b10) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/Mod/Part/App/FeaturePartFuse.cpp:147
#6  0x00007ffff6c82ec4 in App::DocumentObject::recompute (this=0x5555596d7b10) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/App/DocumentObject.cpp:83
#7  0x00007fffc346adec in Part::Feature::recompute (this=<optimized out>) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/Mod/Part/App/PartFeature.cpp:83
#8  0x00007ffff6c5035c in App::Document::_recomputeFeature (this=this@entry=0x55555804d060, Feat=0x5555596d7b10) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/App/Document.cpp:2306
#9  0x00007ffff6c5557f in App::Document::recompute (this=0x55555804d060) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/App/Document.cpp:2205
#10 0x00007ffff6cabc35 in App::DocumentPy::recompute (this=this@entry=0x555555c87950, args=<optimized out>) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/App/DocumentPyImp.cpp:408
#11 0x00007ffff6cabdb8 in App::DocumentPy::staticCallback_recompute (self=0x555555c87958, args=<optimized out>) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/App/DocumentPy.cpp:1718
#12 0x00007ffff6476449 in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0
#13 0x00007ffff64d5886 in PyEval_EvalCodeEx () from /usr/lib/libpython2.7.so.1.0
#14 0x00007ffff64eb05a in PyEval_EvalCode () from /usr/lib/libpython2.7.so.1.0
#15 0x00007ffff64f27f1 in run_mod () from /usr/lib/libpython2.7.so.1.0
#16 0x00007ffff64f4588 in PyRun_StringFlags () from /usr/lib/libpython2.7.so.1.0
#17 0x00007ffff688798a in Base::InterpreterSingleton::runString[abi:cxx11](char const*) (this=<optimized out>, sCmd=0x55555981c7d8 "App.getDocument(\"Crash3\").recompute()") at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/Base/Interpreter.cpp:232
#18 0x00007ffff737bfea in Gui::Command::doCommand (eType=eType@entry=Gui::Command::Doc, sCmd=sCmd@entry=0x7ffff7a1eb70 "App.getDocument(\"%s\").recompute()") at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/Gui/Command.cpp:475
#19 0x00007ffff738bb32 in StdCmdDelete::activated (this=<optimized out>, iMsg=<optimized out>) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/Gui/CommandDoc.cpp:1162
#20 0x00007ffff738084b in Gui::Command::invoke (this=0x555555a549f0, i=0) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/Gui/Command.cpp:300
#21 0x00007ffff570e766 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQt5Core.so.5
#22 0x00007ffff5c85523 in QAction::triggered(bool) () from /usr/lib/libQt5Widgets.so.5
#23 0x00007ffff5c87d46 in QAction::activate(QAction::ActionEvent) () from /usr/lib/libQt5Widgets.so.5
#24 0x00007ffff5c88626 in QAction::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#25 0x00007ffff5c8be2c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#26 0x00007ffff5c93906 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#27 0x00007ffff734f2d9 in Gui::GUIApplication::notify (this=0x7fffffffd030, receiver=0x555557baa640, event=0x7fffffffc8d0) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/Gui/GuiApplication.cpp:91
#28 0x00007ffff56debb0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#29 0x00007fffefe800e9 in QShortcutMap::dispatchEvent(QKeyEvent*) () from /usr/lib/libQt5Gui.so.5
#30 0x00007fffefe801be in QShortcutMap::tryShortcut(QKeyEvent*) () from /usr/lib/libQt5Gui.so.5
#31 0x00007fffefe2dd6d in QWindowSystemInterface::handleShortcutEvent(QWindow*, unsigned long, int, QFlags<Qt::KeyboardModifier>, unsigned int, unsigned int, unsigned int, QString const&, bool, unsigned short) () from /usr/lib/libQt5Gui.so.5
#32 0x00007fffefe4db98 in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) () from /usr/lib/libQt5Gui.so.5
#33 0x00007fffefe52d06 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib/libQt5Gui.so.5
#34 0x00007fffefe2a48c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Gui.so.5
#35 0x00007fffe5045ce1 in ?? () from /usr/lib/libQt5XcbQpa.so.5
#36 0x00007fffee805a57 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#37 0x00007fffee805c88 in ?? () from /usr/lib/libglib-2.0.so.0
#38 0x00007fffee805d1c in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#39 0x00007ffff5739041 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#40 0x00007ffff56dcfdb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#41 0x00007ffff56e6028 in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
#42 0x00007ffff730105d in Gui::Application::runApplication () at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/Gui/Application.cpp:1895
#43 0x0000555555556fd3 in main (argc=<optimized out>, argv=<optimized out>) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/Main/MainGui.cpp:247
I've just noticed opening Tools/Dependency graph on the same file crashes instantly too. But with a different trace:

Code: Select all


Thread 1 "FreeCAD" received signal SIGSEGV, Segmentation fault.
std::__detail::_List_node_base::_M_hook (this=0x5555598810f0, __position=__position@entry=0x48) at /build/gcc/src/gcc/libstdc++-v3/src/c++98/list.cc:131


#0  std::__detail::_List_node_base::_M_hook (this=0x5555598810f0, __position=__position@entry=0x48) at /build/gcc/src/gcc/libstdc++-v3/src/c++98/list.cc:131
#1  0x00007ffff6c6a7cd in std::__cxx11::list<boost::subgraph<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::property<boost::vertex_attribute_t, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::no_property>, boost::property<boost::edge_index_t, int, boost::property<boost::edge_attribute_t, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::no_property> >, boost::property<boost::graph_name_t, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::property<boost::graph_graph_attribute_t, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::property<boost::graph_vertex_attribute_t, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::property<boost::graph_edge_attribute_t, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::no_property> > > >, boost::listS> >*, std::allocator<boost::subgraph<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::property<boost::vertex_attribute_t, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::no_property>, boost::property<boost::edge_index_t, int, boost::property<boost::edge_attribute_t, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::no_property> >, boost::property<boost::graph_name_t, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::property<boost::graph_graph_attribute_t, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::property<boost::graph_vertex_attribute_t, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::property<boost::graph_edge_attribute_t, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::ba
::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::no_property> > > >, boost::listS> >*, std::allocator<boost::subgraph<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::property<boost::vertex_attribute_t, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::no_property>, boost::property<boost::edge_index_t, int, boost::property<boost::edge_attribute_t, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::no_property> >, boost::property<boost::graph_name_t, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::property<boost::graph_graph_attribute_t, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::property<boost::graph_vertex_attribute_t, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::property<boost::graph_edge_attribute_t, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::no_property> > > >, boost::listS> >*> >::push_back (__x=<optimized out>, this=0x48) at /usr/include/c++/7.2.0/bits/stl_list.h:1123
#3  boost::subgraph<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::property<boost::vertex_attribute_t, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::no_property>, boost::property<boost::edge_index_t, int, boost::property<boost::edge_attribute_t, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::no_property> >, boost::property<boost::graph_name_t, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::property<boost::graph_graph_attribute_t, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::property<boost::graph_vertex_attribute_t, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::property<boost::graph_edge_attribute_t, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std---Type <return> to continue, or q <return> to quit---
::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::no_property> > > >, boost::listS> >::create_subgraph (this=0x0) at /usr/include/boost/graph/subgraph.hpp:175
#4  0x00007ffff6c53567 in App::Document::GraphCreator::addExpressionSubgraphIfNeeded (this=this@entry=0x7fffffff9f20, obj=0x555559778fd0, CSsubgraphs=CSsubgraphs@entry=true) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/App/Document.cpp:351
#5  0x00007ffff6c57d33 in App::Document::GraphCreator::addSubgraphs (this=0x7fffffff9f20) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/App/Document.cpp:537
#6  App::Document::GraphCreator::build (this=0x7fffffff9f20) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/App/Document.cpp:257
#7  App::Document::GraphCreator::GraphCreator (_d=<optimized out>, this=0x7fffffff9f20) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/App/Document.cpp:246
#8  App::Document::exportGraphviz (this=this@entry=0x555558043290, out=...) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/App/Document.cpp:801
#9  0x00007ffff764d8de in Gui::GraphvizView::updateSvgItem (this=this@entry=0x55555991f5f0, doc=...) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/Gui/GraphvizView.cpp:266
#10 0x00007ffff764ed9f in Gui::GraphvizView::GraphvizView (this=0x55555991f5f0, _doc=..., parent=<optimized out>) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/Gui/GraphvizView.cpp:183
#11 0x00007ffff7384bc5 in StdCmdExportGraphviz::activated (this=<optimized out>, iMsg=<optimized out>) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/Gui/CommandDoc.cpp:383
#12 0x00007ffff738084b in Gui::Command::invoke (this=0x555555a525c0, i=0) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/Gui/Command.cpp:300
#13 0x00007ffff570e766 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQt5Core.so.5
#14 0x00007ffff5c85523 in QAction::triggered(bool) () from /usr/lib/libQt5Widgets.so.5
#15 0x00007ffff5c87d46 in QAction::activate(QAction::ActionEvent) () from /usr/lib/libQt5Widgets.so.5
#16 0x00007ffff5de74f5 in ?? () from /usr/lib/libQt5Widgets.so.5
#17 0x00007ffff5deea3c in ?? () from /usr/lib/libQt5Widgets.so.5
#18 0x00007ffff5def8a4 in QMenu::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/libQt5Widgets.so.5
#19 0x00007ffff5ccdd48 in QWidget::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#20 0x00007ffff5df1b34 in QMenu::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#21 0x00007ffff5c8be2c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#22 0x00007ffff5c93e81 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#23 0x00007ffff734f2d9 in Gui::GUIApplication::notify (this=0x7fffffffd030, receiver=0x555557c1e130, event=0x7fffffffc390) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/Gui/GuiApplication.cpp:91
#24 0x00007ffff56debb0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#25 0x00007ffff5c92e0a in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/libQt5Widgets.so.5
#26 0x00007ffff5ce8c62 in ?? () from /usr/lib/libQt5Widgets.so.5
#27 0x00007ffff5ceb671 in ?? () from /usr/lib/libQt5Widgets.so.5
#28 0x00007ffff5c8be2c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#29 0x00007ffff5c93906 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#30 0x00007ffff734f2d9 in Gui::GUIApplication::notify (this=0x7fffffffd030, receiver=0x7fffdc00d2e0, event=0x7fffffffc990) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/Gui/GuiApplication.cpp:91
#31 0x00007ffff56debb0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#32 0x00007fffefe511c4 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /usr/lib/libQt5Gui.so.5
#33 0x00007fffefe52d26 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib/libQt5Gui.so.5
#34 0x00007fffefe2a48c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Gui.so.5
#35 0x00007fffe5045ce1 in ?? () from /usr/lib/libQt5XcbQpa.so.5
#36 0x00007fffee805a57 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#37 0x00007fffee805c88 in ?? () from /usr/lib/libglib-2.0.so.0
#38 0x00007fffee805d1c in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#39 0x00007ffff5739041 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#40 0x00007ffff56dcfdb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#41 0x00007ffff56e6028 in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
#42 0x00007ffff730105d in Gui::Application::runApplication () at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/Gui/Application.cpp:1895
#43 0x0000555555556fd3 in main (argc=<optimized out>, argv=<optimized out>) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/Main/MainGui.cpp:247
Attachments
Crash3.FCStd
(24.62 KiB) Downloaded 41 times
wmayer
Founder
Posts: 20309
Joined: Thu Feb 19, 2009 10:32 am
Contact:

Re: Deleting tip in a Body with a Part fusion on the top crashes

Post by wmayer »

I've just noticed opening Tools/Dependency graph on the same file crashes instantly too. But with a different trace:
Confirmed and fixed with git commit 92ec59d
wmayer
Founder
Posts: 20309
Joined: Thu Feb 19, 2009 10:32 am
Contact:

Re: Deleting tip in a Body with a Part fusion on the top crashes

Post by wmayer »

Navigate to the "Fusion/Body" and delete the last "Pocket1". -> crash.
Confirmed and fixed with git commit 5f86bfc

The crash happened because when deleting the pocket1 the tip of the body becomes a null shape. Now the null shape was passed to the occ algorithms which don't check its validity beforehand and just segfaults later. So, the calling instance (here MultiFuse) must verify the shapes first.
Premik
Posts: 10
Joined: Sat Aug 19, 2017 9:50 am

Re: Deleting tip in a Body with a Part fusion on the top crashes

Post by Premik »

Thanks. I can confirm both issues are fixed.

In the meantime I found another similar one in the Dependency graph. I've attached an earlier version of the file above. Which was before I deleted multiple objects to narrow the original issue down.
Open the Crash.FCStd file, Tools/Dependecy graph => Assertion failed
Is this just because I have a debug build?

Code: Select all

FreeCAD: /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/App/Document.cpp:305: void App::Document::exportGraphviz(std::ostream&) const::GraphCreator::setGraphAttributes(const App::DocumentObject*): Assertion `GraphList[obj] != 0' failed.

Thread 1 "FreeCAD" received signal SIGABRT, Aborted.
0x00007ffff4b2b8a0 in raise () from /usr/lib/libc.so.6
(gdb) backtrace 
#0  0x00007ffff4b2b8a0 in raise () from /usr/lib/libc.so.6
#1  0x00007ffff4b2cf09 in abort () from /usr/lib/libc.so.6
#2  0x00007ffff4b240dc in __assert_fail_base () from /usr/lib/libc.so.6
#3  0x00007ffff4b24153 in __assert_fail () from /usr/lib/libc.so.6
#4  0x00007ffff6c505f6 in App::Document::GraphCreator::setGraphAttributes (this=<optimized out>, obj=<optimized out>) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/App/Document.cpp:305
#5  0x00007ffff6c51a74 in App::Document::GraphCreator::addExpressionSubgraphIfNeeded (this=this@entry=0x7fffffff9f50, obj=<optimized out>, CSsubgraphs=CSsubgraphs@entry=true) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/App/Document.cpp:382
#6  0x00007ffff6c560bb in App::Document::GraphCreator::addSubgraphs (this=0x7fffffff9f50) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/App/Document.cpp:544
#7  App::Document::GraphCreator::build (this=0x7fffffff9f50) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/App/Document.cpp:257
#8  App::Document::GraphCreator::GraphCreator (_d=<optimized out>, this=0x7fffffff9f50) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/App/Document.cpp:246
#9  App::Document::exportGraphviz (this=this@entry=0x555558031ef0, out=...) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/App/Document.cpp:808
#10 0x00007ffff764d6ce in Gui::GraphvizView::updateSvgItem (this=this@entry=0x55555970afc0, doc=...) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/Gui/GraphvizView.cpp:266
#11 0x00007ffff764eb8f in Gui::GraphvizView::GraphvizView (this=0x55555970afc0, _doc=..., parent=<optimized out>) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/Gui/GraphvizView.cpp:183
#12 0x00007ffff7384375 in StdCmdExportGraphviz::activated (this=<optimized out>, iMsg=<optimized out>) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/Gui/CommandDoc.cpp:383
#13 0x00007ffff737fffb in Gui::Command::invoke (this=0x555555a545b0, i=0) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/Gui/Command.cpp:300
#14 0x00007ffff570bc16 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQt5Core.so.5
#15 0x00007ffff5c83623 in QAction::triggered(bool) () from /usr/lib/libQt5Widgets.so.5
#16 0x00007ffff5c85e46 in QAction::activate(QAction::ActionEvent) () from /usr/lib/libQt5Widgets.so.5
#17 0x00007ffff5e091e5 in ?? () from /usr/lib/libQt5Widgets.so.5
#18 0x00007ffff5e1088c in ?? () from /usr/lib/libQt5Widgets.so.5
#19 0x00007ffff5e11794 in QMenu::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/libQt5Widgets.so.5
#20 0x00007ffff5cc9a08 in QWidget::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#21 0x00007ffff5e13a9c in QMenu::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#22 0x00007ffff5c89f2c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#23 0x00007ffff5c91f81 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#24 0x00007ffff734e859 in Gui::GUIApplication::notify (this=0x7fffffffd070, receiver=0x555557c694c0, event=0x7fffffffc3d0) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/Gui/GuiApplication.cpp:91
#25 0x00007ffff56dc060 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#26 0x00007ffff5c90f0a in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/libQt5Widgets.so.5
#27 0x00007ffff5ce4ab2 in ?? () from /usr/lib/libQt5Widgets.so.5
#28 0x00007ffff5ce74c1 in ?? () from /usr/lib/libQt5Widgets.so.5
#29 0x00007ffff5c89f2c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#30 0x00007ffff5c91a06 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#31 0x00007ffff734e859 in Gui::GUIApplication::notify (this=0x7fffffffd070, receiver=0x7fffdc00acc0, event=0x7fffffffc9d0) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/Gui/GuiApplication.cpp:91
#32 0x00007ffff56dc060 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#33 0x00007fffef8333d4 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /usr/lib/libQt5Gui.so.5
#34 0x00007fffef834f36 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib/libQt5Gui.so.5
#35 0x00007fffef80c48c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Gui.so.5
#36 0x00007fffe4a264b1 in ?? () from /usr/lib/libQt5XcbQpa.so.5
#37 0x00007fffee204270 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#38 0x00007fffee205f69 in ?? () from /usr/lib/libglib-2.0.so.0
#39 0x00007fffee205fae in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#40 0x00007ffff5736cd1 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#41 0x00007ffff56da48b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#42 0x00007ffff56e34d8 in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
#43 0x00007ffff730054d in Gui::Application::runApplication () at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/Gui/Application.cpp:1895
#44 0x000055555555706c in main (argc=<optimized out>, argv=<optimized out>) at /tmp/makepkg/freecad-qt5-git/src/freecad-qt5-git/src/Main/MainGui.cpp:251

Code: Select all

OS: "Arch Linux"
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.12410 (Git)
Build type: Debug
Branch: master
Hash: 9aab91098160f69406d52741d43f717c05f985d5
Python version: 2.7.14
Qt version: 5.9.2
Coin version: 3.1.3
OCC version: 6.9.1.oce-0.18
Locale: English/UnitedStates (en_US)
Attachments
Crash.FCStd
(49.89 KiB) Downloaded 41 times
Post Reply