[solved] FreeCAD crashes after start

Here's the place for discussion related to coding in FreeCAD, C++ or Python. Design, interfaces and structures.
XQAcDozu
Posts: 11
Joined: Mon Apr 18, 2016 3:28 pm

[solved] FreeCAD crashes after start

Postby XQAcDozu » Mon Sep 25, 2017 3:18 pm

Hello,

FreeCAD-0.16-1.15.x86_64
On openSUSE Leap 42.3
KDE Plasma: 5.8.7
QT-Version: 5.6.2
Kernel Version: 4.4.87-25-default 64 bit

1. Start on Bash
2. clicking on Draft
3. It crashes
------

Code: Select all

$ FreeCAD
FreeCAD 0.16, Libs: 0.16RUnknown
© Juergen Riegel, Werner Mayer, Yorik van Havre 2001-2015
  #####                 ####  ###   ####  
  #                    #      # #   #   # 
  #     ##  #### ####  #     #   #  #   # 
  ####  # # #  # #  #  #     #####  #   # 
  #     #   #### ####  #    #     # #   # 
  #     #   #    #     #    #     # #   #  ##  ##  ##
  #     #   #### ####   ### #     # ####   ##  ##  ##

Unhandled std::exception caught in GUIApplication::notify.
The error message is: Keine Berechtigung
Draft workbench activated
FreeCAD: SoType.cpp:730: SbBool SoType::isDerivedFrom(SoType) const: Zusicherung »!this->isBad()« nicht erfüllt.
Abgebrochen (Speicherabzug geschrieben)
Last edited by XQAcDozu on Wed Oct 04, 2017 7:03 pm, edited 1 time in total.
OS: "openSUSE Leap 42.3"
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.16.Unknown
Build type: Release
Python version: 2.7.13
Qt version: 4.8.6
Coin version: 3.1.3
OCC version: 6.9.1.oce-0.18
wmayer
Site Admin
Posts: 14893
Joined: Thu Feb 19, 2009 10:32 am

Re: FreeCAD crashes after start

Postby wmayer » Mon Sep 25, 2017 4:55 pm

FreeCAD: SoType.cpp:730: SbBool SoType::isDerivedFrom(SoType) const: Zusicherung »!this->isBad()« nicht erfüllt.
Check the dependencies of the _coin.so lib of the pivy package and libFreeCADGui.so

Code: Select all

ldd _coin.so
ldd libFreeCADGui.so
What is the output of both?
XQAcDozu
Posts: 11
Joined: Mon Apr 18, 2016 3:28 pm

Re: FreeCAD crashes after start

Postby XQAcDozu » Mon Sep 25, 2017 6:03 pm

Hello,

there is no _coin.so, only

Code: Select all

/usr/lib64 # find . -iname "*coin*" -exec ls -l {} \;
lrwxrwxrwx 1 root root 17 26. Dez 2016  ./libCoin.so.80 -> libCoin.so.80.0.0
-rwxr-xr-x 1 root root 10165896 18. Nov 2016  ./libCoin.so.80.0.0
lrwxrwxrwx 1 root root 17 15. Aug 22:50 ./libCoin.so.60 -> libCoin.so.60.1.3
-rwxr-xr-x 1 root root 9506272 22. Mai 19:04 ./libCoin.so.60.1.3
and here is the output of ...

Code: Select all

/usr/lib64 # ldd ./FreeCAD/lib/libFreeCADGui.so
        linux-vdso.so.1 (0x00007ffef8b6f000)
        libFreeCADApp.so => /usr/lib64/FreeCAD/lib/libFreeCADApp.so (0x00007fc176754000)
        libCoin.so.60 => /usr/lib64/libCoin.so.60 (0x00007fc175c3c000)
        libGL.so.1 => /usr/lib64/libGL.so.1 (0x00007fc1759cc000)
        libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007fc17568c000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fc17546c000)
        libQtOpenGL.so.4 => /usr/lib64/libQtOpenGL.so.4 (0x00007fc17516c000)
        libQtSvg.so.4 => /usr/lib64/libQtSvg.so.4 (0x00007fc174f14000)
        libQtWebKit.so.4 => /usr/lib64/libQtWebKit.so.4 (0x00007fc172bbc000)
        libQtGui.so.4 => /usr/lib64/libQtGui.so.4 (0x00007fc171efc000)
        libQtXml.so.4 => /usr/lib64/libQtXml.so.4 (0x00007fc171cb4000)
        libQtNetwork.so.4 => /usr/lib64/libQtNetwork.so.4 (0x00007fc17196c000)
        libQtCore.so.4 => /usr/lib64/libQtCore.so.4 (0x00007fc17147c000)
        libboost_regex.so.1.58.0 => /usr/lib64/libboost_regex.so.1.58.0 (0x00007fc171174000)
        libboost_signals.so.1.58.0 => /usr/lib64/libboost_signals.so.1.58.0 (0x00007fc170f5c000)
        libboost_system.so.1.58.0 => /usr/lib64/libboost_system.so.1.58.0 (0x00007fc170d54000)
        libspnav.so.0 => /usr/lib64/libspnav.so.0 (0x00007fc170b4c000)
        libshiboken-python2.7.so.1.2 => /usr/lib64/libshiboken-python2.7.so.1.2 (0x00007fc17091c000)
        libFreeCADBase.so => /usr/lib64/FreeCAD/lib/libFreeCADBase.so (0x00007fc17059c000)
        libpython2.7.so.1.0 => /usr/lib64/libpython2.7.so.1.0 (0x00007fc17018c000)
        libxerces-c-3.1.so => /usr/lib64/libxerces-c-3.1.so (0x00007fc16fbcc000)
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007fc16f83c000)
        libm.so.6 => /lib64/libm.so.6 (0x00007fc16f53c000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fc16f324000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fc16ef7c000)
        libboost_program_options.so.1.58.0 => /usr/lib64/libboost_program_options.so.1.58.0 (0x00007fc16ed04000)
        libGLU.so.1 => /usr/lib64/libGLU.so.1 (0x00007fc16ea84000)
        libbz2.so.1 => /usr/lib64/libbz2.so.1 (0x00007fc16e874000)
        libz.so.1 => /lib64/libz.so.1 (0x00007fc16e65c000)
        libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007fc16e3bc000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007fc16e1b4000)
        libopenal.so.1 => /usr/lib64/libopenal.so.1 (0x00007fc16df44000)
        libexpat.so.1 => /usr/lib64/libexpat.so.1 (0x00007fc16dd14000)
        libxcb-dri3.so.0 => /usr/lib64/libxcb-dri3.so.0 (0x00007fc16db0c000)
        libxcb-present.so.0 => /usr/lib64/libxcb-present.so.0 (0x00007fc16d904000)
        libxcb-sync.so.1 => /usr/lib64/libxcb-sync.so.1 (0x00007fc16d6fc000)
        libxshmfence.so.1 => /usr/lib64/libxshmfence.so.1 (0x00007fc16d4f4000)
        libglapi.so.0 => /usr/lib64/libglapi.so.0 (0x00007fc16d2c4000)
        libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007fc16d0ac000)
        libXdamage.so.1 => /usr/lib64/libXdamage.so.1 (0x00007fc16cea4000)
        libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x00007fc16cc9c000)
        libX11-xcb.so.1 => /usr/lib64/libX11-xcb.so.1 (0x00007fc16ca94000)
        libxcb-glx.so.0 => /usr/lib64/libxcb-glx.so.0 (0x00007fc16c87c000)
        libxcb-dri2.so.0 => /usr/lib64/libxcb-dri2.so.0 (0x00007fc16c674000)
        libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007fc16c454000)
        libXxf86vm.so.1 => /usr/lib64/libXxf86vm.so.1 (0x00007fc16c24c000)
        libdrm.so.2 => /usr/lib64/libdrm.so.2 (0x00007fc16c034000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fc1777fc000)
        libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x00007fc16be24000)
        libjpeg.so.8 => /usr/lib64/libjpeg.so.8 (0x00007fc16bbcc000)
        libpng16.so.16 => /usr/lib64/libpng16.so.16 (0x00007fc16b98c000)
        libwebp.so.5 => /usr/lib64/libwebp.so.5 (0x00007fc16b72c000)
        libxslt.so.1 => /usr/lib64/libxslt.so.1 (0x00007fc16b4ec000)
        libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007fc16b17c000)
        libgstapp-1.0.so.0 => /usr/lib64/libgstapp-1.0.so.0 (0x00007fc16af6c000)
        libgstpbutils-1.0.so.0 => /usr/lib64/libgstpbutils-1.0.so.0 (0x00007fc16ad34000)
        libgstvideo-1.0.so.0 => /usr/lib64/libgstvideo-1.0.so.0 (0x00007fc16aaac000)
        libgstaudio-1.0.so.0 => /usr/lib64/libgstaudio-1.0.so.0 (0x00007fc16a84c000)
        libgstbase-1.0.so.0 => /usr/lib64/libgstbase-1.0.so.0 (0x00007fc16a5ec000)
        libgstreamer-1.0.so.0 => /usr/lib64/libgstreamer-1.0.so.0 (0x00007fc16a2c4000)
        libgobject-2.0.so.0 => /usr/lib64/libgobject-2.0.so.0 (0x00007fc16a06c000)
        libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007fc169d5c000)
        libsqlite3.so.0 => /usr/lib64/libsqlite3.so.0 (0x00007fc169a94000)
        libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x00007fc169854000)
        libSM.so.6 => /usr/lib64/libSM.so.6 (0x00007fc16964c000)
        libICE.so.6 => /usr/lib64/libICE.so.6 (0x00007fc16942c000)
        libXi.so.6 => /usr/lib64/libXi.so.6 (0x00007fc16921c000)
        libXrandr.so.2 => /usr/lib64/libXrandr.so.2 (0x00007fc16900c000)
        libXcursor.so.1 => /usr/lib64/libXcursor.so.1 (0x00007fc168dfc000)
        libXinerama.so.1 => /usr/lib64/libXinerama.so.1 (0x00007fc168bf4000)
        libssl.so.1.0.0 => /lib64/libssl.so.1.0.0 (0x00007fc168984000)
        libcrypto.so.1.0.0 => /lib64/libcrypto.so.1.0.0 (0x00007fc168524000)
        librt.so.1 => /lib64/librt.so.1 (0x00007fc16831c000)
        libicui18n.so.52.1 => /usr/lib64/libicui18n.so.52.1 (0x00007fc167f04000)
        libicuuc.so.52.1 => /usr/lib64/libicuuc.so.52.1 (0x00007fc167b84000)
        libutil.so.1 => /lib64/libutil.so.1 (0x00007fc16797c000)
        libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007fc167774000)
        liblzma.so.5 => /usr/lib64/liblzma.so.5 (0x00007fc167544000)
        libgsttag-1.0.so.0 => /usr/lib64/libgsttag-1.0.so.0 (0x00007fc167304000)
        liborc-0.4.so.0 => /usr/lib64/liborc-0.4.so.0 (0x00007fc16707c000)
        libgmodule-2.0.so.0 => /usr/lib64/libgmodule-2.0.so.0 (0x00007fc166e74000)
        libffi.so.4 => /usr/lib64/libffi.so.4 (0x00007fc166c64000)
        libpcre.so.1 => /usr/lib64/libpcre.so.1 (0x00007fc1669f4000)
        libuuid.so.1 => /usr/lib64/libuuid.so.1 (0x00007fc1667ec000)
        libicudata.so.52.1 => /usr/lib64/libicudata.so.52.1 (0x00007fc1665e4000)
I get the feeling, that this will be your next question

Code: Select all

/usr/lib64 # rpm -aq | grep pivy
python-pivy-0.5.0+hg20101206.2327-2.2.x86_64
Greetings
OS: "openSUSE Leap 42.3"
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.16.Unknown
Build type: Release
Python version: 2.7.13
Qt version: 4.8.6
Coin version: 3.1.3
OCC version: 6.9.1.oce-0.18
wmayer
Site Admin
Posts: 14893
Joined: Thu Feb 19, 2009 10:32 am

Re: FreeCAD crashes after start

Postby wmayer » Mon Sep 25, 2017 7:32 pm

Don't you have a package called pivy or python-pivy on suse? Usually you get this error
FreeCAD: SoType.cpp:730: SbBool SoType::isDerivedFrom(SoType) const: Zusicherung »!this->isBad()« nicht erfüllt.
when an application links two different Coin versions.

Obviously FreeCAD GUI links against libCoin.so.60 which is v3.1.3 and another library (I assume pivy) links against libCoin.so.80 which is 3.1.4 (or 4.0.0)
XQAcDozu
Posts: 11
Joined: Mon Apr 18, 2016 3:28 pm

Re: FreeCAD crashes after start

Postby XQAcDozu » Mon Sep 25, 2017 8:04 pm

Hello,

already posted I installed python-pivy from packman

Code: Select all

python-pivy-0.5.0+hg20101206.2327-2.2.x86_64
I found the coin lib files under

Code: Select all

/usr/lib/python2.7/site-packages/pivy/_coin.so
and

Code: Select all

/usr/lib64/libCoin.so.60
On which path does FreeCAD looking for these librarys? Maybe it would help to create a logical link on this path.

Greetings
OS: "openSUSE Leap 42.3"
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.16.Unknown
Build type: Release
Python version: 2.7.13
Qt version: 4.8.6
Coin version: 3.1.3
OCC version: 6.9.1.oce-0.18
wmayer
Site Admin
Posts: 14893
Joined: Thu Feb 19, 2009 10:32 am

Re: FreeCAD crashes after start

Postby wmayer » Tue Sep 26, 2017 12:42 pm

already posted I installed python-pivy from packman
Oh, I overlooked this.

So, what is the output of

Code: Select all

ldd /usr/lib/python2.7/site-packages/pivy/_coin.so
Is it also /usr/lib64/libCoin.so.60 or is it /usr/lib64/libCoin.so.80?
On which path does FreeCAD looking for these librarys? Maybe it would help to create a logical link on this path.
It's not the problem that FreeCAD can't find the library. The problem is that two different Coin versions are loaded at runtime and this leads to undefined behaviour.
XQAcDozu
Posts: 11
Joined: Mon Apr 18, 2016 3:28 pm

Re: FreeCAD crashes after start

Postby XQAcDozu » Tue Sep 26, 2017 4:05 pm

Hello,

Code: Select all

$ ldd /usr/lib/python2.7/site-packages/pivy/_coin.so | grep libCoin
        libCoin.so.80 => /usr/lib64/libCoin.so.80 (0x00007efe9245f000)
$ ldd /usr/lib/python2.7/site-packages/pivy/_coin.so | grep 60
Well, if I understand right, FreeCAD needs libCoin 60, but python links 80s version. Is there an elegant method to bend the linker to the right library?

Greetings
OS: "openSUSE Leap 42.3"
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.16.Unknown
Build type: Release
Python version: 2.7.13
Qt version: 4.8.6
Coin version: 3.1.3
OCC version: 6.9.1.oce-0.18
wmayer
Site Admin
Posts: 14893
Joined: Thu Feb 19, 2009 10:32 am

Re: FreeCAD crashes after start

Postby wmayer » Tue Sep 26, 2017 5:15 pm

Well, if I understand right, FreeCAD needs libCoin 60, but python links 80s version. Is there an elegant method to bend the linker to the right library?
No, that's not possible. Coin3d is a C++ library and version 3.1.3 and 3.1.4 (or 4.0.0 respectively) are binary incompatible. Any attempt to trick out the linker will either lead to an immediate crash or the linker reports unresolved symbols.

The one and only way is to report a bug to the package maintainer. Since pivy links against the newer version I recommend to contact the package maintainer for FreecAD to move to the newer Coin3d version. This should be fairly easy because only a build script or so needs to be adjusted, I guess. Source code of FreeCAD doesn't need to be touched as it runs with that Coin3d version for several years now.
XQAcDozu
Posts: 11
Joined: Mon Apr 18, 2016 3:28 pm

Re: FreeCAD crashes after start

Postby XQAcDozu » Wed Oct 04, 2017 7:03 pm

Hello,

after deinstalling python-pivy FreeCAD starts and loads old sketches without crashing.
Currently I don't see a negative effect on FreeCAD. It will take time to find side effects.
OS: "openSUSE Leap 42.3"
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.16.Unknown
Build type: Release
Python version: 2.7.13
Qt version: 4.8.6
Coin version: 3.1.3
OCC version: 6.9.1.oce-0.18
wmayer
Site Admin
Posts: 14893
Joined: Thu Feb 19, 2009 10:32 am

Re: [solved] FreeCAD crashes after start

Postby wmayer » Thu Oct 05, 2017 6:21 am

The side-effects will be that modules like Arch or Draft cannot be used any more.