Crash when cancelling "Create an additive primitive"

About the development of the Part Design module/workbench. PLEASE DO NOT POST HELP REQUESTS HERE!
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Post Reply
ian.rees
Posts: 696
Joined: Sun Jun 15, 2014 3:28 am
Contact:

Crash when cancelling "Create an additive primitive"

Post by ian.rees »

MacOS 10.10, debug build from "6b1c433 FEM: Results can now be double-clicked to show their task panel"

To reproduce:

Open FreeCAD
Part Design Workbench
New Document
New Part
Create an additive primitive
Click cancel in the task pane
Crash

-Ian-

Code: Select all

Process 27408 stopped
* thread #1: tid = 0x925fdd, 0x00000001013b141c libFreeCADApp.dylib`App::DocumentObject::getDocument(this=0x0000000023090c92) const + 12 at DocumentObject.cpp:216, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x23090dba)
    frame #0: 0x00000001013b141c libFreeCADApp.dylib`App::DocumentObject::getDocument(this=0x0000000023090c92) const + 12 at DocumentObject.cpp:216
   213 	
   214 	App::Document *DocumentObject::getDocument(void) const
   215 	{
-> 216 	    return _pDoc;
   217 	}
   218 	
   219 	void DocumentObject::setDocument(App::Document* doc)
(lldb) bt 10
* thread #1: tid = 0x925fdd, 0x00000001013b141c libFreeCADApp.dylib`App::DocumentObject::getDocument(this=0x0000000023090c92) const + 12 at DocumentObject.cpp:216, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x23090dba)
  * frame #0: 0x00000001013b141c libFreeCADApp.dylib`App::DocumentObject::getDocument(this=0x0000000023090c92) const + 12 at DocumentObject.cpp:216
    frame #1: 0x000000011b5503be Part.so`Part::BodyBase::findBodyOf(f=0x0000000023090c92) + 30 at BodyBase.cpp:55
    frame #2: 0x000000011fa5ec85 _PartDesign.so`PartDesign::Body::findBodyOf(feature=0x0000000023090c92) + 21 at Body.cpp:259
    frame #3: 0x000000011f7a7857 PartDesignGui.so`PartDesignGui::TaskDatumParameters::~TaskDatumParameters(this=0x0000000120d554a0) + 87 at TaskDatumParameters.cpp:775
    frame #4: 0x000000011f7a7a55 PartDesignGui.so`PartDesignGui::TaskDatumParameters::~TaskDatumParameters(this=0x0000000120d554a0) + 21 at TaskDatumParameters.cpp:773
    frame #5: 0x000000011f7a7ad9 PartDesignGui.so`PartDesignGui::TaskDatumParameters::~TaskDatumParameters(this=0x0000000120d554a0) + 25 at TaskDatumParameters.cpp:773
    frame #6: 0x00000001004799ce libFreeCADGui.dylib`Gui::TaskView::TaskDialog::~TaskDialog(this=0x0000000120d55e70) + 446 at TaskDialog.cpp:49
    frame #7: 0x000000011f7c3dc1 PartDesignGui.so`PartDesignGui::TaskPrimitiveParameters::~TaskPrimitiveParameters(this=0x0000000120d55e70) + 65 at TaskPrimitiveParameters.cpp:639
    frame #8: 0x000000011f7c3de5 PartDesignGui.so`PartDesignGui::TaskPrimitiveParameters::~TaskPrimitiveParameters(this=0x0000000120d55e70) + 21 at TaskPrimitiveParameters.cpp:637
    frame #9: 0x000000011f7c3e09 PartDesignGui.so`PartDesignGui::TaskPrimitiveParameters::~TaskPrimitiveParameters(this=0x0000000120d55e70) + 25 at TaskPrimitiveParameters.cpp:637
User avatar
DeepSOIC
Veteran
Posts: 7896
Joined: Fri Aug 29, 2014 12:45 am
Location: used to be Saint-Petersburg, Russia

Re: Crash when cancelling "Create an additive primitive"

Post by DeepSOIC »

Yep, crashes!

OS: Windows 8.1
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.7419 (Git)
Build type: Release
Branch: master
Hash: 6b1c433807dddb0c924e2869df49df534b270340
Python version: 2.7.8
Qt version: 4.8.6
Coin version: 4.0.0a
OCC version: 6.8.0.oce-0.17
User avatar
nemesis
Posts: 373
Joined: Tue Mar 25, 2014 11:24 pm
Location: France, Lyon

Re: Crash when cancelling "Create an additive primitive"

Post by nemesis »

also crash on cancelling "create a substractive primitive"

OS: Mac OS X
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.7437 (Git)
Build type: Release
Branch: (detached from b08a75b)
Hash: b08a75bfb2583baf710c3ae95c7b8227bbdc8daf
Python version: 2.7.11
Qt version: 4.8.7
Coin version: 3.1.3
OCC version: 6.8.0.oce-0.17

Code: Select all

FreeCAD 0.17, Libs: 0.17R7437 (Git)
© Juergen Riegel, Werner Mayer, Yorik van Havre 2001-2015
  #####                 ####  ###   ####  
  #                    #      # #   #   # 
  #     ##  #### ####  #     #   #  #   # 
  ####  # # #  # #  #  #     #####  #   # 
  #     #   #### ####  #    #     # #   # 
  #     #   #    #     #    #     # #   #  ##  ##  ##
  #     #   #### ####   ### #     # ####   ##  ##  ##

Coin warning in cc_glglue_instance(): Error when setting up the GL context. This can happen if there is no current context, or if the context has been set up incorrectly.
2016-04-23 10:56:57.630 FreeCAD[812:26700] modalSession has been exited prematurely - check for a reentrant call to endModalSession:
Gui::DocumentItem::slotChangedObject(): Group references unknown object.
Gui::DocumentItem::slotChangedObject(): Group references unknown object.
Gui::DocumentItem::slotChangedObject(): Group references unknown object.
Gui::DocumentItem::slotChangedObject(): Group references unknown object.
Gui::DocumentItem::slotChangedObject(): Group references unknown object.
Gui::DocumentItem::slotChangedObject(): Group references unknown object.
Gui::DocumentItem::slotChangedObject(): Group references unknown object.
Gui::DocumentItem::slotChangedObject(): Group references unknown object.
Gui::DocumentItem::slotChangedObject(): Group references unknown object.
Gui::DocumentItem::slotChangedObject(): Group references unknown object.
Gui::DocumentItem::slotChangedObject(): Group references unknown object.
Gui::DocumentItem::slotChangedObject(): Group references unknown object.
*** Abort *** an exception was raised, but no catch was found.
	... The exception is:SIGSEGV 'segmentation violation' detected. Address 128
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
Deleting expired sessions...none found.
User avatar
NormandC
Veteran
Posts: 18589
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: Crash when cancelling "Create an additive primitive"

Post by NormandC »

ian.rees wrote:To reproduce:

Open FreeCAD
Part Design Workbench
New Document
New Part
Create an additive primitive
Click cancel in the task pane
Crash
When creating a new Part, what I get is this error dialog:
No active body

In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the transfer function in PartDesign to put them into a Body.
Did you mean New Body?

When actually creating a Body rather than a Part, I get a crash as well.

OS: Ubuntu 14.04.4 LTS
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.7423 (Git)
Build type: Unknown
Branch: master
Hash: bfaa8799edba35ae1609edb6205aaeacf37b73ff
Python version: 2.7.6
Qt version: 4.8.6
Coin version: 4.0.0a
OCC version: 6.8.0.oce-0.17
wmayer
Founder
Posts: 20307
Joined: Thu Feb 19, 2009 10:32 am
Contact:

Re: Crash when cancelling "Create an additive primitive"

Post by wmayer »

git commit 6b4821a fixes the crash.

When pressing the Cancel button the pending transactions are rolled back and thus causes the deletion of various view providers. The class TaskDatumParameters has the member DatumView that will become a dangling pointer. In the destructor of TaskDatumParameters this dangling pointer is accessed and thus causes the segmentation fault.
Post Reply