Skip to content

Crash when importing tracks #266

@plaes

Description

@plaes

When attempting to import tracks from kicad project, I get following crash, just after tracks have been imported and cleanup starts in the removesubtree() function:

...
polygons done
fetch holes 'holes_wire' from cache
zones done
running time: 5.047sec
running time: 5.153sec
running time: 5.153sec
Program received signal SIGSEGV, Segmentation fault.
#0  /usr/lib/x86_64-linux-gnu/libc.so.6(+0x415c0) [0x7f5f4e2425c0]
#1  0x7f5f521d5cef in Gui::DocumentObjectItem::testStatus(bool, QIcon&, QIcon&) from /app/freecad/lib/libFreeCADGui.so+0x53f
#2  0x7f5f521d7291 in Gui::DocumentItem::testStatus() from /app/freecad/lib/libFreeCADGui.so+0x81
#3  0x7f5f521f29b9 in Gui::TreeWidget::onUpdateStatus() from /app/freecad/lib/libFreeCADGui.so+0x8b9
#4  0x7f5f521f66ba in Gui::TreeWidget::onItemSelectionChanged() from /app/freecad/lib/libFreeCADGui.so+0x18a
#5  /usr/lib/x86_64-linux-gnu/libQt6Core.so.6(+0x21222e) [0x7f5f4ea1222e]
#6  /usr/lib/x86_64-linux-gnu/libQt6Widgets.so.6(+0x569793) [0x7f5f50169793]
#7  /usr/lib/x86_64-linux-gnu/libQt6Core.so.6(+0x21222e) [0x7f5f4ea1222e]
#8  0x7f5f4ec64bfd in QItemSelectionModel::selectionChanged(QItemSelection const&, QItemSelection const&) from /usr/lib/x86_64-linux-gnu/libQt6Core.so.6+0x3d
#9  /usr/lib/x86_64-linux-gnu/libQt6Core.so.6(+0x46f389) [0x7f5f4ec6f389]
#10  /usr/lib/x86_64-linux-gnu/libQt6Core.so.6(+0x21222e) [0x7f5f4ea1222e]
#11  0x7f5f4ec4818a in QAbstractItemModel::rowsAboutToBeInserted(QModelIndex const&, int, int, QAbstractItemModel::QPrivateSignal) from /usr/lib/x86_64-linux-gnu/libQt6Core.so.6+0x5a
#12  0x7f5f4ec55a93 in QAbstractItemModel::beginInsertRows(QModelIndex const&, int, int) from /usr/lib/x86_64-linux-gnu/libQt6Core.so.6+0x133
#13  0x7f5f5016e348 in QTreeWidgetItem::insertChild(int, QTreeWidgetItem*) from /usr/lib/x86_64-linux-gnu/libQt6Widgets.so.6+0x128
#14  0x7f5f521ed341 in Gui::DocumentItem::createNewItem(Gui::ViewProviderDocumentObject const&, QTreeWidgetItem*, int, std::shared_ptr<Gui::DocumentObjectData>) from /app/freecad/lib/libFreeCADGui.so+0x141
#15  0x7f5f521f927e in Gui::TreeWidget::_slotDeleteObject(Gui::ViewProviderDocumentObject const&, Gui::DocumentItem*) from /app/freecad/lib/libFreeCADGui.so+0x29e
#16  0x7f5f51e89748 in boost::signals2::detail::signal_impl<void (Gui::ViewProviderDocumentObject const&), boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (Gui::ViewProviderDocumentObject const&)>, boost::function<void (boost::signals2::connection const&, Gui::ViewProviderDocumentObject const&)>, boost::signals2::mutex>::operator()(Gui::ViewProviderDocumentObject const&) from /app/freecad/lib/libFreeCADGui.so+0x328
#17  0x7f5f51ee4487 in Gui::Document::slotDeletedObject(App::DocumentObject const&) from /app/freecad/lib/libFreeCADGui.so+0x147
#18  0x7f5f51319268 in boost::signals2::detail::signal_impl<void (App::DocumentObject const&), boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (App::DocumentObject const&)>, boost::function<void (boost::signals2::connection const&, App::DocumentObject const&)>, boost::signals2::mutex>::operator()(App::DocumentObject const&) from /app/freecad/lib/libFreeCADApp.so+0x328
#19  0x7f5f512cccb9 in App::Document::removeObject(char const*) from /app/freecad/lib/libFreeCADApp.so+0x119
#20  0x7f5f513acfdb in App::DocumentPy::removeObject(_object*) from /app/freecad/lib/libFreeCADApp.so+0x7b
#21  0x7f5f513ad268 in App::DocumentPy::staticCallback_removeObject(_object*, _object*) from /app/freecad/lib/libFreeCADApp.so+0x28
#22  /usr/lib/x86_64-linux-gnu/libpython3.12.so.1.0(+0x2082a1) [0x7f5f506082a1]
#23  /usr/lib/x86_64-linux-gnu/libpython3.12.so.1.0(_PyObject_MakeTpCall+0x8f) [0x7f5f5056c9bf]
#24  /usr/lib/x86_64-linux-gnu/libpython3.12.so.1.0(_PyEval_EvalFrameDefault+0x67c9) [0x7f5f5077a699]
#25  /app/lib/python3.12/site-packages/PySide6/QtCore.cpython-312-x86_64-linux-gnu.so(+0x28b8c8) [0x7f5f1608b8c8]
#26  0x7f5f4ea038b2 in QObject::event(QEvent*) from /usr/lib/x86_64-linux-gnu/libQt6Core.so.6+0x142
#27  0x7f5f4fda182d in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt6Widgets.so.6+0x8d
#28  0x7f5f51f54040 in Gui::GUIApplication::notify(QObject*, QEvent*) from /app/freecad/lib/libFreeCADGui.so+0xd0
#29  0x7f5f4e9a8048 in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt6Core.so.6+0x168
#30  0x7f5f4e9abc98 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) from /usr/lib/x86_64-linux-gnu/libQt6Core.so.6+0x338
#31  /usr/lib/x86_64-linux-gnu/libQt6Core.so.6(+0x4d127f) [0x7f5f4ecd127f]
#32  /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x633d6) [0x7f5f4d3133d6]
#33  /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0xc4047) [0x7f5f4d374047]
#34  /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_iteration+0x33) [0x7f5f4d312863]
#35  0x7f5f4ecd09b3 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/x86_64-linux-gnu/libQt6Core.so.6+0x73
#36  0x7f5f4e9b5d63 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/x86_64-linux-gnu/libQt6Core.so.6+0x1a3
#37  0x7f5f4e9b11a1 in QCoreApplication::exec() from /usr/lib/x86_64-linux-gnu/libQt6Core.so.6+0xb1
#38  0x7f5f51e697bd in Gui::Application::runApplication() from /app/freecad/lib/libFreeCADGui.so+0xd4d
#39  FreeCAD(+0x96e3) [0x562d121cc6e3]
#40  /usr/lib/x86_64-linux-gnu/libc.so.6(+0x2a3c8) [0x7f5f4e22b3c8]
#41  /usr/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x8b) [0x7f5f4e22b48b]
#42  FreeCAD(+0x9b15) [0x562d121ccb15]

FreeCAD version 1.0.2 (from flathub - FreeCAD 1.0.2, Libs: 1.0.2R39319 (Git))
kicadStepUpMod - latest git master.

Steps to reproduce:

  1. Start FreeCAD and switch to kicadStepUp workspace.
  2. Use the "ksu tools Add Tracks" and open kicad board

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions