View Issue Details

IDProjectCategoryView StatusLast Update
0006600ardourbugspublic2020-04-19 20:17
Reporteroswaldm Assigned Tox42  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Product Version4.X git (version in description) 
Summary0006600: Crash on "strip silcence" functionality
DescriptionArdour 4.2.308
"Taking Tiger Mountain"
(built from revision 4.2-365-ga5141fd)
Intel 64 bit

System: Ubuntu Studio 15.04 64 bit


I have some wav files imported into a session and then simply right click the region -> edit -> strip silence then let the default settings and click Apply, ardour crashes.

This happens in different sessions, different tracks, different regions. It happens most of the time, not always. A way to surely trigger it is to select multiple regions and then select strip silence (on my system this always leads to a crash).

As the backtrace indicates, maybe there are some uninitialized values on creation of the lock for the mutex.
Additional InformationAttached is a text file with the backtrace (from gdb and valgrind), the offending code piece (though the error itself must be somewhere else) and the configuration used to compile ardour.

Also, there are some errors in the file reported from valgrind when running ardour with it.
TagsNo tags attached.

Relationships

has duplicate 0006611 new Crash while strip silence on multiple wav clips 

Activities

2015-09-19 10:08

 

strip_silence_bug.txt (10,635 bytes)   
Backtrace:


GLib (gthread-posix.c): Unexpected error from C library during 'pthread_mutex_lock': Invalid argument.  Aborting.

Program received signal SIGABRT, Aborted.
0x00007ffff064fcc9 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56	../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  0x00007ffff064fcc9 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007ffff06530d8 in __GI_abort () at abort.c:89
#2  0x00007ffff48ea453 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff4959993 in g_mutex_lock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x0000000000611c8a in Glib::Threads::Mutex::Lock::Lock (this=0x7fffffffd320, mutex=...) at /usr/include/glibmm-2.4/glibmm/threads.h:643
#5  0x0000000000e2df5f in StripSilenceDialog::update_silence_rects (this=0x7fffffffc8e0) at ../gtk2_ardour/strip_silence_dialog.cc:186
#6  0x0000000000e2df36 in StripSilenceDialog::update (this=0x7fffffffc8e0) at ../gtk2_ardour/strip_silence_dialog.cc:179
#7  0x0000000000e30c0d in boost::_mfi::mf0<void, StripSilenceDialog>::operator() (this=0x7fffb40010c8, p=0x7fffffffc8e0) at /usr/include/boost/bind/mem_fn_template.hpp:49
#8  0x0000000000e308a4 in boost::_bi::list1<boost::_bi::value<StripSilenceDialog*> >::operator()<boost::_mfi::mf0<void, StripSilenceDialog>, boost::_bi::list0> (this=0x7fffb40010d8, f=..., a=...) at /usr/include/boost/bind/bind.hpp:253
#9  0x0000000000e30527 in boost::_bi::bind_t<void, boost::_mfi::mf0<void, StripSilenceDialog>, boost::_bi::list1<boost::_bi::value<StripSilenceDialog*> > >::operator() (this=0x7fffb40010c8)
    at /usr/include/boost/bind/bind_template.hpp:20
#10 0x0000000000e2ff60 in boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, boost::_mfi::mf0<void, StripSilenceDialog>, boost::_bi::list1<boost::_bi::value<StripSilenceDialog*> > >, void>::invoke (
    function_obj_ptr=...) at /usr/include/boost/function/function_template.hpp:153
#11 0x0000000000620474 in boost::function0<void>::operator() (this=0x7fffb40010c0) at /usr/include/boost/function/function_template.hpp:767
#12 0x00000000006238ba in boost::_bi::list0::operator()<boost::function<void ()>, boost::_bi::list0>(boost::_bi::type<void>, boost::function<void ()>&, boost::_bi::list0&, int) (this=0x7fffb40010e0, f=...)
    at /usr/include/boost/bind/bind.hpp:192
#13 0x0000000000622fdb in boost::_bi::bind_t<boost::_bi::unspecified, boost::function<void ()>, boost::_bi::list0>::operator()() (this=0x7fffb40010c0) at /usr/include/boost/bind/bind_template.hpp:20
#14 0x00000000006224e2 in boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<boost::_bi::unspecified, boost::function<void ()>, boost::_bi::list0>, void>::invoke(boost::detail::function::function_buffer&) (
    function_obj_ptr=...) at /usr/include/boost/function/function_template.hpp:153
#15 0x0000000000620474 in boost::function0<void>::operator() (this=0x7fffb4001510) at /usr/include/boost/function/function_template.hpp:767
#16 0x00007ffff759a263 in Gtkmm2ext::UI::do_request (this=0x19c45d0, req=0x7fffb4001500) at ../libs/gtkmm2ext/gtk_ui.cc:455
#17 0x00007ffff759da93 in AbstractUI<Gtkmm2ext::UIRequest>::handle_ui_requests (this=0x19c45d0) at /home/oswald/Projects/ardour/libs/pbd/pbd/abstract_ui.cc:301
#18 0x00007ffff5783075 in BaseUI::request_handler (this=0x19c45d0, ioc=Glib::IO_IN) at ../libs/pbd/base_ui.cc:141
#19 0x00007ffff5786516 in sigc::bound_mem_functor1<bool, BaseUI, Glib::IOCondition>::operator() (this=0x17b1268, _A_a1=@0x7fffffffd7e4: Glib::IO_IN) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1851
#20 0x00007ffff5786179 in sigc::adaptor_functor<sigc::bound_mem_functor1<bool, BaseUI, Glib::IOCondition> >::operator()<Glib::IOCondition const&> (this=0x17b1260, _A_arg1=@0x7fffffffd7e4: Glib::IO_IN)
    at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:84
#21 0x00007ffff5785c4e in sigc::internal::slot_call1<sigc::bound_mem_functor1<bool, BaseUI, Glib::IOCondition>, bool, Glib::IOCondition>::call_it (rep=0x17b1230, a_1=@0x7fffffffd7e4: Glib::IO_IN)
    at /usr/include/sigc++-2.0/sigc++/functors/slot.h:137
#22 0x00007ffff5798388 in sigc::slot1<bool, Glib::IOCondition>::operator() (this=0x19c4638, _A_a1=@0x7fffffffd7e4: Glib::IO_IN) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:515
#23 0x00007ffff57980bd in cross_thread_channel_call_receive_slot (condition=G_IO_IN, data=0x19c4628) at ../libs/pbd/crossthread.cc:49
#24 0x00007ffff4917ce5 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#25 0x00007ffff4918048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#26 0x00007ffff491830a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007ffff43be447 in gtk_main () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#28 0x00007ffff75998a4 in Gtkmm2ext::UI::run (this=0x19c45d0, old_receiver=...) at ../libs/gtkmm2ext/gtk_ui.cc:280
#29 0x0000000000a338c4 in main (argc=1, argv=0x7fffffffdb88) at ../gtk2_ardour/main.cc:389


The same from valgrind:

==7435== Thread 1:
==7435== Invalid read of size 8
==7435==    at 0x80C461A: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4002.0)
==7435==    by 0x80C4978: g_mutex_lock (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4002.0)
==7435==    by 0x611C89: Glib::Threads::Mutex::Lock::Lock(Glib::Threads::Mutex&) (threads.h:643)
==7435==    by 0xE2DF5E: StripSilenceDialog::update_silence_rects() (strip_silence_dialog.cc:186)
==7435==    by 0xE2DF35: StripSilenceDialog::update() (strip_silence_dialog.cc:179)
==7435==    by 0xE30C0C: boost::_mfi::mf0<void, StripSilenceDialog>::operator()(StripSilenceDialog*) const (mem_fn_template.hpp:49)
==7435==    by 0xE308A3: void boost::_bi::list1<boost::_bi::value<StripSilenceDialog*> >::operator()<boost::_mfi::mf0<void, StripSilenceDialog>, boost::_bi::list0>(boost::_bi::type<void>, boost::_mfi::mf0<void, StripSilenceDialog>&, boost::_bi::list0&, int) (bind.hpp:253)
==7435==    by 0xE30526: boost::_bi::bind_t<void, boost::_mfi::mf0<void, StripSilenceDialog>, boost::_bi::list1<boost::_bi::value<StripSilenceDialog*> > >::operator()() (bind_template.hpp:20)
==7435==    by 0xE2FF5F: boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, boost::_mfi::mf0<void, StripSilenceDialog>, boost::_bi::list1<boost::_bi::value<StripSilenceDialog*> > >, void>::invoke(boost::detail::function::function_buffer&) (function_template.hpp:153)
==7435==    by 0x620473: boost::function0<void>::operator()() const (function_template.hpp:767)
==7435==    by 0x6238B9: void boost::_bi::list0::operator()<boost::function<void ()>, boost::_bi::list0>(boost::_bi::type<void>, boost::function<void ()>&, boost::_bi::list0&, int) (bind.hpp:192)
==7435==    by 0x622FDA: boost::_bi::bind_t<boost::_bi::unspecified, boost::function<void ()>, boost::_bi::list0>::operator()() (bind_template.hpp:20)
==7435==  Address 0xffeffe988 is not stack'd, malloc'd or (recently) free'd
==7435== 
GLib (gthread-posix.c): Unexpected error from C library during 'pthread_mutex_lock': Invalid argument.  Aborting.









Offending code-piece (Creation of the lock):

182	void
183	StripSilenceDialog::update_silence_rects ()
184	{
185		/* Lock so that we don't contend with the detection thread for access to the silence regions */
186		Glib::Threads::Mutex::Lock lm (_lock);
187	        double const y = _threshold.get_value();
188	
189	        for (list<ViewInterval>::iterator v = views.begin(); v != views.end(); ++v) {
190	                v->view->set_silent_frames (v->intervals, y);


Config:



Build documentation: False
Debuggable build: True
Export all symbols (backtrace): False
Install prefix: /usr/local
Strict compiler flags: []
Internal Shared Libraries: True
Use External Libraries: False
Library exports hidden: True
ALSA Backend: False
ALSA DBus Reservation: True
Architecture flags: None
Aubio: True
AudioUnits: False
Free/Demo copy: False
Build target: x86_64
CoreAudio: False
CoreAudio/Midi Backend: False
Debug RT allocations: False
Debug Symbols: True
Dummy backend: False
Process thread timing: False
Denormal exceptions: False
FLAC: True
FPU optimization: True
Freedesktop files: False
JACK Backend: True
Libjack linking: link
Libjack metadata: True
LV2 UI embedding: True
LV2 support: True
LXVST support: True
OGG: True
Phone home: True
Program name: Ardour
Samplerate: True
PT format: False
Translation: True
Unit tests: False
Mac i386 Architecture: False
Mac ppc Architecture: False
Waves Backend: False
Windows VST support: False
Wiimote support: True
Windows key: Mod4><Super
C compiler flags: ['-I/home/oswald/Projects/ardour', '-DWAF_BUILD', '-O0', '-g', '-fshow-column', '-DARCH_X86', '-mmmx', '-msse', '-mfpmath=sse', '-DUSE_XMMINTRIN', '-DBUILD_SSE_OPTIMIZATIONS', '-DLXVST_64BIT', '-Wall', '-Wpointer-arith', '-Wcast-qual', '-Wcast-align', '-Wno-unused-parameter', '-DBOOST_SYSTEM_NO_DEPRECATED', '-D_ISOC9X_SOURCE', '-D_LARGEFILE64_SOURCE', '-D_FILE_OFFSET_BITS=64', '-DENABLE_NLS', '-DPROGRAM_NAME="Ardour"', u'-DPROGRAM_VERSION="4"', '-Wstrict-prototypes', '-Wmissing-prototypes']
C++ compiler flags: ['-I/home/oswald/Projects/ardour', '-DWAF_BUILD', '-O0', '-g', '-fshow-column', '-DARCH_X86', '-mmmx', '-msse', '-mfpmath=sse', '-DUSE_XMMINTRIN', '-DBUILD_SSE_OPTIMIZATIONS', '-DLXVST_64BIT', '-Wall', '-Wpointer-arith', '-Wcast-qual', '-Wcast-align', '-Wno-unused-parameter', '-DBOOST_SYSTEM_NO_DEPRECATED', '-D_ISOC9X_SOURCE', '-D_LARGEFILE64_SOURCE', '-D_FILE_OFFSET_BITS=64', '-DENABLE_NLS', '-DPROGRAM_NAME="Ardour"', u'-DPROGRAM_VERSION="4"', '-Woverloaded-virtual', '-Wno-unused-local-typedefs', '-D__STDC_LIMIT_MACROS', '-D__STDC_FORMAT_MACROS', '-DCANVAS_COMPATIBILITY', '-DCANVAS_DEBUG']
Linker flags: ['']



Some Valgrind messages:


On startup:

ardour: [INFO]: AVX-capable processor
==7435== Conditional jump or move depends on uninitialised value(s)
==7435==    at 0x72D4D6C: PBD::FPU::FPU() (fpu.cc:252)
==7435==    by 0x72D499E: PBD::FPU::instance() (fpu.cc:126)
==7435==    by 0x63A73AB: setup_hardware_optimization(bool) (globals.cc:163)
==7435==    by 0x63A8E2E: ARDOUR::init(bool, bool, char const*) (globals.cc:486)
==7435==    by 0xA336D7: main (main.cc:356)
==7435== 
==7435== Conditional jump or move depends on uninitialised value(s)
==7435==    at 0x72D4D83: PBD::FPU::FPU() (fpu.cc:256)
==7435==    by 0x72D499E: PBD::FPU::instance() (fpu.cc:126)
==7435==    by 0x63A73AB: setup_hardware_optimization(bool) (globals.cc:163)
==7435==    by 0x63A8E2E: ARDOUR::init(bool, bool, char const*) (globals.cc:486)
==7435==    by 0xA336D7: main (main.cc:356)
==7435== 




strip_silence_bug.txt (10,635 bytes)   

x42

2015-09-19 17:19

administrator   ~0017325

fixed in Ardour 4.2-374-g0e55dc4

system

2020-04-19 20:17

developer   ~0023532

Issue has been closed automatically, by Trigger Close Plugin.
Feel free to re-open with additional information if you think the issue is not resolved.

Issue History

Date Modified Username Field Change
2015-09-19 10:08 oswaldm New Issue
2015-09-19 10:08 oswaldm File Added: strip_silence_bug.txt
2015-09-19 17:19 x42 Note Added: 0017325
2015-09-19 17:21 x42 Status new => resolved
2015-09-19 17:21 x42 Resolution open => fixed
2015-09-19 17:21 x42 Assigned To => x42
2015-09-29 07:48 x42 Relationship added has duplicate 0006611
2020-04-19 20:17 system Note Added: 0023532
2020-04-19 20:17 system Status resolved => closed