Closed kinghat closed 4 months ago
I don't get segmentation fault, only the error is shown. Update view disabled/enabled does not cause crash on my system.
OS: Ubuntu 22.04.3 LTS (KDE/plasma)
Word size of FreeCAD: 64-bit
Version: 0.22.0dev.36520 (Git)
Build type: Debug
Branch: main
Hash: 1cfad4142275f7cd25bcc32bea95e88f510b8246
Python 3.10.12, Qt 5.15.12, Coin 4.0.0, Vtk 9.1.0, OCC 7.5.1
Locale: English/United States (en_US)
tested again with the new weekly build and still get the segfault:
$ ./FreeCAD_weekly-builds-36731-2024-04-02-conda-Linux-x86_64-py311.AppImage
FreeCAD 0.22.0, Libs: 0.22.0devR36731 (Git)
© Juergen Riegel, Werner Mayer, Yorik van Havre and others 2001-2024
FreeCAD is free and open-source software licensed under the terms of LGPL2+ license.
FreeCAD wouldn't be possible without FreeCAD community.
##### #### ### ####
# # # # # #
# ## #### #### # # # # #
#### # # # # # # # ##### # #
# # #### #### # # # # #
# # # # # # # # # ## ## ##
# # #### #### ### # # #### ## ## ##
(qt.qpa.plugin) Could not find the Qt platform plugin "wayland" in ""
Program received signal SIGSEGV, Segmentation fault.
#0 /lib64/libc.so.6(+0x3e9a0) [0x7ffaf205c9a0]
#1 0x7ffaf515662e in Gui::DocumentObjectItem::setCheckState(bool) from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libFreeCADGui.so+0x9e
#2 0x7ffaf51593d2 in Gui::DocumentItem::updateItemSelection(Gui::DocumentObjectItem*) from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libFreeCADGui.so+0x4f2
#3 0x7ffaf515954f in Gui::DocumentItem::clearSelection(Gui::DocumentObjectItem*) from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libFreeCADGui.so+0x12f
#4 0x7ffaf5180944 in Gui::TreeWidget::onItemSelectionChanged() from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libFreeCADGui.so+0x134
#5 /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libQt5Core.so.5(+0x2eb6f2) [0x7ffaf24eb6f2]
#6 /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libQt5Widgets.so.5(+0x43cc76) [0x7ffaf363cc76]
#7 /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libQt5Core.so.5(+0x2eb964) [0x7ffaf24eb964]
#8 0x7ffaf2464ce7 in QItemSelectionModel::selectionChanged(QItemSelection const&, QItemSelection const&) from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libQt5Core.so.5+0x27
#9 0x7ffaf246d08e in QItemSelectionModel::select(QItemSelection const&, QFlags<QItemSelectionModel::SelectionFlag>) from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libQt5Core.so.5+0x1ee
#10 0x7ffaf36318e8 in QTreeViewPrivate::select(QModelIndex const&, QModelIndex const&, QFlags<QItemSelectionModel::SelectionFlag>) from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libQt5Widgets.so.5+0x688
#11 0x7ffaf36321b7 in QTreeView::setSelection(QRect const&, QFlags<QItemSelectionModel::SelectionFlag>) from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libQt5Widgets.so.5+0x167
#12 0x7ffaf35c3423 in QAbstractItemView::mousePressEvent(QMouseEvent*) from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libQt5Widgets.so.5+0x2e3
#13 0x7ffaf5185fa8 in Gui::TreeWidget::mousePressEvent(QMouseEvent*) from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libFreeCADGui.so+0x28
#14 0x7ffaf33aec08 in QWidget::event(QEvent*) from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libQt5Widgets.so.5+0x178
#15 0x7ffaf3456c6e in QFrame::event(QEvent*) from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libQt5Widgets.so.5+0x1e
#16 0x7ffaf24b68bb in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libQt5Core.so.5+0x7b
#17 0x7ffaf337039e in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libQt5Widgets.so.5+0x6e
#18 0x7ffaf3378262 in QApplication::notify(QObject*, QEvent*) from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libQt5Widgets.so.5+0x13a2
#19 0x7ffaf4f29339 in Gui::GUIApplication::notify(QObject*, QEvent*) from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libFreeCADGui.so+0x99
#20 0x7ffaf24b6b28 in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libQt5Core.so.5+0x108
#21 0x7ffaf33763eb in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libQt5Widgets.so.5+0x1ab
#22 /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libQt5Widgets.so.5(+0x1c6e6f) [0x7ffaf33c6e6f]
#23 /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libQt5Widgets.so.5(+0x1ca0c9) [0x7ffaf33ca0c9]
#24 0x7ffaf33703ae in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libQt5Widgets.so.5+0x7e
#25 0x7ffaf4f29339 in Gui::GUIApplication::notify(QObject*, QEvent*) from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libFreeCADGui.so+0x99
#26 0x7ffaf24b6b28 in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libQt5Core.so.5+0x108
#27 0x7ffaf2b353ec in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libQt5Gui.so.5+0x84c
#28 0x7ffaf2b0b0bc in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libQt5Gui.so.5+0xac
#29 /tmp/.mount_FreeCAp6MRE3/usr/plugins/platforms/../../lib/libQt5XcbQpa.so.5(+0x64bea) [0x7ffadfb94bea]
#30 /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/./libglib-2.0.so.0(+0x5bad7) [0x7ffaf0b10ad7]
#31 /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/./libglib-2.0.so.0(+0x5eac7) [0x7ffaf0b13ac7]
#32 /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/./libglib-2.0.so.0(g_main_context_iteration+0x2e) [0x7ffaf0b140ce]
#33 0x7ffaf250aa36 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libQt5Core.so.5+0x66
#34 0x7ffaf24b570b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libQt5Core.so.5+0x11b
#35 0x7ffaf24bd212 in QCoreApplication::exec() from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libQt5Core.so.5+0x82
#36 0x7ffaf4e8c9b7 in Gui::Application::runApplication() from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libFreeCADGui.so+0xa27
#37 /tmp/.mount_FreeCAp6MRE3/usr/bin/freecad(+0x7620) [0x559e790eb620]
#38 /lib64/libc.so.6(+0x2814a) [0x7ffaf204614a]
#39 /lib64/libc.so.6(__libc_start_main+0x8b) [0x7ffaf204620b]
#40 /tmp/.mount_FreeCAp6MRE3/usr/bin/freecad(+0x7981) [0x559e790eb981]
OS: Fedora Linux 39 (KDE Plasma) (KDE/plasma) Word size of FreeCAD: 64-bit Version: 0.22.0dev.36731 (Git) AppImage Build type: Release Branch: main Hash: ac1d887336826c59321352f49a195bf1ef8be2f0 Python 3.11.8, Qt 5.15.13, Coin 4.0.2, Vtk 9.2.6, OCC 7.7.2 Locale: English/United States (en_US) Installed mods:
- OpenDark 2023.12.17
- Curves 0.6.29
- CurvedShapes 1.0.8
i will test in a fresh vm later and report back.
tested in fresh gnome vm:
$ ./FreeCAD_weekly-builds-36731-2024-04-02-conda-Linux-x86_64-py311.AppImage
FreeCAD 0.22.0, Libs: 0.22.0devR36731 (Git)
© Juergen Riegel, Werner Mayer, Yorik van Havre and others 2001-2024
FreeCAD is free and open-source software licensed under the terms of LGPL2+ license.
FreeCAD wouldn't be possible without FreeCAD community.
##### #### ### ####
# # # # # #
# ## #### #### # # # # #
#### # # # # # # # ##### # #
# # #### #### # # # # #
# # # # # # # # # ## ## ##
# # #### #### ### # # #### ## ## ##
Program received signal SIGSEGV, Segmentation fault.
#0 /lib64/libc.so.6(+0x3e9a0) [0x7f76dfe5c9a0]
#1 0x7f76e13be2d6 in QAbstractItemView::model() const from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Widgets.so.5+0x6
#2 0x7f76e143afa1 in QTreeWidgetItem::treeModel(QTreeWidget*) const from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Widgets.so.5+0x11
#3 0x7f76e143b436 in QTreeWidgetItem::setSelected(bool) from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Widgets.so.5+0x16
#4 0x7f76e2f593c7 in Gui::DocumentItem::updateItemSelection(Gui::DocumentObjectItem*) from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libFreeCADGui.so+0x4e7
#5 0x7f76e2f5954f in Gui::DocumentItem::clearSelection(Gui::DocumentObjectItem*) from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libFreeCADGui.so+0x12f
#6 0x7f76e2f80944 in Gui::TreeWidget::onItemSelectionChanged() from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libFreeCADGui.so+0x134
#7 /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Core.so.5(+0x2eb6f2) [0x7f76e02eb6f2]
#8 /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Widgets.so.5(+0x43cc76) [0x7f76e143cc76]
#9 /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Core.so.5(+0x2eb964) [0x7f76e02eb964]
#10 0x7f76e0264ce7 in QItemSelectionModel::selectionChanged(QItemSelection const&, QItemSelection const&) from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Core.so.5+0x27
#11 0x7f76e026d08e in QItemSelectionModel::select(QItemSelection const&, QFlags<QItemSelectionModel::SelectionFlag>) from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Core.so.5+0x1ee
#12 0x7f76e14318e8 in QTreeViewPrivate::select(QModelIndex const&, QModelIndex const&, QFlags<QItemSelectionModel::SelectionFlag>) from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Widgets.so.5+0x688
#13 0x7f76e14321b7 in QTreeView::setSelection(QRect const&, QFlags<QItemSelectionModel::SelectionFlag>) from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Widgets.so.5+0x167
#14 0x7f76e13c3423 in QAbstractItemView::mousePressEvent(QMouseEvent*) from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Widgets.so.5+0x2e3
#15 0x7f76e2f85fa8 in Gui::TreeWidget::mousePressEvent(QMouseEvent*) from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libFreeCADGui.so+0x28
#16 0x7f76e11aec08 in QWidget::event(QEvent*) from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Widgets.so.5+0x178
#17 0x7f76e1256c6e in QFrame::event(QEvent*) from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Widgets.so.5+0x1e
#18 0x7f76e02b68bb in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Core.so.5+0x7b
#19 0x7f76e117039e in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Widgets.so.5+0x6e
#20 0x7f76e1178262 in QApplication::notify(QObject*, QEvent*) from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Widgets.so.5+0x13a2
#21 0x7f76e2d29339 in Gui::GUIApplication::notify(QObject*, QEvent*) from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libFreeCADGui.so+0x99
#22 0x7f76e02b6b28 in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Core.so.5+0x108
#23 0x7f76e11763eb in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Widgets.so.5+0x1ab
#24 /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Widgets.so.5(+0x1c6e6f) [0x7f76e11c6e6f]
#25 /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Widgets.so.5(+0x1ca0c9) [0x7f76e11ca0c9]
#26 0x7f76e11703ae in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Widgets.so.5+0x7e
#27 0x7f76e2d29339 in Gui::GUIApplication::notify(QObject*, QEvent*) from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libFreeCADGui.so+0x99
#28 0x7f76e02b6b28 in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Core.so.5+0x108
#29 0x7f76e09353ec in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Gui.so.5+0x84c
#30 0x7f76e090b0bc in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Gui.so.5+0xac
#31 /tmp/.mount_FreeCAR9Wcdj/usr/plugins/platforms/../../lib/libQt5XcbQpa.so.5(+0x64bea) [0x7f76cda15bea]
#32 /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/./libglib-2.0.so.0(+0x5bad7) [0x7f76de910ad7]
#33 /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/./libglib-2.0.so.0(+0x5eac7) [0x7f76de913ac7]
#34 /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/./libglib-2.0.so.0(g_main_context_iteration+0x2e) [0x7f76de9140ce]
#35 0x7f76e030aa36 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Core.so.5+0x66
#36 0x7f76e02b570b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Core.so.5+0x11b
#37 0x7f76e02bd212 in QCoreApplication::exec() from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Core.so.5+0x82
#38 0x7f76e2c8c9b7 in Gui::Application::runApplication() from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libFreeCADGui.so+0xa27
#39 /tmp/.mount_FreeCAR9Wcdj/usr/bin/freecad(+0x7620) [0x5579fd791620]
#40 /lib64/libc.so.6(+0x2814a) [0x7f76dfe4614a]
#41 /lib64/libc.so.6(__libc_start_main+0x8b) [0x7f76dfe4620b]
#42 /tmp/.mount_FreeCAR9Wcdj/usr/bin/freecad(+0x7981) [0x5579fd791981]
OS: Fedora Linux 39 (Workstation Edition) (GNOME/gnome) Word size of FreeCAD: 64-bit Version: 0.22.0dev.36731 (Git) AppImage Build type: Release Branch: main Hash: ac1d887336826c59321352f49a195bf1ef8be2f0 Python 3.11.8, Qt 5.15.13, Coin 4.0.2, Vtk 9.2.6, OCC 7.7.2 Locale: English/United States (en_US)
@kinghat, could you record a video to show the exact steps to reproduce the crash? You have provided the three backtrace logs, however, if you look at them, they slightly differ in the end.
#1 0x7f3bfe8bf08b in QMetaObject::cast(QObject const*) const from /tmp/.mount_FreeCAJiskxw/usr/bin/../lib/libQt5Core.so.5+0xb
#2 0x7f3bffa3b436 in QTreeWidgetItem::setSelected(bool) from /tmp/.mount_FreeCAJiskxw/usr/bin/../lib/libQt5Widgets.so.5+0x16
#3 0x7f3c015566e7 in Gui::DocumentItem::updateItemSelection(Gui::DocumentObjectItem*) from /tmp/.mount_FreeCAJiskxw/usr/bin/../lib/libFreeCADGui.so+0x4e7
#1 0x7ffaf515662e in Gui::DocumentObjectItem::setCheckState(bool) from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libFreeCADGui.so+0x9e
#2 0x7ffaf51593d2 in Gui::DocumentItem::updateItemSelection(Gui::DocumentObjectItem*) from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libFreeCADGui.so+0x4f2
#3 0x7ffaf515954f in Gui::DocumentItem::clearSelection(Gui::DocumentObjectItem*) from /tmp/.mount_FreeCAp6MRE3/usr/bin/../lib/libFreeCADGui.so+0x12f
#1 0x7f76e13be2d6 in QAbstractItemView::model() const from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Widgets.so.5+0x6
#2 0x7f76e143afa1 in QTreeWidgetItem::treeModel(QTreeWidget*) const from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Widgets.so.5+0x11
#3 0x7f76e143b436 in QTreeWidgetItem::setSelected(bool) from /tmp/.mount_FreeCAR9Wcdj/usr/bin/../lib/libQt5Widgets.so.5+0x16
It looks like each crash caused by different actions.
@kinghat, could you record a video to show the exact steps to reproduce the crash? You have provided the three backtrace logs, however, if you look at them, they slightly differ in the end.
Screencast from 2024-04-05 12-52-28.webm
$ ./FreeCAD_weekly-builds-36731-2024-04-02-conda-Linux-x86_64-py311.AppImage
FreeCAD 0.22.0, Libs: 0.22.0devR36731 (Git)
© Juergen Riegel, Werner Mayer, Yorik van Havre and others 2001-2024
FreeCAD is free and open-source software licensed under the terms of LGPL2+ license.
FreeCAD wouldn't be possible without FreeCAD community.
##### #### ### ####
# # # # # #
# ## #### #### # # # # #
#### # # # # # # # ##### # #
# # #### #### # # # # #
# # # # # # # # # ## ## ##
# # #### #### ### # # #### ## ## ##
Program received signal SIGSEGV, Segmentation fault.
#0 /lib64/libc.so.6(+0x3e9a0) [0x7f2739a5c9a0]
#1 0x7f273a7be2d6 in QAbstractItemView::model() const from /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libQt5Widgets.so.5+0x6
#2 0x7f273a83afa1 in QTreeWidgetItem::treeModel(QTreeWidget*) const from /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libQt5Widgets.so.5+0x11
#3 0x7f273a83b436 in QTreeWidgetItem::setSelected(bool) from /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libQt5Widgets.so.5+0x16
#4 0x7f273c3593c7 in Gui::DocumentItem::updateItemSelection(Gui::DocumentObjectItem*) from /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libFreeCADGui.so+0x4e7
#5 0x7f273c35954f in Gui::DocumentItem::clearSelection(Gui::DocumentObjectItem*) from /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libFreeCADGui.so+0x12f
#6 0x7f273c380944 in Gui::TreeWidget::onItemSelectionChanged() from /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libFreeCADGui.so+0x134
#7 /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libQt5Core.so.5(+0x2eb6f2) [0x7f27396eb6f2]
#8 /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libQt5Widgets.so.5(+0x43cc76) [0x7f273a83cc76]
#9 /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libQt5Core.so.5(+0x2eb964) [0x7f27396eb964]
#10 0x7f2739664ce7 in QItemSelectionModel::selectionChanged(QItemSelection const&, QItemSelection const&) from /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libQt5Core.so.5+0x27
#11 0x7f273966d08e in QItemSelectionModel::select(QItemSelection const&, QFlags<QItemSelectionModel::SelectionFlag>) from /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libQt5Core.so.5+0x1ee
#12 0x7f273a8318e8 in QTreeViewPrivate::select(QModelIndex const&, QModelIndex const&, QFlags<QItemSelectionModel::SelectionFlag>) from /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libQt5Widgets.so.5+0x688
#13 0x7f273a8321b7 in QTreeView::setSelection(QRect const&, QFlags<QItemSelectionModel::SelectionFlag>) from /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libQt5Widgets.so.5+0x167
#14 0x7f273a7c3423 in QAbstractItemView::mousePressEvent(QMouseEvent*) from /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libQt5Widgets.so.5+0x2e3
#15 0x7f273c385fa8 in Gui::TreeWidget::mousePressEvent(QMouseEvent*) from /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libFreeCADGui.so+0x28
#16 0x7f273a5aec08 in QWidget::event(QEvent*) from /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libQt5Widgets.so.5+0x178
#17 0x7f273a656c6e in QFrame::event(QEvent*) from /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libQt5Widgets.so.5+0x1e
#18 0x7f27396b68bb in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) from /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libQt5Core.so.5+0x7b
#19 0x7f273a57039e in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libQt5Widgets.so.5+0x6e
#20 0x7f273a578262 in QApplication::notify(QObject*, QEvent*) from /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libQt5Widgets.so.5+0x13a2
#21 0x7f273c129339 in Gui::GUIApplication::notify(QObject*, QEvent*) from /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libFreeCADGui.so+0x99
#22 0x7f27396b6b28 in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libQt5Core.so.5+0x108
#23 0x7f273a5763eb in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) from /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libQt5Widgets.so.5+0x1ab
#24 /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libQt5Widgets.so.5(+0x1c6e6f) [0x7f273a5c6e6f]
#25 /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libQt5Widgets.so.5(+0x1ca0c9) [0x7f273a5ca0c9]
#26 0x7f273a5703ae in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libQt5Widgets.so.5+0x7e
#27 0x7f273c129339 in Gui::GUIApplication::notify(QObject*, QEvent*) from /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libFreeCADGui.so+0x99
#28 0x7f27396b6b28 in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libQt5Core.so.5+0x108
#29 0x7f2739d353ec in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) from /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libQt5Gui.so.5+0x84c
#30 0x7f2739d0b0bc in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libQt5Gui.so.5+0xac
#31 /tmp/.mount_FreeCAg6bgta/usr/plugins/platforms/../../lib/libQt5XcbQpa.so.5(+0x64bea) [0x7f2727015bea]
#32 /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/./libglib-2.0.so.0(+0x5bad7) [0x7f2737f10ad7]
#33 /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/./libglib-2.0.so.0(+0x5eac7) [0x7f2737f13ac7]
#34 /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/./libglib-2.0.so.0(g_main_context_iteration+0x2e) [0x7f2737f140ce]
#35 0x7f273970aa36 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libQt5Core.so.5+0x66
#36 0x7f27396b570b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) from /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libQt5Core.so.5+0x11b
#37 0x7f27396bd212 in QCoreApplication::exec() from /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libQt5Core.so.5+0x82
#38 0x7f273c08c9b7 in Gui::Application::runApplication() from /tmp/.mount_FreeCAg6bgta/usr/bin/../lib/libFreeCADGui.so+0xa27
#39 /tmp/.mount_FreeCAg6bgta/usr/bin/freecad(+0x7620) [0x5624bd68d620]
#40 /lib64/libc.so.6(+0x2814a) [0x7f2739a4614a]
#41 /lib64/libc.so.6(__libc_start_main+0x8b) [0x7f2739a4620b]
#42 /tmp/.mount_FreeCAg6bgta/usr/bin/freecad(+0x7981) [0x5624bd68d981]
OS: Fedora Linux 39 (Workstation Edition) (GNOME/gnome) Word size of FreeCAD: 64-bit Version: 0.22.0dev.36731 (Git) AppImage Build type: Release Branch: main Hash: ac1d887336826c59321352f49a195bf1ef8be2f0 Python 3.11.8, Qt 5.15.13, Coin 4.0.2, Vtk 9.2.6, OCC 7.7.2 Locale: English/United States (en_US)
This is a Qt bug. The crash is most likely caused by https://bugreports.qt.io/browse/QTBUG-94546
This comment says it is to be fixed in Qt 7: https://github.com/qt/qtbase/blob/772fd609c6eff09bdaa44cb2ac5f913e58788fa3/src/widgets/itemviews/qtreewidget.h#L184-L185
These bugs are closely related: https://bugreports.qt.io/browse/QTBUG-93829 https://bugreports.qt.io/browse/QTBUG-88003 https://bugreports.qt.io/browse/QTBUG-55402
It looks like one can't do anything, lest completely rewrite Tree.cpp
and Tree.h
. 😢
If Qt guys ever come across this topic, here is the backtrace.
The crash takes place at this line:
I am not sure if this is really a Qt bug. The stack trace is:
item->selected = 0;
) item is a dangling pointer and causes the crash.Part of the problem is the function ViewProviderSuppressibleExtension::extensionUpdateData() because it emits the signal signalHighlightObject that triggers the recreation of the tree items. The second part of the problem is that the slot function forces an immediate update of the tree -- needs to be checked if delaying the update is the better way.
So, the two main problems are the methods:
@wwmayer #13682 fix ViewProviderSuppressibleExtension::extensionUpdateData() so the bug is not triggered anymore but the underlying problems remain.
Emitting the signal ViewProviderSuppressibleExtension::extensionUpdateData() just reveals the bug that exists in the tree view code. Replacing the signal with something else cures the symptoms but it doesn't fix the bug.
And who knows which other crashes happen for the exact same reason.
Is there an existing issue for this?
Problem description
additive loft with update view enabled is not catching the otherwise handled error below and segfaults instead:
if you dont have update view enabled and add the sketch and close out the error is handled and displayed for you.
Full version info
Subproject(s) affected?
PartDesign
Anything else?
additive_loft_crash_test.zip
Code of Conduct