Ondsel-Development / FreeCAD

This is the official source code of FreeCAD, a free and opensource multiplatform 3D parametric modeler.
https://www.freecad.org
Other
192 stars 8 forks source link

Crash when closing preferences window while sketch open #139

Closed PetteriAimonen closed 1 month ago

PetteriAimonen commented 2 months ago

Is there an existing issue for this?

Problem description

Steps to repeat:

  1. Create new document
  2. Create sketch
  3. Open Edit -> Preferences
  4. Press Ok to close the dialog
  5. Observe crash (backtrace below)

Full version info

OS: Ubuntu 22.04.4 LTS (ICEWM/icewm-session)
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.1.22.01
  * ThreadProfile 1.89.0

Subproject(s) affected?

PartDesign

Anything else?

Program received signal SIGSEGV, Segmentation fault.
#0  /lib/x86_64-linux-gnu/libc.so.6(+0x42520) [0x7eb04aa42520]
#1  /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5(+0x21287b) [0x7eb04c01287b]
#2  0x7eb04bf994b9 in QWidget::isActiveWindow() const from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x79
#3  0x7eb04bf9964e in QWidget::palette() const from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x3e
#4  0x7eb04bf99695 in QWidget::initPainter(QPainter*) const from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x15
#5  /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Gui.so.5(+0x4008d2) [0x7eb04ba008d2]
#6  /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Gui.so.5(+0x405716) [0x7eb04ba05716]
#7  0x7eb04ba0689c in QPainter::QPainter(QPaintDevice*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Gui.so.5+0x1c
#8  0x7eb04bfa81b8 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x658
#9  0x7eb04bfa969e in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x48e
#10  0x7eb04bfa94f5 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x2e5
#11  0x7eb04bfa94f5 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x2e5
#12  0x7eb04bfa806a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x50a
#13  0x7eb04bfa969e in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x48e
#14  0x7eb04bfa806a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x50a
#15  0x7eb04bfa969e in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x48e
#16  0x7eb04bfa806a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x50a
#17  0x7eb04bfa969e in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x48e
#18  0x7eb04bfa94f5 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x2e5
#19  0x7eb04bfa94f5 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x2e5
#20  0x7eb04bfa806a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x50a
#21  0x7eb04bfa969e in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x48e
#22  0x7eb04bfa806a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x50a
#23  0x7eb04bfa969e in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x48e
#24  0x7eb04bfa806a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x50a
#25  0x7eb04bfa969e in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x48e
#26  0x7eb04bfa806a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x50a
#27  0x7eb04bfa969e in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x48e
#28  0x7eb04bfa806a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x50a
#29  0x7eb04bfac745 in QWidgetPrivate::render(QPaintDevice*, QPoint const&, QRegion const&, QFlags<QWidget::RenderFlag>) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x115
#30  0x7eb04bfacbf7 in QWidget::render(QPainter*, QPoint const&, QRegion const&, QFlags<QWidget::RenderFlag>) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x287
#31  0x7eb04bfacf39 in QWidget::render(QPaintDevice*, QPoint const&, QRegion const&, QFlags<QWidget::RenderFlag>) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x39
#32  /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5(+0x1ad136) [0x7eb04bfad136]
#33  0x7eb04c2ea7ee in QGraphicsEffectSource::pixmap(Qt::CoordinateSystem, QPoint*, QGraphicsEffect::PixmapPadMode) const from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x11e
#34  0x7eb04c2ea956 in QGraphicsEffect::sourcePixmap(Qt::CoordinateSystem, QPoint*, QGraphicsEffect::PixmapPadMode) const from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x16
#35  0x7eb04e2a29cf in Gui::OverlayGraphicsEffect::draw(QPainter*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libFreeCADGui.so+0x8f
#36  0x7eb04bfa8dea in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x128a
#37  0x7eb04bfa969e in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x48e
#38  0x7eb04bfa806a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x50a
#39  0x7eb04bfa969e in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x48e
#40  0x7eb04bfa94f5 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x2e5
#41  0x7eb04bfa94f5 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x2e5
#42  0x7eb04bfa94f5 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x2e5
#43  0x7eb04bfa94f5 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x2e5
#44  0x7eb04bfa94f5 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x2e5
#45  0x7eb04bfa94f5 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x2e5
#46  0x7eb04bfa94f5 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x2e5
#47  0x7eb04bfa806a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x50a
#48  /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5(+0x180c35) [0x7eb04bf80c35]
#49  0x7eb04bfaf305 in QWidget::event(QEvent*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x875
#50  0x7eb04bf703ae in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Widgets.so.5+0x7e
#51  0x7eb04dd33179 in Gui::GUIApplication::notify(QObject*, QEvent*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libFreeCADGui.so+0x99
#52  0x7eb04b0b6b28 in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Core.so.5+0x108
#53  0x7eb04b0b9801 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Core.so.5+0x181
#54  /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Core.so.5(+0x30b313) [0x7eb04b10b313]
#55  /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/./libglib-2.0.so.0(+0x5bad7) [0x7eb049710ad7]
#56  /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/./libglib-2.0.so.0(+0x5eac7) [0x7eb049713ac7]
#57  /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/./libglib-2.0.so.0(g_main_context_iteration+0x2e) [0x7eb0497140ce]
#58  0x7eb04b10aa36 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Core.so.5+0x66
#59  0x7eb04b0b570b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Core.so.5+0x11b
#60  0x7eb04b0bd212 in QCoreApplication::exec() from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libQt5Core.so.5+0x82
#61  0x7eb04dc96637 in Gui::Application::runApplication() from /tmp/.mount_ondseluJ2rzz/usr/bin/../lib/libFreeCADGui.so+0xa27
#62  /tmp/.mount_ondseluJ2rzz/usr/bin/ondsel-es(+0x7688) [0x576f2002f688]
#63  /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x7eb04aa29d90]
#64  /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x7eb04aa29e40]
#65  /tmp/.mount_ondseluJ2rzz/usr/bin/ondsel-es(+0x79fd) [0x576f2002f9fd]

Code of Conduct

PetteriAimonen commented 1 month ago

Confirmed that this doesn't happen with FreeCAD 1.0 RC2, so probably the fix will trickle down eventually.