View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0004241 | PartDesign | Bug | public | 2020-01-08 08:34 | 2020-06-09 11:40 |
Reporter | JoshuaCall | Assigned To | abdullah | ||
Priority | immediate | Severity | crash | Reproducibility | always |
Status | closed | Resolution | fixed | ||
OS | Ubuntu 18.04.3 LTS | ||||
Summary | 0004241: Crash when task panel stays open in FreeCAD Daily | ||||
Description | Crash when the task panel stays open after closing without saving https://forum.freecadweb.org/viewtopic.php?f=3&t=42268 | ||||
Steps To Reproduce | 1. Open FreeCAD. 2. Create a new document (Std_New). 3. Switch to the PartDesign Workbench. 4. Create a new PartDesign Body. 5. Click on PartDesign AdditiveBox to show a preview of a cube, but don't press "OK" or "Cancel" yet. 6. Close the document by clicking on the X in the "Unnamed" tab under the 3D view. In the popup "Do you want to save your changes before closing?", choose "Close without Saving". 7. The task panel for the PartDesign AdditiveBox tool will remain active. It is not possible to create a new document with Std_New, and the Ctrl+N key combination doesn't work either. 8. Now use the mouse wheel to scroll up and down the task panel to trigger the crash. Note: Clicking "cancel" in the combo view before crashing will print in the report view: Traceback (most recent call last): File "<string>", line 1, in <module> <class 'AttributeError'>: 'NoneType' object has no attribute 'resetEdit' Unhandled Base::Exception caught in GUIApplication::notify. The error message is: 'NoneType' object has no attribute 'resetEdit' Additional note: Clicking "Ok" in the combo view can cause FreeCAD to crash, or it may simply print in the report view: Traceback (most recent call last): File "<string>", line 1, in <module> <class 'AttributeError'>: 'NoneType' object has no attribute 'recompute' Unhandled Base::Exception caught in GUIApplication::notify. The error message is: 'NoneType' object has no attribute 'recompute' | ||||
Additional Information | Depending on the sequence of steps I take before the crash, and whether I crash via using the scroll wheel or pressing "Ok", I will get different backtraces printed to the terminal. I will post a few different ones: Program received signal SIGSEGV, Segmentation fault. #0 /lib/x86_64-linux-gnu/libc.so.6(+0x3ef20) [0x7fb22dcb2f20] #1 0x7fb22e5f8438 in vtable for __cxxabiv1::__si_class_type_info from /usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x10 Program received signal SIGSEGV, Segmentation fault. #0 /lib/x86_64-linux-gnu/libc.so.6(+0x3ef20) [0x7f4c99391f20] #1 0x7f4c9c00378c in App::DocumentObject::getNameInDocument() const from /usr/lib/freecad-daily-python3/lib/libFreeCADApp.so+0xc 0000002 0x7f4c9c934b1a in Gui::Command::getObjectCmd[abi:cxx11](App::DocumentObject const*, char const*, char const*, bool) from /usr/lib/freecad-daily-python3/lib/libFreeCADGui.so+0x3a 0000003 0x7f4c4cecadae in PartDesignGui::TaskBoxPrimitives::setPrimitive(App::DocumentObject*) from /usr/lib/freecad-daily-python3/lib/PartDesignGui.so+0x3e 0000004 0x7f4c4cecc4b8 in PartDesignGui::TaskPrimitiveParameters::accept() from /usr/lib/freecad-daily-python3/lib/PartDesignGui.so+0x18 0000005 0x7f4c9cb71cf6 in Gui::TaskView::TaskView::accept() from /usr/lib/freecad-daily-python3/lib/libFreeCADGui.so+0x56 0000006 0x7f4c99f9e645 in QMetaObject::activate(QObject*, int, int, void**) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x865 0000007 /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(+0x2e66a0) [0x7f4c9ae7f6a0] 0000008 0x7f4c99f9e645 in QMetaObject::activate(QObject*, int, int, void**) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x865 0000009 0x7f4c9addeba2 in QAbstractButton::clicked(bool) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x42 0000010 /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(+0x245dba) [0x7f4c9addedba] 0000011 /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(+0x24719a) [0x7f4c9ade019a] 0000012 0x7f4c9ade038d in QAbstractButton::mouseReleaseEvent(QMouseEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0xfd 0000013 0x7f4c9ad2c048 in QWidget::event(QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x1f8 0000014 0x7f4c9aced83c in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x9c 0000015 0x7f4c9acf565f in QApplication::notify(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x7ff 0000016 0x7f4c9c9072a8 in Gui::GUIApplication::notify(QObject*, QEvent*) from /usr/lib/freecad-daily-python3/lib/libFreeCADGui.so+0x88 0000017 0x7f4c99f6f9c8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x118 0000018 0x7f4c9acf4632 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x1d2 0000019 /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(+0x1ae16b) [0x7f4c9ad4716b] 0000020 /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(+0x1b07da) [0x7f4c9ad497da] 0000021 0x7f4c9aced83c in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x9c 0000022 0x7f4c9acf5104 in QApplication::notify(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x2a4 0000023 0x7f4c9c9072a8 in Gui::GUIApplication::notify(QObject*, QEvent*) from /usr/lib/freecad-daily-python3/lib/libFreeCADGui.so+0x88 0000024 0x7f4c99f6f9c8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x118 0000025 0x7f4c9a531583 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0x6f3 0000026 0x7f4c9a533055 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0x135 0000027 0x7f4c9a50a2eb in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0xab 0000028 /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5(+0x9f260) [0x7f4c89f00260] 0000029 /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x2e7) [0x7f4c9468c417] 0000030 /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x4c650) [0x7f4c9468c650] 0000031 /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_iteration+0x2c) [0x7f4c9468c6dc] 0000032 0x7f4c99fc897f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x5f 0000033 0x7f4c99f6d9fa in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x13a 0000034 0x7f4c99f76aa4 in QCoreApplication::exec() from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x94 0000035 0x7f4c9c87d35e in Gui::Application::runApplication() from /usr/lib/freecad-daily-python3/lib/libFreeCADGui.so+0x151e 0000036 freecad-daily(main+0x702) [0x555eb1fe96f2] 0000037 /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7) [0x7f4c99374b97] 0000038 freecad-daily(_start+0x2a) [0x555eb1fea3ea] Program received signal SIGSEGV, Segmentation fault. #0 /lib/x86_64-linux-gnu/libc.so.6(+0x3ef20) [0x7f67cf3fbf20] #1 0x7f67d21bafa1 in App::PropertyFloat::setValue(double) from /usr/lib/freecad-daily-python3/lib/libFreeCADApp.so+0x11 0000002 0x7f6782f274de in PartDesignGui::TaskBoxPrimitives::onBoxLengthChanged(double) from /usr/lib/freecad-daily-python3/lib/PartDesignGui.so+0x1e 0000003 0x7f67d0008645 in QMetaObject::activate(QObject*, int, int, void**) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x865 0000004 0x7f67d2d092a3 in Gui::QuantitySpinBox::valueChanged(double) from /usr/lib/freecad-daily-python3/lib/libFreeCADGui.so+0x43 0000005 0x7f67d2d0ad1f in Gui::QuantitySpinBox::userInput(QString const&) from /usr/lib/freecad-daily-python3/lib/libFreeCADGui.so+0x4bf 0000006 /usr/lib/freecad-daily-python3/lib/libFreeCADGui.so(+0x7ffc79) [0x7f67d2d0dc79] 0000007 0x7f67d0008645 in QMetaObject::activate(QObject*, int, int, void**) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x865 0000008 0x7f67d0e98cf2 in QLineEdit::textChanged(QString const&) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x32 0000009 /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(+0x29c129) [0x7f67d0e9f129] 0000010 0x7f67d0008645 in QMetaObject::activate(QObject*, int, int, void**) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x865 0000011 0x7f67d0e9fc85 in QWidgetLineControl::textChanged(QString const&) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x35 0000012 0x7f67d0ea2fc1 in QWidgetLineControl::finishChange(int, bool, bool) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x291 0000013 0x7f67d0ea32f0 in QWidgetLineControl::internalSetText(QString const&, int, bool) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x1a0 0000014 0x7f67d0e9a94c in QLineEdit::setText(QString const&) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x7c 0000015 0x7f67d2d0ba28 in Gui::QuantitySpinBox::stepBy(int) from /usr/lib/freecad-daily-python3/lib/libFreeCADGui.so+0xc8 0000016 0x7f67d0ef22f0 in QAbstractSpinBox::wheelEvent(QWheelEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x80 0000017 0x7f67d0d96048 in QWidget::event(QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x1f8 0000018 0x7f67d0ef7cb5 in QAbstractSpinBox::event(QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0xc5 0000019 0x7f67d2d0fcb6 in Gui::QuantitySpinBox::event(QEvent*) from /usr/lib/freecad-daily-python3/lib/libFreeCADGui.so+0x36 0000020 0x7f67d0d5783c in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x9c 0000021 0x7f67d0d60b27 in QApplication::notify(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x1cc7 0000022 0x7f67d29712a8 in Gui::GUIApplication::notify(QObject*, QEvent*) from /usr/lib/freecad-daily-python3/lib/libFreeCADGui.so+0x88 0000023 0x7f67cffd99c8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x118 0000024 /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(+0x1af2e9) [0x7f67d0db22e9] 0000025 /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(+0x1b082f) [0x7f67d0db382f] 0000026 0x7f67d0d5783c in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x9c 0000027 0x7f67d0d5f104 in QApplication::notify(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x2a4 0000028 0x7f67d29712a8 in Gui::GUIApplication::notify(QObject*, QEvent*) from /usr/lib/freecad-daily-python3/lib/libFreeCADGui.so+0x88 0000029 0x7f67cffd99c8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x118 0000030 0x7f67d0597e5b in QGuiApplicationPrivate::processWheelEvent(QWindowSystemInterfacePrivate::WheelEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0xeb 0000031 0x7f67d059d045 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0x125 0000032 0x7f67d05742eb in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0xab 0000033 /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5(+0x9f260) [0x7f67bff6a260] 0000034 /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x2e7) [0x7f67ca6f6417] 0000035 /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x4c650) [0x7f67ca6f6650] 0000036 /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_iteration+0x2c) [0x7f67ca6f66dc] 0000037 0x7f67d003297f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x5f 0000038 0x7f67cffd79fa in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x13a #39 0x7f67cffe0aa4 in QCoreApplication::exec() from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x94 #40 0x7f67d28e735e in Gui::Application::runApplication() from /usr/lib/freecad-daily-python3/lib/libFreeCADGui.so+0x151e 0000041 freecad-daily(main+0x702) [0x559c1482d6f2] 0000042 /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7) [0x7f67cf3deb97] 0000043 freecad-daily(_start+0x2a) [0x559c1482e3ea] | ||||
Tags | No tags attached. | ||||
FreeCAD Information | OS: Ubuntu 18.04.3 LTS (ubuntu:GNOME/ubuntu) Word size of OS: 64-bit Word size of FreeCAD: 64-bit Version: 0.19. Build type: Release Python version: 3.6.9 Qt version: 5.9.5 Coin version: 4.0.0a OCC version: 7.3.0 Locale: English/UnitedStates (en_US) | ||||
FreeCAD: master 11f55007 2020-06-07 11:34:32 Committer: abdullahtahiriyo Details Diff |
PartDesign: closing task dialog when exiting edit mode for Primitives ===================================================================== fixes 0004241 Problem: PartDesignGui::ViewProvider is responsible for closing the tasks for most of PD features when exiting edit mode (i.e. unsetEdit()). For primitives, PartDesignGui::ViewProviderPrimitive is responsible, and neither does it or relies on its parent VP to do it when calling unsetEdit(). Solution: Make PartDesignGui::ViewProviderPrimitive::unsetEdit() rely on parent PartDesignGui::ViewProvider to tidy up, including closing the task dialog. Reference: This is the default stack call when closing a document while a PD task using PartDesignGui::Viewprovider is active: |
Affected Issues 0004241 |
|
mod - src/Mod/PartDesign/Gui/ViewProviderPrimitive.cpp | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2020-01-08 08:34 | JoshuaCall | New Issue | |
2020-01-08 13:15 | Kunda1 | Status | new => confirmed |
2020-01-08 13:15 | Kunda1 | Note Added: 0014016 | |
2020-01-08 13:16 | Kunda1 | Priority | normal => immediate |
2020-01-08 13:16 | Kunda1 | Target Version | => 0.19 |
2020-06-07 11:59 | abdullah | Note Added: 0014493 | |
2020-06-09 11:40 | abdullah | Changeset attached | => FreeCAD master 11f55007 |
2020-06-09 11:40 | abdullah | Note Added: 0014519 | |
2020-06-09 11:40 | abdullah | Assigned To | => abdullah |
2020-06-09 11:40 | abdullah | Status | confirmed => closed |
2020-06-09 11:40 | abdullah | Resolution | open => fixed |