Part Design, Crash in recent 0.19 (2020-05-25)

Have some feature requests, feedback, cool stuff to share, or want to know where FreeCAD is going? This is the place.
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
galou_breizh
Posts: 436
Joined: Wed Sep 15, 2010 9:38 am

Part Design, Crash in recent 0.19 (2020-05-25)

Post by galou_breizh »

I discovered a crash.

- Open the attached file
crash.fcstd
(52.33 KiB) Downloaded 32 times
.
- Load the Part Design Workbench
- Select Fillet002 in the tree
- Press the Delete key --> Crash!

Note that there is no crash when you delete Fillet002 with the "Edit/Delete" menu.

Gaël

OS: Ubuntu 18.04.4 LTS (i3/i3)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.
Build type: Release
Branch: unknown
Hash: 40600a55c2fe71ff589be677f6e427ccc937d003
Python version: 3.6.9
Qt version: 5.9.5
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: C/Default (C)
Syres
Veteran
Posts: 2893
Joined: Thu Aug 09, 2018 11:14 am

Re: Part Design, Crash in recent 0.19 (2020-05-25)

Post by Syres »

Are you sure you uploaded the correct file, see screenshot?
CrashTree.png
CrashTree.png (12.3 KiB) Viewed 1105 times
OS: Linux Mint 19.3 (X-Cinnamon/cinnamon)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.21231 (Git)
Build type: Unknown
Branch: master
Hash: c1ca01b0e79efa44f39ee377bb97517e2fd7debf
Python version: 3.6.9
Qt version: 5.9.5
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/UnitedKingdom (en_GB)

I chose one of my most complex (30Mb) PD models (don't use PD much) and deleted the last Fillet with the Delete key absolutely fine.
galou_breizh
Posts: 436
Joined: Wed Sep 15, 2010 9:38 am

Re: Part Design, Crash in recent 0.19 (2020-05-25)

Post by galou_breizh »

Yes, this is the correct file. What I wanted to do is actually modify something earlier in the tree. For this purpose, I changed the tip. I didn't want to delete the fillets because I wanted to record the radius values. Then I realized that the fillets don't make sense anymore so wanted to delete them.

Do you also get the crash with my file?
chrisb
Veteran
Posts: 53919
Joined: Tue Mar 17, 2015 9:14 am

Re: Part Design, Crash in recent 0.19 (2020-05-25)

Post by chrisb »

galou_breizh wrote: Mon May 25, 2020 12:34 pm Yes, this is the correct file.
You talk about deleting Fillet002, but there is no such Fillet in the file.
I tried both fillets (i.e. Fillet and Fillet001) in arbitrary sequence - no crash, so it may be system dependent.

OS: macOS High Sierra (10.13)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.21125 (Git)
Build type: Release
Branch: master
Hash: 40600a55c2fe71ff589be677f6e427ccc937d003
Python version: 3.8.2
Qt version: 5.12.5
Coin version: 4.0.0
OCC version: 7.4.0
Locale: C/Default (C)
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
Syres
Veteran
Posts: 2893
Joined: Thu Aug 09, 2018 11:14 am

Re: Part Design, Crash in recent 0.19 (2020-05-25)

Post by Syres »

galou_breizh wrote: Mon May 25, 2020 12:34 pm Do you also get the crash with my file?
Deleting Fillet001 then Fillet with the Delete key I get this in the Report View (no hard crash) which maybe of use to the devs:

Code: Select all

0 <App> Document.cpp(3715): Failed to recompute crash#Fillet001: Fillet not possible on selected shapes
Recompute failed! Please check report view.
29.3313 <App> Document.cpp(3715): Failed to recompute crash#Fillet: Fillet not possible on selected shapes
Recompute failed! Please check report view.
I've since switched over to my Windows partition but the same build number:

OS: Windows 7 SP 1 (6.1)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.21231 (Git)
Build type: Release
Branch: master
Hash: c1ca01b0e79efa44f39ee377bb97517e2fd7debf
Python version: 3.6.8
Qt version: 5.12.1
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/United Kingdom (en_GB)
galou_breizh
Posts: 436
Joined: Wed Sep 15, 2010 9:38 am

Re: Part Design, Crash in recent 0.19 (2020-05-25)

Post by galou_breizh »

Oh yes, I meant Fillet001.
galou_breizh
Posts: 436
Joined: Wed Sep 15, 2010 9:38 am

Re: Part Design, Crash in recent 0.19 (2020-05-25)

Post by galou_breizh »

The backtrace is

Code: Select all

Program received signal SIGSEGV, Segmentation fault.
#0  /lib/x86_64-linux-gnu/libc.so.6(+0x3ef20) [0x7fa2f6dc8f20]
#1  0x7fa2f81c19b0 in QRasterPaintEngine::renderHintsChanged() from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0xf0
#2  0x7fa2f81da2a1 in QPainter::setRenderHints(QFlags<QPainter::RenderHint>, bool) from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0x51
#3  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(+0x1ef506) [0x7fa2f87bf506]
#4  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(+0x1f7fcd) [0x7fa2f87c7fcd]
#5  0x7fa2f8759f75 in QWidgetPrivate::paintBackground(QPainter*, QRegion const&, int) const from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x165
#6  0x7fa2f875cd1b in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0xb2b
#7  0x7fa2f875d3c0 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x360
#8  0x7fa2f875c366 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x176
#9  0x7fa2f875d3c0 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x360
#10  0x7fa2f875d549 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x4e9
#11  0x7fa2f875c366 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x176
#12  0x7fa2f875d3c0 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x360
#13  0x7fa2f875c366 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x176
#14  0x7fa2f875d3c0 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x360
#15  0x7fa2f875d549 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x4e9
#16  0x7fa2f875c366 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x176
#17  0x7fa2f875d3c0 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x360
#18  0x7fa2f875c366 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x176
#19  0x7fa2f875d3c0 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x360
#20  0x7fa2f875c366 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x176
#21  0x7fa2f875d3c0 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x360
#22  0x7fa2f875d549 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x4e9
#23  0x7fa2f875c366 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x176
#24  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(+0x163e64) [0x7fa2f8733e64]
#25  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(+0x1640a5) [0x7fa2f87340a5]
#26  0x7fa2f874b67f in QWidgetPrivate::syncBackingStore() from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x4f
#27  0x7fa2f87631b8 in QWidget::event(QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x368
#28  0x7fa2f8876c6b in QMainWindow::event(QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x15b
#29  0x7fa2fa714a5b in Gui::MainWindow::event(QEvent*) from /usr/lib/freecad-daily-python3/lib/libFreeCADGui.so+0x7b
#30  0x7fa2f872483c in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x9c
#31  0x7fa2f872c104 in QApplication::notify(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x2a4
#32  0x7fa2fa377a88 in Gui::GUIApplication::notify(QObject*, QEvent*) from /usr/lib/freecad-daily-python3/lib/libFreeCADGui.so+0x88
#33  0x7fa2f79a68d8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x118
#34  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(+0x164ec8) [0x7fa2f8734ec8]
#35  /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(+0x165ebf) [0x7fa2f8735ebf]
#36  0x7fa2f874d3c7 in QWidget::repaint(QRect const&) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x97
#37  0x7fa2f88cf6fe in QStatusBar::hideOrShow() from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x15e
#38  0x7fa2f88cf7aa in QStatusBar::showMessage(QString const&, int) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x6a
#39  0x7fa2fa70dea0 in Gui::MainWindow::showStatus(int, QString const&) from /usr/lib/freecad-daily-python3/lib/libFreeCADGui.so+0x190
#40  0x7fa2fa711100 in Gui::MainWindow::customEvent(QEvent*) from /usr/lib/freecad-daily-python3/lib/libFreeCADGui.so+0x220
#41  0x7fa2f79d607b in QObject::event(QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x9b
#42  0x7fa2f876375b in QWidget::event(QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x90b
#43  0x7fa2f8876c6b in QMainWindow::event(QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x15b
#44  0x7fa2fa714a5b in Gui::MainWindow::event(QEvent*) from /usr/lib/freecad-daily-python3/lib/libFreeCADGui.so+0x7b
#45  0x7fa2f872483c in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x9c
#46  0x7fa2f872c104 in QApplication::notify(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x2a4
#47  0x7fa2fa377a88 in Gui::GUIApplication::notify(QObject*, QEvent*) from /usr/lib/freecad-daily-python3/lib/libFreeCADGui.so+0x88
#48  0x7fa2f79a68d8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x118
#49  0x7fa2f79a904d in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x1ed
#50  /usr/lib/x86_64-linux-gnu/libQt5Core.so.5(+0x2e4263) [0x7fa2f7a00263]
#51  /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x2e7) [0x7fa2f20c2417]
#52  /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x4c650) [0x7fa2f20c2650]
#53  /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_iteration+0x2c) [0x7fa2f20c26dc]
#54  0x7fa2f79ff88f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x5f
#55  0x7fa2f79a490a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x13a
#56  0x7fa2f79ad9b4 in QCoreApplication::exec() from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x94
#57  0x7fa2fa2e7a81 in Gui::Application::runApplication() from /usr/lib/freecad-daily-python3/lib/libFreeCADGui.so+0x14d1
#58  freecad-daily(+0x3522) [0x5606bbca1522]
#59  /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7) [0x7fa2f6dabb97]
#60  freecad-daily(+0x421a) [0x5606bbca221a]

fcaduser
Posts: 446
Joined: Wed Feb 19, 2014 6:53 pm
Location: Near Paris, France

Re: Part Design, Crash in recent 0.19 (2020-05-25)

Post by fcaduser »

Doesn't crash with this version :

#############################################
OS: Debian GNU/Linux 10 (buster) (GNOME/gnome)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.21231 (Git)
Build type: Release
Branch: master
Hash: c1ca01b0e79efa44f39ee377bb97517e2fd7debf
Python version: 3.7.3
Qt version: 5.11.3
Coin version: 4.0.0a
OCC version: 7.4.1.dev
Locale: French/France (fr_FR)
jpgergaud
Posts: 3
Joined: Sat Feb 10, 2018 9:54 am

Re: Part Design, Crash in recent 0.19 (2020-05-25)

Post by jpgergaud »

tellement nul les evolution du part design qui oblige à créer des body inutiles que je retourne travailler avec la version 0.16 bien plus facile et logique!!
Pourquoi cette regression??????
Par exemple, créer un cube sous part puis chamfreiner sous aprt desing en 0.16 était très facile. Sou 0.19 il faut creer en plus une body pour pourvoir faire ce chamfrein. Pourquoi compliquer??? quelle logique?
Dommage.
User avatar
Shalmeneser
Veteran
Posts: 9474
Joined: Wed Dec 23, 2020 12:04 am
Location: Fr

Re: Part Design, Crash in recent 0.19 (2020-05-25)

Post by Shalmeneser »

jpgergaud wrote: Mon Jul 04, 2022 5:52 am tellement nul les evolution du part design qui oblige à créer des body inutiles que je retourne travailler avec la version 0.16 bien plus facile et logique!!
Pourquoi cette regression??????
Par exemple, créer un cube sous part puis chamfreiner sous aprt desing en 0.16 était très facile. Sou 0.19 il faut creer en plus une body pour pourvoir faire ce chamfrein. Pourquoi compliquer??? quelle logique?
Dommage.
* Evolution is for a better / logic organisation.
* 0.20 is far better than 0.16.
* using different workbenches is not useful when you can stay in the same wb : don't use Part Chamfer when you can use PartDesign Chamfer !
Post Reply