View Issue Details

IDProjectCategoryView StatusLast Update
0004598TechDrawBugpublic2021-03-27 12:30
Reportermatthijskooijman Assigned Towmayer  
PriorityhighSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Product Version0.19 
Target Version0.20 
Summary0004598: Segfault when deleting template without page
DescriptionFiddling around with templates and pages in TechDraw, I managed a segfault, that I can reliably reproduce with 0.19 stable (from the PPA).

I've skipped making a post on the forum, since a segfault is clearly a bug. If that's not ok, let me know and I'll go through the extra step of writing a bug report on the forum first next time.


Steps To Reproduce1. Create a new document, select TechDraw
2. Create 2 default pages (TechDraw -> Insert Default Page)
3. Expand both pages in the tree view.
4. Drag "Template" and drop it onto "Template001". This replaces the latter with the former, so now both pages use "Template". The original "Template001" is now shown next to both pages.
5. Delete "Template001" -> Segfault.

Additional Information
Backtrace

Program received signal SIGSEGV, Segmentation fault.                       
#0  /lib/x86_64-linux-gnu/libc.so.6(+0x46210) [0x7f3ea80d4210]                                                                                                 
#1  0x7f3eaa1360c4 in App::PropertyString::getValue() const from /usr/lib/freecad-python3/lib/libFreeCADApp.so+0x4
0000002  0x7f3e2c47cb68 in TechDrawGui::ViewProviderTemplate::onDelete(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, 
std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) from /usr/lib/freecad-python3/lib/TechDrawGui.so+0xc
8                                                                                                                                                              
0000003  0x7f3eaa7f2c76 in StdCmdDelete::activated(int) from /usr/lib/freecad-python3/lib/libFreeCADGui.so+0x676
0000004  0x7f3eaa7e52b0 in Gui::Command::invoke(int, Gui::Command::TriggerSource) from /usr/lib/freecad-python3/lib/libFreeCADGui.so+0x4d0
0000005  0x7f3ea872e300 in QMetaObject::activate(QObject*, int, int, void**) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x7d0
0000006  0x7f3ea91163e6 in QAction::triggered(bool) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x46
0000007  0x7f3ea9118aa2 in QAction::activate(QAction::ActionEvent) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0xf2
0000008  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(+0x2ecd12) [0x7f3ea929ed12]
0000009  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(+0x2f44ae) [0x7f3ea92a64ae]
0000010  0x7f3ea92a74d2 in QMenu::mouseReleaseEvent(QMouseEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x272
0000011  0x7f3ea915f2b6 in QWidget::event(QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x286
0000012  0x7f3ea92a9adb in QMenu::event(QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x15b
0000013  0x7f3ea911ca66 in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x86
0000014  0x7f3ea9126343 in QApplication::notify(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x583
0000015  0x7f3eaa7b11d8 in Gui::GUIApplication::notify(QObject*, QEvent*) from /usr/lib/freecad-python3/lib/libFreeCADGui.so+0x88
0000016  0x7f3ea870293a in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x18a
0000017  0x7f3ea9125457 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x1b7
0000018  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(+0x1c9ce4) [0x7f3ea917bce4]
0000019  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(+0x1cc1ec) [0x7f3ea917e1ec]
0000020  0x7f3ea911ca66 in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x86
0000021  0x7f3ea91260f0 in QApplication::notify(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x330
0000022  0x7f3eaa7b11d8 in Gui::GUIApplication::notify(QObject*, QEvent*) from /usr/lib/freecad-python3/lib/libFreeCADGui.so+0x88
0000023  0x7f3ea870293a in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x18a
0000024  0x7f3ea8aed7d3 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0x6e3
0000025  0x7f3ea8aee7f6 in QGuiApplicationPrivate::processTabletEvent(QWindowSystemInterfacePrivate::TabletEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0x4f6
0000026  0x7f3ea8aef0ca in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0x21a
0000027  0x7f3ea8ac935b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0xbb
0000028  /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5(+0x7932e) [0x7f3ea238f32e]
0000029  /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x27d) [0x7f3ea63b017d]
0000030  /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x52400) [0x7f3ea63b0400]
0000031  /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_iteration+0x33) [0x7f3ea63b04a3]
0000032  0x7f3ea875a565 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x65
0000033  0x7f3ea87014db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x12b
0000034  0x7f3ea92a40b1 in QMenu::exec(QPoint const&, QAction*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x71
0000035  0x7f3eaa96a002 in Gui::TreeWidget::contextMenuEvent(QContextMenuEvent*) from /usr/lib/freecad-python3/lib/libFreeCADGui.so+0x542
0000036  0x7f3ea915f2b6 in QWidget::event(QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x286
0000037  0x7f3ea920cd52 in QFrame::event(QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x22
0000038  0x7f3ea9391482 in QAbstractItemView::viewportEvent(QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x72
#39  0x7f3ea93ff62f in QTreeView::viewportEvent(QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x3f
#40  0x7f3ea870264b in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x9b
0000041  0x7f3ea911ca55 in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x75
0000042  0x7f3ea9126b93 in QApplication::notify(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0xdd3
0000043  0x7f3eaa7b11d8 in Gui::GUIApplication::notify(QObject*, QEvent*) from /usr/lib/freecad-python3/lib/libFreeCADGui.so+0x88
0000044  0x7f3ea870293a in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x18a
0000045  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(+0x1c994a) [0x7f3ea917b94a]
0000046  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(+0x1cc1ec) [0x7f3ea917e1ec]
0000047  0x7f3ea911ca66 in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x86
0000048  0x7f3ea91260f0 in QApplication::notify(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x330
0000049  0x7f3eaa7b11d8 in Gui::GUIApplication::notify(QObject*, QEvent*) from /usr/lib/freecad-python3/lib/libFreeCADGui.so+0x88
0000050  0x7f3ea870293a in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x18a
0000051  0x7f3ea8aed7d3 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0x6e3
0000052  0x7f3ea8aee7f6 in QGuiApplicationPrivate::processTabletEvent(QWindowSystemInterfacePrivate::TabletEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0x4f6
0000053  0x7f3ea8aef0ca in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0x21a
0000054  0x7f3ea8ac935b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0xbb
0000055  /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5(+0x7932e) [0x7f3ea238f32e]
0000056  /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x27d) [0x7f3ea63b017d]
0000057  /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x52400) [0x7f3ea63b0400]
0000058  /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_iteration+0x33) [0x7f3ea63b04a3]
0000059  0x7f3ea875a565 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x65
0000060  0x7f3ea87014db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x12b
0000061  0x7f3ea8709246 in QCoreApplication::exec() from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x96
0000062  0x7f3eaa720d96 in Gui::Application::runApplication() from /usr/lib/freecad-python3/lib/libFreeCADGui.so+0x1816
0000063  freecad(+0x4cde) [0x555cdcce1cde]
0000064  /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x7f3ea80b50b3]
0000065  freecad(+0x506e) [0x555cdcce206e]
Tags#pending-forum
FreeCAD InformationOS: Ubuntu 20.04.2 LTS (GNOME/gnome-xorg)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.
Build type: Release
Branch: unknown
Hash: 9e3b630bbfb6807e93eeffb655e6c20f218644fc
Python version: 3.8.5
Qt version: 5.12.8
Coin version: 4.0.0
OCC version: 7.5.1
Locale: English/United States (en_US)

Activities

matthijskooijman

2021-03-17 10:32

reporter   ~0015528

Here's an example file generated using steps 1-4, doing step 5 on it will crash FreeCAD.

Kunda1

2021-03-27 10:41

administrator   ~0015552

Forum thread: https://forum.freecadweb.org/viewtopic.php?f=35&t=57135
(yes please open a forum thread first, many bugs get fixed in the forum, if not then we open a ticket)

wmayer

2021-03-27 12:30

administrator   ~0015557

Fix committed to master branch.

Related Changesets

FreeCAD: master 5e73e718

2021-03-27 12:18:15

wmayer

Details Diff
TD: fixes 0004598: Segfault when deleting template without page Affected Issues
0004598
mod - src/Mod/TechDraw/Gui/ViewProviderTemplate.cpp Diff File

Issue History

Date Modified Username Field Change
2021-03-17 10:30 matthijskooijman New Issue
2021-03-17 10:32 matthijskooijman Note Added: 0015528
2021-03-17 10:32 matthijskooijman File Added: Techdraw template segfault.FCStd
2021-03-27 10:41 Kunda1 Priority normal => high
2021-03-27 10:41 Kunda1 Severity minor => crash
2021-03-27 10:41 Kunda1 Target Version => 0.20
2021-03-27 10:41 Kunda1 Note Added: 0015552
2021-03-27 10:41 Kunda1 Tag Attached: #pending-forum
2021-03-27 12:30 wmayer Changeset attached => FreeCAD master 5e73e718
2021-03-27 12:30 wmayer Note Added: 0015557
2021-03-27 12:30 wmayer Assigned To => wmayer
2021-03-27 12:30 wmayer Status new => closed
2021-03-27 12:30 wmayer Resolution open => fixed