On some plugins Ardour crashes on my machine since the latest update, when opening the GUI of the plugin (could reproduce it always with Gate). Also Reverb behaves very strange and gives distorted noises and overloads Ardour's audio.
I have a GDB backtrace and a valgrind output which detected a use of an uninitialized value.
#0 0x00007ffff52a0705 in gtk_widget_set_no_show_all () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#1 0x00007ffebfd83183 in calf_plugins::plugin_gui_window::show_rack_ears (this=0xe94e2c0, show=true) at plugin_gui_window.cpp:509
#2 0x00007ffebfd8f7ab in gui_instantiate (descriptor=0x7ffebffff680 <lv2ui_descriptor::gtkgui>, plugin_uri=0x20c4c40 "http://calf.sourceforge.net/plugins/Gate", bundle_path=0xc6adf20 "/usr/lib/lv2/calf.lv2/",
write_function=0xa4d970 <LV2PluginUI::write_from_ui(void*, unsigned int, unsigned int, unsigned int, void const*)>, controller=0xe786750, widget=0x4586240, features=0xc6adf70) at lv2gui.cpp:364
#3 0x00007ffff28796c5 in suil_instance_new () from /usr/lib/x86_64-linux-gnu/libsuil-0.so.0
#4 0x0000000000a4de7a in LV2PluginUI::lv2ui_instantiate(std::string const&) ()
#5 0x0000000000a4e88f in LV2PluginUI::on_window_show(std::string const&) ()
#6 0x00000000008357e2 in PluginUIWindow::on_show() ()
#7 0x00007ffff3e8bf4d in Gtk::Widget_Class::show_callback(_GtkWidget*) () from /usr/lib/x86_64-linux-gnu/libgtkmm-2.4.so.1
#8 0x00007ffff5bb25e7 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#9 0x00007ffff5bcb088 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#10 0x00007ffff5bcbce2 in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#11 0x00007ffff529adf6 in gtk_widget_show () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#12 0x00007ffff3e8be10 in Gtk::Widget_Class::show_all_vfunc_callback(_GtkWidget*) () from /usr/lib/x86_64-linux-gnu/libgtkmm-2.4.so.1
#13 0x0000000000a0de3f in WM::ProxyBase::toggle() ()
#14 0x000000000085fe66 in ProcessorBox::edit_processor(boost::shared_ptr<ARDOUR::Processor>) ()
#15 0x0000000000866637 in ProcessorBox::processor_button_press_event(_GdkEventButton*, ProcessorEntry*) ()
#16 0x0000000000876c20 in sigc::internal::signal_emit2<bool, _GdkEventButton*, ProcessorEntry*, sigc::nil>::emit(sigc::internal::signal_impl*, _GdkEventButton* const&, ProcessorEntry* const&) ()
#17 0x0000000000876df0 in Gtkmm2ext::DnDVBox<ProcessorEntry>::button_press(_GdkEventButton*, ProcessorEntry*) ()
#18 0x00007ffff3e9125b in ?? () from /usr/lib/x86_64-linux-gnu/libgtkmm-2.4.so.1
#19 0x00007ffff5185815 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#20 0x00007ffff5bb23b8 in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#21 0x00007ffff5bc3fd1 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#22 0x00007ffff5bcb6f9 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#23 0x00007ffff5bcbce2 in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#24 0x00007ffff52956b4 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#25 0x00007ffff5183fc4 in gtk_propagate_event () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#26 0x00007ffff518437b in gtk_main_do_event () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#27 0x00007ffff4dfe43c in ?? () from /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
#28 0x00007ffff56dde04 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#29 0x00007ffff56de048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#30 0x00007ffff56de30a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007ffff5183447 in gtk_main () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#32 0x00007ffff76c90e6 in Gtkmm2ext::UI::run(Receiver&) () from /usr/local/lib/ardour4/libgtkmm2ext.so.0
#33 0x000000000048d0ad in main ()
==21039== Thread 15:
==21039== Conditional jump or move depends on uninitialised value(s)
==21039== at 0x4E0F27A2: float const& std::min<float>(float const&, float const&) (stl_algobase.h:198)
==21039== by 0x4E11A695: calf_plugins::expander_audio_module::update_curve() (modules_comp.cpp:548)
==21039== by 0x4E11A584: calf_plugins::expander_audio_module::activate() (modules_comp.cpp:528)
==21039== by 0x4E1208A8: calf_plugins::gate_audio_module::activate() (modules_comp.cpp:1773)
==21039== by 0x4E0F8BCE: calf_plugins::lv2_instance::run(unsigned int, bool) (lv2wrap.cpp:144)
==21039== by 0x4E19676A: calf_plugins::lv2_wrapper<calf_plugins::gate_audio_module>::cb_run(void*, unsigned int) (lv2wrap.h:225)
==21039== by 0x5CF7337: ARDOUR::LV2Plugin::run(unsigned int) (in /usr/local/lib/ardour4/libardour.so.3.0.0)
==21039== by 0x5CFEAFE: ARDOUR::LV2Plugin::connect_and_run(ARDOUR::BufferSet&, ARDOUR::ChanMapping, ARDOUR::ChanMapping, unsigned int, long) (in /usr/local/lib/ardour4/libardour.so.3.0.0)
==21039== by 0x5BA1950: ARDOUR::PluginInsert::connect_and_run(ARDOUR::BufferSet&, unsigned int, long, bool, long) (in /usr/local/lib/ardour4/libardour.so.3.0.0)
==21039== by 0x5BA1F28: ARDOUR::PluginInsert::run(ARDOUR::BufferSet&, long, long, unsigned int, bool) (in /usr/local/lib/ardour4/libardour.so.3.0.0)
==21039== by 0x5BFB426: ARDOUR::Route::process_output_buffers(ARDOUR::BufferSet&, long, long, unsigned int, int, bool) (in /usr/local/lib/ardour4/libardour.so.3.0.0)
==21039== by 0x5BF7377: ARDOUR::Route::passthru(ARDOUR::BufferSet&, long, long, unsigned int, int) (in /usr/local/lib/ardour4/libardour.so.3.0.0)
==21039==
==21039== Conditional jump or move depends on uninitialised value(s)
==21039== at 0x4E0F27A2: float const& std::min<float>(float const&, float const&) (stl_algobase.h:198)
==21039== by 0x4E11A708: calf_plugins::expander_audio_module::update_curve() (modules_comp.cpp:549)
==21039== by 0x4E11A584: calf_plugins::expander_audio_module::activate() (modules_comp.cpp:528)
==21039== by 0x4E1208A8: calf_plugins::gate_audio_module::activate() (modules_comp.cpp:1773)
==21039== by 0x4E0F8BCE: calf_plugins::lv2_instance::run(unsigned int, bool) (lv2wrap.cpp:144)
==21039== by 0x4E19676A: calf_plugins::lv2_wrapper<calf_plugins::gate_audio_module>::cb_run(void*, unsigned int) (lv2wrap.h:225)
==21039== by 0x5CF7337: ARDOUR::LV2Plugin::run(unsigned int) (in /usr/local/lib/ardour4/libardour.so.3.0.0)
==21039== by 0x5CFEAFE: ARDOUR::LV2Plugin::connect_and_run(ARDOUR::BufferSet&, ARDOUR::ChanMapping, ARDOUR::ChanMapping, unsigned int, long) (in /usr/local/lib/ardour4/libardour.so.3.0.0)
==21039== by 0x5BA1950: ARDOUR::PluginInsert::connect_and_run(ARDOUR::BufferSet&, unsigned int, long, bool, long) (in /usr/local/lib/ardour4/libardour.so.3.0.0)
==21039== by 0x5BA1F28: ARDOUR::PluginInsert::run(ARDOUR::BufferSet&, long, long, unsigned int, bool) (in /usr/local/lib/ardour4/libardour.so.3.0.0)
==21039== by 0x5BFB426: ARDOUR::Route::process_output_buffers(ARDOUR::BufferSet&, long, long, unsigned int, int, bool) (in /usr/local/lib/ardour4/libardour.so.3.0.0)
==21039== by 0x5BF7377: ARDOUR::Route::passthru(ARDOUR::BufferSet&, long, long, unsigned int, int) (in /usr/local/lib/ardour4/libardour.so.3.0.0)
==21039==
CALF DEBUG: instance 0x657b9d80 data 0x63d2be48
CALF DEBUG: calf 0x4eba64c0 cpi 0x4e1968af
==21039== Thread 1:
==21039== Conditional jump or move depends on uninitialised value(s)
==21039== at 0x77C4703: gtk_widget_set_no_show_all (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.23)
==21039== by 0x540D1182: calf_plugins::plugin_gui_window::show_rack_ears(bool) (plugin_gui_window.cpp:509)
==21039== by 0x540DD7AA: gui_instantiate(_LV2UI_Descriptor const*, char const*, char const*, void (*)(void*, unsigned int, unsigned int, unsigned int, void const*), void*, void**, _LV2_Feature const* const*) (lv2gui.cpp:364)
==21039== by 0xA1966C4: suil_instance_new (in /usr/lib/x86_64-linux-gnu/libsuil-0.so.0.6.16)
==21039== by 0xA4DE79: LV2PluginUI::lv2ui_instantiate(std::string const&) (in /usr/local/lib/ardour4/ardour-4.4.189)
==21039== by 0xA4E88E: LV2PluginUI::on_window_show(std::string const&) (in /usr/local/lib/ardour4/ardour-4.4.189)
==21039== by 0x8357E1: PluginUIWindow::on_show() (in /usr/local/lib/ardour4/ardour-4.4.189)
==21039== by 0x8D44F4C: Gtk::Widget_Class::show_callback(_GtkWidget*) (in /usr/lib/x86_64-linux-gnu/libgtkmm-2.4.so.1.1.0)
==21039== by 0x6E2E5E6: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4002.0)
==21039== by 0x6E47087: g_signal_emit_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4002.0)
==21039== by 0x6E47CE1: g_signal_emit (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4002.0)
==21039== by 0x77BEDF5: gtk_widget_show (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.23)
==21039==
(ardour-4.4.189:21039): Gtk-CRITICAL **: IA__gtk_widget_set_no_show_all: assertion 'GTK_IS_WIDGET (widget)' failed
==21039== Conditional jump or move depends on uninitialised value(s)
==21039== at 0x77C4703: gtk_widget_set_no_show_all (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.23)
==21039== by 0x540D119E: calf_plugins::plugin_gui_window::show_rack_ears(bool) (plugin_gui_window.cpp:510)
==21039== by 0x540DD7AA: gui_instantiate(_LV2UI_Descriptor const*, char const*, char const*, void (*)(void*, unsigned int, unsigned int, unsigned int, void const*), void*, void**, _LV2_Feature const* const*) (lv2gui.cpp:364)
==21039== by 0xA1966C4: suil_instance_new (in /usr/lib/x86_64-linux-gnu/libsuil-0.so.0.6.16)
==21039== by 0xA4DE79: LV2PluginUI::lv2ui_instantiate(std::string const&) (in /usr/local/lib/ardour4/ardour-4.4.189)
==21039== by 0xA4E88E: LV2PluginUI::on_window_show(std::string const&) (in /usr/local/lib/ardour4/ardour-4.4.189)
==21039== by 0x8357E1: PluginUIWindow::on_show() (in /usr/local/lib/ardour4/ardour-4.4.189)
==21039== by 0x8D44F4C: Gtk::Widget_Class::show_callback(_GtkWidget*) (in /usr/lib/x86_64-linux-gnu/libgtkmm-2.4.so.1.1.0)
==21039== by 0x6E2E5E6: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4002.0)
==21039== by 0x6E47087: g_signal_emit_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4002.0)
==21039== by 0x6E47CE1: g_signal_emit (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4002.0)
==21039== by 0x77BEDF5: gtk_widget_show (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.23)
==21039==
==21039== Use of uninitialised value of size 8
==21039== at 0x77C4705: gtk_widget_set_no_show_all (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.23)
==21039== by 0x540D119E: calf_plugins::plugin_gui_window::show_rack_ears(bool) (plugin_gui_window.cpp:510)
==21039== by 0x540DD7AA: gui_instantiate(_LV2UI_Descriptor const*, char const*, char const*, void (*)(void*, unsigned int, unsigned int, unsigned int, void const*), void*, void**, _LV2_Feature const* const*) (lv2gui.cpp:364)
==21039== by 0xA1966C4: suil_instance_new (in /usr/lib/x86_64-linux-gnu/libsuil-0.so.0.6.16)
==21039== by 0xA4DE79: LV2PluginUI::lv2ui_instantiate(std::string const&) (in /usr/local/lib/ardour4/ardour-4.4.189)
==21039== by 0xA4E88E: LV2PluginUI::on_window_show(std::string const&) (in /usr/local/lib/ardour4/ardour-4.4.189)
==21039== by 0x8357E1: PluginUIWindow::on_show() (in /usr/local/lib/ardour4/ardour-4.4.189)
==21039== by 0x8D44F4C: Gtk::Widget_Class::show_callback(_GtkWidget*) (in /usr/lib/x86_64-linux-gnu/libgtkmm-2.4.so.1.1.0)
==21039== by 0x6E2E5E6: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4002.0)
==21039== by 0x6E47087: g_signal_emit_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4002.0)
==21039== by 0x6E47CE1: g_signal_emit (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4002.0)
==21039== by 0x77BEDF5: gtk_widget_show (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.23)
==21039==
==21039== Invalid read of size 8
==21039== at 0x77C4705: gtk_widget_set_no_show_all (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.23)
==21039== by 0x540D119E: calf_plugins::plugin_gui_window::show_rack_ears(bool) (plugin_gui_window.cpp:510)
==21039== by 0x540DD7AA: gui_instantiate(_LV2UI_Descriptor const*, char const*, char const*, void (*)(void*, unsigned int, unsigned int, unsigned int, void const*), void*, void**, _LV2_Feature const* const*) (lv2gui.cpp:364)
==21039== by 0xA1966C4: suil_instance_new (in /usr/lib/x86_64-linux-gnu/libsuil-0.so.0.6.16)
==21039== by 0xA4DE79: LV2PluginUI::lv2ui_instantiate(std::string const&) (in /usr/local/lib/ardour4/ardour-4.4.189)
==21039== by 0xA4E88E: LV2PluginUI::on_window_show(std::string const&) (in /usr/local/lib/ardour4/ardour-4.4.189)
==21039== by 0x8357E1: PluginUIWindow::on_show() (in /usr/local/lib/ardour4/ardour-4.4.189)
==21039== by 0x8D44F4C: Gtk::Widget_Class::show_callback(_GtkWidget*) (in /usr/lib/x86_64-linux-gnu/libgtkmm-2.4.so.1.1.0)
==21039== by 0x6E2E5E6: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4002.0)
==21039== by 0x6E47087: g_signal_emit_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4002.0)
==21039== by 0x6E47CE1: g_signal_emit (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4002.0)
==21039== by 0x77BEDF5: gtk_widget_show (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.23)
==21039== Address 0x71 is not stack'd, malloc'd or (recently) free'd
==21039==
==21039==
==21039== Process terminating with default action of signal 11 (SIGSEGV)
==21039== Access not within mapped region at address 0x71
==21039== at 0x77C4705: gtk_widget_set_no_show_all (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.23)
==21039== by 0x540D119E: calf_plugins::plugin_gui_window::show_rack_ears(bool) (plugin_gui_window.cpp:510)
==21039== by 0x540DD7AA: gui_instantiate(_LV2UI_Descriptor const*, char const*, char const*, void (*)(void*, unsigned int, unsigned int, unsigned int, void const*), void*, void**, _LV2_Feature const* const*) (lv2gui.cpp:364)
==21039== by 0xA1966C4: suil_instance_new (in /usr/lib/x86_64-linux-gnu/libsuil-0.so.0.6.16)
==21039== by 0xA4DE79: LV2PluginUI::lv2ui_instantiate(std::string const&) (in /usr/local/lib/ardour4/ardour-4.4.189)
==21039== by 0xA4E88E: LV2PluginUI::on_window_show(std::string const&) (in /usr/local/lib/ardour4/ardour-4.4.189)
==21039== by 0x8357E1: PluginUIWindow::on_show() (in /usr/local/lib/ardour4/ardour-4.4.189)
==21039== by 0x8D44F4C: Gtk::Widget_Class::show_callback(_GtkWidget*) (in /usr/lib/x86_64-linux-gnu/libgtkmm-2.4.so.1.1.0)
==21039== by 0x6E2E5E6: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4002.0)
==21039== by 0x6E47087: g_signal_emit_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4002.0)
==21039== by 0x6E47CE1: g_signal_emit (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4002.0)
==21039== by 0x77BEDF5: gtk_widget_show (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.23)
==21039== If you believe this happened as a result of a stack
==21039== overflow in your program's main thread (unlikely but
==21039== possible), you can try to increase the size of the
==21039== main thread stack using the --main-stacksize= flag.
==21039== The main thread stack size used in this run was 8388608.
==21039==
==21039== HEAP SUMMARY:
==21039== in use at exit: 373,190,119 bytes in 2,366,940 blocks
==21039== total heap usage: 45,362,284 allocs, 42,995,344 frees, 11,382,788,294 bytes allocated
==21039==
==21039== LEAK SUMMARY:
==21039== definitely lost: 254,035 bytes in 3,586 blocks
==21039== indirectly lost: 1,880,010 bytes in 44,579 blocks
==21039== possibly lost: 18,692,072 bytes in 365,267 blocks
==21039== still reachable: 334,469,570 bytes in 1,879,748 blocks
==21039== suppressed: 0 bytes in 0 blocks
==21039== Rerun with --leak-check=full to see details of leaked memory
==21039==
==21039== For counts of detected and suppressed errors, rerun with: -v
==21039== Use --track-origins=yes to see where uninitialised values come from
==21039== ERROR SUMMARY: 929 errors from 16 contexts (suppressed: 1 from 1)
Killed