Skip to content
This repository was archived by the owner on Mar 1, 2025. It is now read-only.

Reproducible segfault when switching default unit system in sketch mode #143

@wayward777

Description

@wayward777

Is there an existing issue for this?

  • I have searched the existing issues

Problem description

Problem:
Segfault when changing default unit system when in sketch mode

Steps:

  • New Assembly project
  • New Body
  • New Sketch
  • Draw a rectangle
  • [stay in sketch mode]
  • Edit > Preferences > Change Default Unit System value
  • Press Apply
  • 💥 Crash 💥

Error:

Program received signal SIGSEGV, Segmentation fault.
#0  /usr/lib/libc.so.6(+0x3cb80) [0x7ff37104eb80]
#1  /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5(+0x21287b) [0x7ff371c1287b]
#2  0x7ff371b994b9 in QWidget::isActiveWindow() const from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x79
#3  0x7ff371b9964e in QWidget::palette() const from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x3e
#4  0x7ff371b99695 in QWidget::initPainter(QPainter*) const from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x15
#5  /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Gui.so.5(+0x4008d2) [0x7ff3716008d2]
#6  0x7ff371606677 in QPainter::begin(QPaintDevice*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Gui.so.5+0x437
#7  0x7ff371ba81b8 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x658
#8  0x7ff371ba969e in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x48e
#9  0x7ff371ba94f5 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x2e5
#10  0x7ff371ba94f5 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x2e5
#11  0x7ff371ba806a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x50a
#12  0x7ff371ba969e in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x48e
#13  0x7ff371ba806a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x50a
#14  0x7ff371ba969e in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x48e
#15  0x7ff371ba806a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x50a
#16  0x7ff371ba969e in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x48e
#17  0x7ff371ba94f5 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x2e5
#18  0x7ff371ba94f5 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x2e5
#19  0x7ff371ba806a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x50a
#20  0x7ff371ba969e in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x48e
#21  0x7ff371ba806a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x50a
#22  0x7ff371ba969e in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x48e
#23  0x7ff371ba806a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x50a
#24  0x7ff371ba969e in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x48e
#25  0x7ff371ba94f5 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x2e5
#26  0x7ff371ba806a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x50a
#27  0x7ff371ba969e in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x48e
#28  0x7ff371ba806a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x50a
#29  /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5(+0x180c35) [0x7ff371b80c35]
#30  0x7ff371baf305 in QWidget::event(QEvent*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x875
#31  0x7ff371b703ae in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x7e
#32  0x7ff373933179 in Gui::GUIApplication::notify(QObject*, QEvent*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libFreeCADGui.so+0x99
#33  0x7ff370cb6b28 in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Core.so.5+0x108
#34  0x7ff370cb9801 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Core.so.5+0x181
#35  /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Core.so.5(+0x30b313) [0x7ff370d0b313]
#36  /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/./libglib-2.0.so.0(+0x5bad7) [0x7ff36f510ad7]
#37  /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/./libglib-2.0.so.0(+0x5eac7) [0x7ff36f513ac7]
#38  /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/./libglib-2.0.so.0(g_main_context_iteration+0x2e) [0x7ff36f5140ce]
#39  0x7ff370d0aa36 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Core.so.5+0x66
#40  0x7ff370cb570b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Core.so.5+0x11b
#41  0x7ff371d60697 in QDialog::exec() from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x1b7
#42  0x7ff3739b2d44 in StdCmdDlgPreferences::activated(int) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libFreeCADGui.so+0x94
#43  0x7ff373988928 in Gui::Command::_invoke(int, bool) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libFreeCADGui.so+0x2a8
#44  0x7ff373988ce4 in Gui::Command::invoke(int, Gui::Command::TriggerSource) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libFreeCADGui.so+0x134
#45  /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Core.so.5(+0x2eb6f2) [0x7ff370ceb6f2]
#46  0x7ff371b6a462 in QAction::triggered(bool) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x32
#47  0x7ff371b6ce2b in QAction::activate(QAction::ActionEvent) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0xab
#48  /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5(+0x2e12e2) [0x7ff371ce12e2]
#49  /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5(+0x2e8c34) [0x7ff371ce8c34]
#50  0x7ff371baec08 in QWidget::event(QEvent*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x178
#51  0x7ff371b703ae in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x7e
#52  0x7ff371b78262 in QApplication::notify(QObject*, QEvent*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x13a2
#53  0x7ff373933179 in Gui::GUIApplication::notify(QObject*, QEvent*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libFreeCADGui.so+0x99
#54  0x7ff370cb6b28 in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Core.so.5+0x108
#55  /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5(+0x2e989c) [0x7ff371ce989c]
#56  0x7ff371ce9d0e in QMenu::mouseReleaseEvent(QMouseEvent*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x2e
#57  0x7ff371baec08 in QWidget::event(QEvent*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x178
#58  0x7ff371b703ae in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x7e
#59  0x7ff371b78262 in QApplication::notify(QObject*, QEvent*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x13a2
#60  0x7ff373933179 in Gui::GUIApplication::notify(QObject*, QEvent*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libFreeCADGui.so+0x99
#61  0x7ff370cb6b28 in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Core.so.5+0x108
#62  0x7ff371b763eb in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x1ab
#63  /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5(+0x1c72a5) [0x7ff371bc72a5]
#64  /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5(+0x1ca0c9) [0x7ff371bca0c9]
#65  0x7ff371b703ae in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Widgets.so.5+0x7e
#66  0x7ff373933179 in Gui::GUIApplication::notify(QObject*, QEvent*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libFreeCADGui.so+0x99
#67  0x7ff370cb6b28 in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Core.so.5+0x108
#68  0x7ff3713353ec in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Gui.so.5+0x84c
#69  0x7ff37130b0bc in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Gui.so.5+0xac
#70  /tmp/.mount_Ondsel6jtGAg/usr/plugins/platforms/../../lib/libQt5XcbQpa.so.5(+0x64bea) [0x7ff36b792bea]
#71  /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/./libglib-2.0.so.0(+0x5bad7) [0x7ff36f510ad7]
#72  /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/./libglib-2.0.so.0(+0x5eac7) [0x7ff36f513ac7]
#73  /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/./libglib-2.0.so.0(g_main_context_iteration+0x2e) [0x7ff36f5140ce]
#74  0x7ff370d0aa36 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Core.so.5+0x66
#75  0x7ff370cb570b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Core.so.5+0x11b
#76  0x7ff370cbd212 in QCoreApplication::exec() from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libQt5Core.so.5+0x82
#77  0x7ff373896637 in Gui::Application::runApplication() from /tmp/.mount_Ondsel6jtGAg/usr/bin/../lib/libFreeCADGui.so+0xa27
#78  /tmp/.mount_Ondsel6jtGAg/usr/bin/ondsel-es(+0x7688) [0x618fac13c688]
#79  /usr/lib/libc.so.6(+0x25d6e) [0x7ff371037d6e]
#80  /usr/lib/libc.so.6(__libc_start_main+0x8a) [0x7ff371037e2a]
#81  /tmp/.mount_Ondsel6jtGAg/usr/bin/ondsel-es(+0x79fd) [0x618fac13c9fd]

Full version info

OS: Artix Linux (MATE)
Word size of Ondsel: 64-bit
Version: 2024.2.2.37240 (Git) AppImage
Build type: Release
Branch: (HEAD detached at 2024.2.2)
Hash: fbb794cd2e56fba5fd911c8832332b5e5e235319
Python 3.11.9, Qt 5.15.13, Coin 4.0.2, Vtk 9.2.6, OCC 7.7.2
Locale: English/United States (en_US)
Installed mods: 
  * Ondsel-Lens 2024.10.21.01

Subproject(s) affected?

None

Anything else?

This crash does not seem to happen unless sketch mode is open. Other modes could be affected (I have not done thorough testing).

Thanks to all for your time and effort on this great project.

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions