segmentation fault... not sure what happened

$ ardour
Ardour 2.8.11
   (built using 7387 and GCC version 4.4.3)
Copyright (C) 1999-2008 Paul Davis
Some portions Copyright (C) Steve Harris, Ari Johnson, Brett Viren, Joel Baker

Ardour comes with ABSOLUTELY NO WARRANTY
not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
This is free software, and you are welcome to redistribute it 
under certain conditions; see the source for copying conditions.
loading default ui configuration file /etc/ardour2/ardour2_ui_default.conf
Loading ui configuration file /etc/ardour2/ardour2_ui_dark.rc
theme_init() called from internal clearlooks engine
ardour: [INFO]: Ardour will be limited to 1024 open files
loading system configuration file /etc/ardour2/ardour_system.rc
ardour: [INFO]: No H/W specific optimizations in use
Segmentation fault

The only thing I was doing at the time (between when it was loaded and working and after it died and began seg fauting) was moving around some lv2 plugins in /usr/local/lib/lv2. Ardour shouldn’t die if any of these are missing, should it? I would tend to think not… Anyway, this happens everytime I try to launch Ardour now :frowning:

Hmm, if you moved a library that Ardour had dynamically loaded(Such as a plugin) then yes I could see that crashing Ardour while it was running. However unless you moved a core library that Ardour loads, it should not segfault on load. You can try reinstalling Ardour at this point and see if that makes a difference, I would also ask if this is only on opening an existing session or is it on creating a new session? And where exactly does the segfault occur, before you even get the initial New/Open/Audio dialog or after?

 Seablade

I tried reinstalling ardour with both aptitude and synaptic, also tried removing the folder ~/.ardour2. None of these helped. It seg faults before I even get a popup message asking about sessions. I can basically see the jack connections popup ever so briefly in gladish, then they disappear and its gone…

@triune: http://ardour.org/debugging_ardour … in particular, please read the section called “Generating backtraces from core dumps”

Don’t really wanna start compiling from source to solve this… but I did find this out, so it looks like I’m missing some stuff which I can probably correct by re-installing some packages >>

$ ldd /usr/lib/ardour2/ardour-2.8.11
linux-vdso.so.1 => (0x00007fff99dff000)
libardour.so => not found
libardour_cp.so => not found
libatkmm-1.6.so.1 => /usr/lib/libatkmm-1.6.so.1 (0x00007f84d78fb000)
libglibmm-2.4.so.1 => /usr/lib/libglibmm-2.4.so.1 (0x00007f84d76a2000)
libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0x00007f84d7481000)
libsigc-2.0.so.0 => /usr/lib/libsigc-2.0.so.0 (0x00007f84d727a000)
libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x00007f84d7032000)
libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x00007f84d6e2d000)
librt.so.1 => /lib/librt.so.1 (0x00007f84d6c24000)
libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0x00007f84d6946000)
libfftw3.so.3 => /usr/lib/libfftw3.so.3 (0x00007f84d664b000)
libfftw3f.so.3 => /usr/lib/libfftw3f.so.3 (0x00007f84d6357000)
libm.so.6 => /lib/libm.so.6 (0x00007f84d60d4000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007f84d5e4e000)
libgdkmm-2.4.so.1 => /usr/lib/libgdkmm-2.4.so.1 (0x00007f84d5c00000)
libgiomm-2.4.so.1 => /usr/lib/libgiomm-2.4.so.1 (0x00007f84d5950000)
libpangomm-1.4.so.1 => /usr/lib/libpangomm-1.4.so.1 (0x00007f84d5722000)
libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0x00007f84d50ff000)
libcairomm-1.0.so.1 => /usr/lib/libcairomm-1.0.so.1 (0x00007f84d4ede000)
libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0x00007f84d4c31000)
libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0x00007f84d497d000)
libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0x00007f84d4753000)
libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0x00007f84d4537000)
libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0x00007f84d4329000)
libcairo.so.2 => /usr/lib/libcairo.so.2 (0x00007f84d406b000)
libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0x00007f84d3e21000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00007f84d3beb000)
libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x00007f84d39e7000)
libgtkmm-2.4.so.1 => /usr/lib/libgtkmm-2.4.so.1 (0x00007f84d3385000)
libgtkmm2ext.so => not found
libjack.so.0 => /usr/local/lib/libjack.so.0 (0x00007f84d3135000)
libgnomecanvas-2.so.0 => /usr/lib/libgnomecanvas-2.so.0 (0x00007f84d2f00000)
libart_lgpl_2.so.2 => /usr/lib/libart_lgpl_2.so.2 (0x00007f84d2ce6000)
libgnomecanvasmm-2.6.so.1 => /usr/lib/libgnomecanvasmm-2.6.so.1 (0x00007f84d2a9a000)
liblrdf.so.0 => /usr/lib/liblrdf.so.0 (0x00007f84d2884000)
libmidi++.so => not found
libpbd.so => not found
libsamplerate.so.0 => /usr/lib/libsamplerate.so.0 (0x00007f84d2517000)
libsndfile.so.1 => /usr/lib/libsndfile.so.1 (0x00007f84d22b1000)
libasound.so.2 => /usr/lib/libasound.so.2 (0x00007f84d1fd0000)
libvamp-hostsdk.so.3 => /usr/lib/libvamp-hostsdk.so.3 (0x00007f84d1d97000)
libdl.so.2 => /lib/libdl.so.2 (0x00007f84d1b92000)
libvamp-sdk.so.2 => /usr/lib/libvamp-sdk.so.2 (0x00007f84d197b000)
libxml2.so.2 => /usr/lib/libxml2.so.2 (0x00007f84d162b000)
libxslt.so.1 => /usr/lib/libxslt.so.1 (0x00007f84d13ef000)
libcurl-gnutls.so.4 => /usr/lib/libcurl-gnutls.so.4 (0x00007f84d11ac000)
librubberband.so => /usr/lib/librubberband.so (0x00007f84d0f81000)
librdf.so.0 => /usr/lib/librdf.so.0 (0x00007f84d0d42000)
librasqal.so.2 => /usr/lib/librasqal.so.2 (0x00007f84d0af9000)
libraptor.so.1 => /usr/lib/libraptor.so.1 (0x00007f84d0895000)
libslv2.so.9 => /usr/lib/libslv2.so.9 (0x00007f84d0686000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f84d0372000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f84d015b000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007f84cff3d000)
libc.so.6 => /lib/libc.so.6 (0x00007f84cfbba000)
libpcre.so.3 => /lib/libpcre.so.3 (0x00007f84cf98b000)
/lib64/ld-linux-x86-64.so.2 (0x00007f84d7b70000)
libz.so.1 => /lib/libz.so.1 (0x00007f84cf774000)
libpng12.so.0 => /lib/libpng12.so.0 (0x00007f84cf54c000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f84cf216000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0x00007f84cf00b000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x00007f84cedf9000)
libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x00007f84cebf6000)
libXi.so.6 => /usr/lib/libXi.so.6 (0x00007f84ce9e5000)
libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0x00007f84ce7dc000)
libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0x00007f84ce5d2000)
libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0x00007f84ce3ce000)
libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0x00007f84ce1cb000)
libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x00007f84cdfc5000)
libresolv.so.2 => /lib/libresolv.so.2 (0x00007f84cddab000)
libselinux.so.1 => /lib/libselinux.so.1 (0x00007f84cdb8d000)
libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0x00007f84cd933000)
libxcb-shm.so.0 => /usr/lib/libxcb-shm.so.0 (0x00007f84cd730000)
libxcb-render.so.0 => /usr/lib/libxcb-render.so.0 (0x00007f84cd526000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f84cd30a000)
libexpat.so.1 => /lib/libexpat.so.1 (0x00007f84cd0e1000)
libgailutil.so.18 => /usr/lib/libgailutil.so.18 (0x00007f84cced8000)
libFLAC.so.8 => /usr/lib/libFLAC.so.8 (0x00007f84ccc8c000)
libvorbisenc.so.2 => /usr/lib/libvorbisenc.so.2 (0x00007f84cc8b1000)
libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0x00007f84cc684000)
libogg.so.0 => /usr/lib/libogg.so.0 (0x00007f84cc47c000)
libidn.so.11 => /usr/lib/libidn.so.11 (0x00007f84cc249000)
liblber-2.4.so.2 => /usr/lib/liblber-2.4.so.2 (0x00007f84cc03a000)
libldap_r-2.4.so.2 => /usr/lib/libldap_r-2.4.so.2 (0x00007f84cbdee000)
libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00007f84cbbba000)
libgnutls.so.26 => /usr/lib/libgnutls.so.26 (0x00007f84cb917000)
libgcrypt.so.11 => /lib/libgcrypt.so.11 (0x00007f84cb69f000)
libdb-4.8.so => /usr/lib/libdb-4.8.so (0x00007f84cb332000)
libgmp.so.3 => /usr/lib/libgmp.so.3 (0x00007f84cb0d1000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f84caecd000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f84cacc6000)
libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0x00007f84caaac000)
libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00007f84ca7e7000)
libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00007f84ca5c1000)
libcom_err.so.2 => /lib/libcom_err.so.2 (0x00007f84ca3bd000)
libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x00007f84ca1b4000)
libkeyutils.so.1 => /lib/libkeyutils.so.1 (0x00007f84c9fb1000)
libtasn1.so.3 => /usr/lib/libtasn1.so.3 (0x00007f84c9da0000)
libgpg-error.so.0 => /lib/libgpg-error.so.0 (0x00007f84c9b9b000)

@triune: you’re not missing anything, you’re just thinking too hard. ardour2 is a shell script that sets LD_LIBRARY_PATH to include the location where ardour-provided shared libraries are installed. running ldd on the actual executable is not useful.

Well, Paul… I thought compiling would actually be the part that required more thinking. So, I turned off my brain (per your advice) and compiled. So now I’m even more confused than before. Compiling from source yields a working ardour2. Whereas the packaged version still flakes like before. Was this supposed to happen? I know I have a working ardour now, but I cant see how this provides any more information about why the packaged version fails.

@triune

Chances are you moved something pretty important accidentally in your moving files out of /usr/local/* so chances are that when you compiled from source and installed, it got put back. That is my best guess at any rate.

 Seablade

I think its safe to rule that out as Paul noted that nothing was missing from my ldd links. I was pretty safe to only move files in and out of /usr/local/lib/lv2 and nothing above that folder.

My packaged version Ardour was crashing, so as mentioned previously… I self compiled and that went well for a while (until I rebooted actually). Now the same problem is happening with my compiled copy. So, I followed the backtrace procedure and here’s my output >>

$ ./ardbg USING OLD CLEARLOOKS GNU gdb (GDB) 7.1-ubuntu Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". For bug reporting instructions, please see: ... Reading symbols from /home/g/ardour2/gtk2_ardour/ardour-2.8.11...done. (gdb) run Starting program: /home/g/ardour2/gtk2_ardour/ardour-2.8.11 [Thread debugging using libthread_db enabled] Ardour 2.8.11 (built using 8520 and GCC version 4.4.3) Copyright (C) 1999-2008 Paul Davis Some portions Copyright (C) Steve Harris, Ari Johnson, Brett Viren, Joel Baker

Ardour comes with ABSOLUTELY NO WARRANTY
not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
This is free software, and you are welcome to redistribute it
under certain conditions; see the source for copying conditions.
Cannot install SIGPIPE error handler
loading default ui configuration file gtk2_ardour/ardour2_ui_default.conf
loading user ui configuration file /home/g/.ardour2/ardour2_ui.conf
Loading ui configuration file gtk2_ardour/ardour2_ui_dark.rc
theme_init() called from internal clearlooks engine
ardour: [INFO]: Ardour will be limited to 1024 open files
loading system configuration file ./ardour_system.rc
loading user configuration file /home/g/.ardour2/ardour.rc
ardour: [INFO]: Using SSE optimized routines
[New Thread 0x7fffe6000700 (LWP 18730)]
[New Thread 0x7fffe57ff700 (LWP 18731)]
[New Thread 0x7fffe4ffe700 (LWP 18732)]

Program received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb) thread apply all bt

Thread 4 (Thread 0x7fffe4ffe700 (LWP 18732)):
#0 0x00007fffef6b185c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1 0x00007ffff575e031 in Glib::Cond::wait (this=0x13c40b0, mutex=…) at libs/glibmm2/glibmm/thread.cc:362
#2 0x00007ffff78d5992 in ARDOUR::Analyser::work () at libs/ardour/analyser.cc:85
#3 0x00007ffff78d563d in analyser_work () at libs/ardour/analyser.cc:49
#4 0x0000000000bca5bb in sigc::pointer_functor0::operator()() const ()
#5 0x0000000000bc9948 in sigc::adaptor_functor<sigc::pointer_functor0 >::operator()() const ()
#6 0x0000000000bc82f9 in sigc::internal::slot_call0<sigc::pointer_functor0, void>::call_it(sigc::internal::slot_rep*) ()
#7 0x0000000000819b36 in sigc::slot0::operator() (this=0x13c4110) at libs/sigc++2/sigc++/functors/slot.h:440
#8 0x00007ffff575d58c in call_thread_entry_slot (data=0x13c4110) at libs/glibmm2/glibmm/thread.cc:43
#9 0x00007ffff59ffb84 in ?? () from /lib/libglib-2.0.so.0
#10 0x00007fffef6ac9ca in start_thread () from /lib/libpthread.so.0
#11 0x00007fffef40970d in clone () from /lib/libc.so.6
#12 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7fffe57ff700 (LWP 18731)):
#0 0x00007fffef6b185c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1 0x00007ffff575e031 in Glib::Cond::wait (this=0x13bd170, mutex=…) at libs/glibmm2/glibmm/thread.cc:362
#2 0x00007ffff7acd7f2 in peak_thread_work () at libs/ardour/source_factory.cc:65
#3 0x0000000000bca5bb in sigc::pointer_functor0::operator()() const ()
#4 0x0000000000bc9948 in sigc::adaptor_functor<sigc::pointer_functor0 >::operator()() const ()
#5 0x0000000000bc82f9 in sigc::internal::slot_call0<sigc::pointer_functor0, void>::call_it(sigc::internal::slot_rep*) ()
#6 0x0000000000819b36 in sigc::slot0::operator() (this=0x13bd5c0) at libs/sigc++2/sigc++/functors/slot.h:440
#7 0x00007ffff575d58c in call_thread_entry_slot (data=0x13bd5c0) at libs/glibmm2/glibmm/thread.cc:43
#8 0x00007ffff59ffb84 in ?? () from /lib/libglib-2.0.so.0
#9 0x00007fffef6ac9ca in start_thread () from /lib/libpthread.so.0
#10 0x00007fffef40970d in clone () from /lib/libc.so.6
#11 0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fffe6000700 (LWP 18730)):
#0 0x00007fffef6b185c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1 0x00007ffff575e031 in Glib::Cond::wait (this=0x13bd170, mutex=…) at libs/glibmm2/glibmm/thread.cc:362
#2 0x00007ffff7acd7f2 in peak_thread_work () at libs/ardour/source_factory.cc:65
#3 0x0000000000bca5bb in sigc::pointer_functor0::operator()() const ()
#4 0x0000000000bc9948 in sigc::adaptor_functor<sigc::pointer_functor0 >::operator()() const ()
#5 0x0000000000bc82f9 in sigc::internal::slot_call0<sigc::pointer_functor0, void>::call_it(sigc::internal::slot_rep*) ()
#6 0x0000000000819b36 in sigc::slot0::operator() (this=0x13bd150) at libs/sigc++2/sigc++/functors/slot.h:440
#7 0x00007ffff575d58c in call_thread_entry_slot (data=0x13bd150) at libs/glibmm2/glibmm/thread.cc:43
#8 0x00007ffff59ffb84 in ?? () from /lib/libglib-2.0.so.0
#9 0x00007fffef6ac9ca in start_thread () from /lib/libpthread.so.0
#10 0x00007fffef40970d in clone () from /lib/libc.so.6
#11 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7ffff7fa77e0 (LWP 18725)):
#0 0x0000000000000000 in ?? ()
#1 0x00007ffff04c15ce in ?? () from /usr/lib/librdf.so.0
#2 0x00007ffff04c1608 in ?? () from /usr/lib/librdf.so.0
#3 0x00007ffff04c1572 in ?? () from /usr/lib/librdf.so.0
#4 0x00007ffff04c1572 in ?? () from /usr/lib/librdf.so.0
#5 0x00007ffff04c1572 in ?? () from /usr/lib/librdf.so.0
#6 0x00007ffff04c1572 in ?? () from /usr/lib/librdf.so.0
#7 0x00007ffff04c1608 in ?? () from /usr/lib/librdf.so.0
#8 0x00007ffff04c1608 in ?? () from /usr/lib/librdf.so.0
#9 0x00007ffff04c1608 in ?? () from /usr/lib/librdf.so.0
#10 0x00007ffff04c1572 in ?? () from /usr/lib/librdf.so.0
#11 0x00007ffff04c183e in librdf_avltree_add () from /usr/lib/librdf.so.0
#12 0x00007ffff04d0ccc in ?? () from /usr/lib/librdf.so.0
#13 0x00007ffff04c7083 in ?? () from /usr/lib/librdf.so.0
#14 0x00007ffff002918e in turtle_parser_parse () from /usr/lib/libraptor.so.1
#15 0x00007ffff0029cf7 in ?? () from /usr/lib/libraptor.so.1
—Type to continue, or q to quit—
#16 0x00007ffff000dfb3 in raptor_parse_uri_with_connection () from /usr/lib/libraptor.so.1
#17 0x00007ffff04c6a93 in ?? () from /usr/lib/librdf.so.0
#18 0x00007ffff04c6c57 in ?? () from /usr/lib/librdf.so.0
#19 0x00007fffefdf7220 in slv2_world_load_specifications () from /usr/lib/libslv2.so.9
#20 0x00007fffefdf7709 in slv2_world_load_all () from /usr/lib/libslv2.so.9
#21 0x00007ffff7ae38ed in LV2World (this=0x156f130) at libs/ardour/lv2_plugin.cc:563
#22 0x00007ffff79fd1e6 in PluginManager (this=0x13c4420) at libs/ardour/plugin_manager.cc:127
#23 0x00007ffff7998dc8 in ARDOUR::init (use_vst=true, try_optimization=true) at libs/ardour/globals.cc:358
#24 0x0000000000829a77 in ARDOUR_UI (this=0x11000b0, argcp=0x7fffffffde7c, argvp=0x7fffffffde70, __in_chrg=, __vtt_parm=) at gtk2_ardour/ardour_ui.cc:251
#25 0x0000000000b138cd in main (argc=1, argv=0x7fffffffdfd8) at gtk2_ardour/main.cc:558

Thanks for isolating that problem for me Paul. I’m using Kubuntu (Lucid) 10.04.3 + KxStudio. So, I just pulled in the following 6 packages from Ubuntu Maverick/Natty >>

-rw-r–r-- 1 t t 179722 2011-02-04 10:04 libraptor1_1.4.21-2_amd64.deb
-rw-r–r-- 1 t t 247302 2011-02-04 10:13 libraptor1-dev_1.4.21-2_amd64.deb
-rw-r–r-- 1 t t 143402 2011-02-04 10:03 librasqal2_0.9.19-1_amd64.deb
-rw-r–r-- 1 t t 204194 2011-02-04 10:13 librasqal2-dev_0.9.19-1_amd64.deb
-rw-r–r-- 1 t t 130324 2011-02-04 10:01 librdf0_1.0.12-1_amd64.deb
-rw-r–r-- 1 t t 374436 2011-02-04 10:14 librdf0-dev_1.0.12-1_amd64.deb

… and Ardour is back in business! (^_^)

This appears to be a known problem on some distributions’ versions of raptor and/or librdf (not liblrdf, which is entirely different). Its been widely documented online and affects programs other than Ardour.