View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0004643 | ardour | bugs | public | 2012-01-19 14:33 | 2015-09-18 15:14 |
| Reporter | colinf | Assigned To | colinf | ||
| Priority | normal | Severity | minor | Reproducibility | always |
| Status | closed | Resolution | fixed | ||
| Target Version | 3.0-beta3 | ||||
| Summary | 0004643: Can't create new routes from templates | ||||
| Description | There doesn't seem to be a way of creating a new route from a template. 'Save As Template' creates a file under ~/.config/ardour3/route_templates/, but the templates don't appear in the 'Configuration' drop-down list of the 'Add Track or Bus' dialog, as they did in A2. | ||||
| Tags | No tags attached. | ||||
|
|
Looks like this was fallout from session templates now being directories. Patch coming in a few minutes... [EDIT] I may have spoken too soon: although I've now made the templates appear in the 'Add Track or Bus' dialog, Ardour crashes as soon as I actually add a track from a template. |
|
2012-01-19 18:17
|
route-templates.patch (1,418 bytes)
Index: libs/ardour/template_utils.cc
===================================================================
--- libs/ardour/template_utils.cc (revision 11269)
+++ libs/ardour/template_utils.cc (working copy)
@@ -66,8 +66,17 @@
}
static bool
-template_filter (const string &str, void */*arg*/)
+route_template_filter (const string &str, void */*arg*/)
{
+ cerr << "Checking into " << str << " using " << template_suffix << endl;
+ return (str.length() > strlen(template_suffix) &&
+ str.find (template_suffix) == (str.length() - strlen (template_suffix)));
+}
+
+static bool
+session_template_filter (const string &str, void */*arg*/)
+{
+
if (!Glib::file_test (str, Glib::FILE_TEST_IS_DIR)) {
return false;
}
@@ -93,7 +102,7 @@
SearchPath spath (system_template_directory());
spath += user_template_directory ();
- templates = scanner (spath.to_string(), template_filter, 0, true, true);
+ templates = scanner (spath.to_string(), session_template_filter, 0, true, true);
if (!templates) {
cerr << "Found nothing along " << spath.to_string() << endl;
@@ -130,7 +139,7 @@
SearchPath spath (system_route_template_directory());
spath += user_route_template_directory ();
- templates = scanner (spath.to_string(), template_filter, 0, false, true);
+ templates = scanner (spath.to_string(), route_template_filter, 0, false, true);
if (!templates) {
return;
|
|
|
Here's the patch, anyway. With this, route templates appear, but A3 crashes on trying to create a new route from a template with: "ardour-3.0: ../libs/ardour/internal_return.cc:61: void ARDOUR::InternalReturn::add_send(ARDOUR::InternalSend*): Assertion `!AudioEngine::instance()->process_lock().trylock()' failed." I suspect this is another bug entirely, and moreover, probably beyond my ability to do anything about. |
|
2012-01-19 18:47
|
process-lock-assert-fail-bt.log (23,322 bytes)
colinf@colinf-laptop:~/src/ardour2/3.0$ gtk2_ardour/ardbg
GNU gdb (GDB) 7.1-ubuntu
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
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 "i486-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/colinf/src/ardour2/3.0/build/gtk2_ardour/ardour-3.0...done.
(gdb) r
Starting program: /home/colinf/src/ardour2/3.0/build/gtk2_ardour/ardour-3.0
[Thread debugging using libthread_db enabled]
Ardour3.0beta2 (built using ['11246'] and GCC version 4.4.3)
Cannot xinstall SIGPIPE error handler
ardour: [INFO]: Loading default ui configuration file gtk2_ardour/../gtk2_ardour/ardour3_ui_default.conf
Loading ui configuration file gtk2_ardour/../build/gtk2_ardour/ardour3_ui_dark.rc
ardour: [INFO]: Ardour will be limited to 16384 open files
[New Thread 0xb3ce7b70 (LWP 2668)]
ardour: [INFO]: Loading user configuration file /home/colinf/.config/ardour3/ardour.rc
Using SSE optimized routines
[New Thread 0xb34e6b70 (LWP 2669)]
[New Thread 0xb2ce5b70 (LWP 2670)]
[New Thread 0xb24e4b70 (LWP 2671)]
ardour: [INFO]: looking for panners in /home/colinf/.config/ardour3/panners:/usr/local/lib/ardour3/panners:gtk2_ardour/../build/libs/panners/2in2out:gtk2_ardour/../build/libs/panners/1in2out:gtk2_ardour/../build/libs/panners/vbap
ardour: [INFO]: Panner discovered: "Equal Power Stereo" in gtk2_ardour/../build/libs/panners/2in2out/libpan2in2out.so
ardour: [INFO]: Panner discovered: "Mono to Stereo Panner" in gtk2_ardour/../build/libs/panners/1in2out/libpan1in2out.so
ardour: [INFO]: Panner discovered: "VBAP 2D panner" in gtk2_ardour/../build/libs/panners/vbap/libpanvbap.so
[New Thread 0xb0afcb70 (LWP 2672)]
[New Thread 0xb02fbb70 (LWP 2673)]
[New Thread 0xafafab70 (LWP 2674)]
[New Thread 0xaf0ffb70 (LWP 2675)]
[Thread 0xaf0ffb70 (LWP 2675) exited]
[New Thread 0xaf0ffb70 (LWP 2678)]
[Thread 0xb0afcb70 (LWP 2672) exited]
[Thread 0xb02fbb70 (LWP 2673) exited]
[Thread 0xafafab70 (LWP 2674) exited]
[New Thread 0xafafab70 (LWP 2681)]
[New Thread 0xb02fbb70 (LWP 2682)]
[New Thread 0xb0afcb70 (LWP 2683)]
[New Thread 0xaa7a9b70 (LWP 2684)]
[New Thread 0xa9fa8b70 (LWP 2685)]
[New Thread 0xa97a7b70 (LWP 2686)]
[Thread 0xb02fbb70 (LWP 2682) exited]
[Thread 0xaa7a9b70 (LWP 2684) exited]
[Thread 0xafafab70 (LWP 2681) exited]
[Thread 0xb0afcb70 (LWP 2683) exited]
[Thread 0xa97a7b70 (LWP 2686) exited]
JACK COMMAND: /usr/bin/jackd -p 128 -r -T -d dummy -r 44100 -p 1024
[New Thread 0xa97a7b70 (LWP 2687)]
jackd 0.121.3
Copyright 2001-2009 Paul Davis, Stephane Letz, Jack O'Quinn, Torben Hohn and others.
jackd comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
no message buffer overruns
JACK compiled with System V SHM support.
loading driver ..
creating dummy driver ... dummy_pcm|44100|1024|23219|2|2
VST_PATH not set, defaulting to /home/colinf/vst:/usr/local/lib/vst:/usr/lib/vst
LV2: Discovering 85 plugins
lilv_plugin_load_ports_if_necessary(): error: Plugin <file:///usr/local/lib/lv2/ingen.lv2/stereo_effect.ttl> is missing port 4/6
lilv_plugin_load_ports_if_necessary(): error: Plugin <file:///usr/local/lib/lv2/ingen.lv2/stereo_effect.ttl> is missing port 4/6
lilv_plugin_load_ports_if_necessary(): error: Plugin <file:///usr/local/lib/lv2/ingen.lv2/stereo_effect.ttl> is missing port 4/6
lilv_plugin_load_ports_if_necessary(): error: Plugin <file:///usr/local/lib/lv2/ingen.lv2/stereo_effect.ttl> is missing port 4/6
Done LV2 discovery
[New Thread 0xb0afcb70 (LWP 2698)]
[New Thread 0xafafab70 (LWP 2699)]
[New Thread 0xa8d34c90 (LWP 2700)]
[New Thread 0xaa7a9b70 (LWP 2701)]
**** dummy: xrun of 148472 usec
[New Thread 0xa53abc90 (LWP 2702)]
[New Thread 0xa4dffb70 (LWP 2703)]
[New Thread 0xa45feb70 (LWP 2704)]
[New Thread 0xa3dfdb70 (LWP 2705)]
[New Thread 0xa35fcb70 (LWP 2706)]
[Thread 0xa4dffb70 (LWP 2703) exited]
[Thread 0xa45feb70 (LWP 2704) exited]
[Thread 0xa35fcb70 (LWP 2706) exited]
[Thread 0xa3dfdb70 (LWP 2705) exited]
[Thread 0xa9fa8b70 (LWP 2685) exited]
Checking into empty.template using .template
Checking into meter.template using .template
Checking into gfds.template using .template
Checking into fdsa.template using .template
Checking into empty.template using .template
Checking into meter.template using .template
Checking into gfds.template using .template
Checking into fdsa.template using .template
ardour-3.0: ../libs/ardour/internal_return.cc:61: void ARDOUR::InternalReturn::add_send(ARDOUR::InternalSend*): Assertion `!AudioEngine::instance()->process_lock().trylock()' failed.
Program received signal SIGABRT, Aborted.
0xb7fe2424 in __kernel_vsyscall ()
(gdb) subgraph starting at ardour timed out (subgraph_wait_fd=14, status = 0, state = Triggered, pollret = 0 revents = 0x0)
pp: cannot clean up byte from graph wait fd (Resource temporarily unavailable)
**** dummy: xrun of 479166 usec
thread apply all bt
Thread 22 (Thread 0xa53abc90 (LWP 2702)):
#0 0xb7fe2424 in __kernel_vsyscall ()
#1 0xb4fce736 in nanosleep () at ../sysdeps/unix/syscall-template.S:82
#2 0xb607da62 in g_usleep () from /lib/libglib-2.0.so.0
#3 0xb61722ad in Glib::usleep(unsigned long) ()
from /usr/lib/libglibmm-2.4.so.1
#4 0xb756f2f6 in ARDOUR::AudioEngine::meter_thread (this=0x9ded600)
at ../libs/ardour/audioengine.cc:683
#5 0xb7591059 in boost::_mfi::mf0<void, ARDOUR::AudioEngine>::operator()(ARDOUR::AudioEngine*) const () from gtk2_ardour/../build/libs/ardour/libardour.so.3
#6 0xb758c244 in void boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> >::operator()<boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list0>(boost::_bi::type<void>, boost::_mfi::mf0<void, ARDOUR::AudioEngine>&, boost::_bi::list0&, int) () from gtk2_ardour/../build/libs/ardour/libardour.so.3
#7 0xb758776e in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > >::operator()() () from gtk2_ardour/../build/libs/ardour/libardour.so.3
#8 0xb75824c7 in sigc::adaptor_functor<boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > > >::operator()() const ()
from gtk2_ardour/../build/libs/ardour/libardour.so.3
#9 0xb757dc27 in sigc::internal::slot_call0<boost::_bi::bind_t<void, boost::_mf---Type <return> to continue, or q <return> to quit---
i::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > >, void>::call_it(sigc::internal::slot_rep*) ()
from gtk2_ardour/../build/libs/ardour/libardour.so.3
#10 0xb6165eb2 in ?? () from /usr/lib/libglibmm-2.4.so.1
#11 0xb607adef in ?? () from /lib/libglib-2.0.so.0
#12 0xb4fc696e in start_thread (arg=0xa53abc90) at pthread_create.c:300
#13 0xb4a1ca4e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
Thread 21 (Thread 0xaa7a9b70 (LWP 2701)):
#0 0xb7fe2424 in __kernel_vsyscall ()
#1 0xb4a0eb86 in *__GI___poll (fds=0xb4aa4ff4, nfds=10, timeout=-1)
at ../sysdeps/unix/sysv/linux/poll.c:87
#2 0xb60614eb in g_poll () from /lib/libglib-2.0.so.0
#3 0xb60540ac in ?? () from /lib/libglib-2.0.so.0
#4 0xb6054817 in g_main_loop_run () from /lib/libglib-2.0.so.0
#5 0xb616b4b5 in Glib::MainLoop::run() () from /usr/lib/libglibmm-2.4.so.1
#6 0xb648817d in BaseUI::main_thread (this=0xa8faed0)
at ../libs/pbd/base_ui.cc:77
#7 0xb6489552 in sigc::bound_mem_functor0<void, BaseUI>::operator() (
this=0xa82f434) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1787
#8 0xb64893c2 in sigc::adaptor_functor<sigc::bound_mem_functor0<void, BaseUI> >::operator() (this=0xa82f430)
at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
---Type <return> to continue, or q <return> to quit---
#9 0xb6489132 in sigc::internal::slot_call0<sigc::bound_mem_functor0<void, BaseUI>, void>::call_it (rep=0xa82f418)
at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#10 0xb6165eb2 in ?? () from /usr/lib/libglibmm-2.4.so.1
#11 0xb607adef in ?? () from /lib/libglib-2.0.so.0
#12 0xb4fc696e in start_thread (arg=0xaa7a9b70) at pthread_create.c:300
#13 0xb4a1ca4e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
Thread 20 (Thread 0xa8d34c90 (LWP 2700)):
#0 0xb7fe2424 in __kernel_vsyscall ()
#1 0xb4a0eb86 in *__GI___poll (fds=0xb4aa4ff4, nfds=1, timeout=-1)
at ../sysdeps/unix/sysv/linux/poll.c:87
#2 0xb75f3b27 in ARDOUR::Butler::thread_work (this=0xa819700)
at ../libs/ardour/butler.cc:153
#3 0xb75f3a9e in ARDOUR::Butler::_thread_work (arg=0xa819700)
at ../libs/ardour/butler.cc:137
#4 0xb64bea3c in fake_thread_start (arg=0xa82ecc8)
at ../libs/pbd/pthread_utils.cc:81
#5 0xb4fc696e in start_thread (arg=0xa8d34c90) at pthread_create.c:300
#6 0xb4a1ca4e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
Thread 19 (Thread 0xafafab70 (LWP 2699)):
#0 0xb7fe2424 in __kernel_vsyscall ()
---Type <return> to continue, or q <return> to quit---
#1 0xb4fcd245 in sem_wait@@GLIBC_2.1 ()
at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/sem_wait.S:80
#2 0xb76e0941 in PBD::ProcessSemaphore::wait() ()
from gtk2_ardour/../build/libs/ardour/libardour.so.3
#3 0xb76de209 in ARDOUR::Graph::restart_cycle (this=0xa81a260)
at ../libs/ardour/graph.cc:266
#4 0xb76de1cf in ARDOUR::Graph::dec_ref (this=0xa81a260)
at ../libs/ardour/graph.cc:253
#5 0xb76e5676 in ARDOUR::GraphNode::finish (this=0xac47124, chain=1)
at ../libs/ardour/graphnode.cc:71
#6 0xb76deda0 in ARDOUR::Graph::run_one (this=0xa81a260)
at ../libs/ardour/graph.cc:406
#7 0xb76df224 in ARDOUR::Graph::main_thread (this=0xa81a260)
at ../libs/ardour/graph.cc:461
#8 0xb76e4be7 in boost::_mfi::mf0<void, ARDOUR::Graph>::operator()(ARDOUR::Graph*) const () from gtk2_ardour/../build/libs/ardour/libardour.so.3
#9 0xb76e468c in void boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> >::operator()<boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list0>(boost::_bi::type<void>, boost::_mfi::mf0<void, ARDOUR::Graph>&, boost::_bi::list0&, int) ()
from gtk2_ardour/../build/libs/ardour/libardour.so.3
#10 0xb76e4210 in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> > >::operator()() ()
from gtk2_ardour/../build/libs/ardour/libardour.so.3
---Type <return> to continue, or q <return> to quit---
#11 0xb76e3cc2 in boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> > >, void>::invoke(boost::detail::function::function_buffer&) () from gtk2_ardour/../build/libs/ardour/libardour.so.3
#12 0x08c1e67d in boost::function0<void>::operator() (this=0xafafa2ac)
at /usr/include/boost/function/function_template.hpp:1013
#13 0xb7572437 in ARDOUR::AudioEngine::_start_process_thread (arg=0xa8224d0)
at ../libs/ardour/audioengine.cc:1467
#14 0xb4fc696e in start_thread (arg=0xafafab70) at pthread_create.c:300
#15 0xb4a1ca4e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
Thread 18 (Thread 0xb0afcb70 (LWP 2698)):
#0 0xb7fe2424 in __kernel_vsyscall ()
#1 0xb4fcdedb in write () at ../sysdeps/unix/syscall-template.S:82
#2 0xb4fe45fb in jack_client_process_events () from /usr/lib/libjack.so.0
#3 0x0000001c in ?? ()
#4 0xb0afc0c3 in ?? ()
#5 0x00000100 in ?? ()
#6 0xfad17000 in ?? ()
#7 0xdddf6fb7 in ?? ()
#8 0x000010b7 in ?? ()
#9 0x01003900 in ?? ()
#10 0xfa85a400 in ?? ()
---Type <return> to continue, or q <return> to quit---
#11 0xfc3e1800 in ?? ()
#12 0xdddf6eb7 in ?? ()
#13 0x04f008b7 in ?? ()
#14 0xf9113508 in ?? ()
#15 0x04f008b7 in ?? ()
#16 0x00000208 in ?? ()
#17 0xdddc9400 in ?? ()
#18 0xf91033b7 in ?? ()
#19 0x04f008b7 in ?? ()
#20 0xdddc9408 in ?? ()
#21 0x04f008b7 in ?? ()
#22 0x06c68008 in ?? ()
#23 0xf8bb0608 in ?? ()
#24 0x000003b7 in ?? ()
#25 0x00005700 in ?? ()
#26 0x00000100 in ?? ()
#27 0xffeff400 in ?? ()
#28 0xe4e9aeb7 in ?? ()
#29 0xfdf428b7 in ?? ()
#30 0xdddd64b7 in ?? ()
#31 0xfec222b7 in ?? ()
#32 0xdddd54b7 in ?? ()
#33 0xf8af10b7 in ?? ()
---Type <return> to continue, or q <return> to quit---
#34 0xdddd48b7 in ?? ()
#35 0xfffa54b7 in ?? ()
#36 0x000000b7 in ?? ()
#37 0xe4d82600 in ?? ()
#38 0x000002b7 in ?? ()
#39 0x00002000 in ?? ()
#40 0xf383c800 in ?? ()
#41 0x000002b7 in ?? ()
#42 0x00000800 in ?? ()
#43 0xf13af300 in ?? ()
#44 0xf383f8b7 in ?? ()
#45 0xf139dfb7 in ?? ()
#46 0xf13ccdb7 in ?? ()
#47 0x000000b7 in ?? ()
#48 0x00001000 in ?? ()
#49 0x00000000 in ?? ()
Thread 17 (Thread 0xa97a7b70 (LWP 2687)):
#0 0xb7fe2424 in __kernel_vsyscall ()
#1 0xb4fcb015 in pthread_cond_wait@@GLIBC_2.3.2 ()
at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:122
#2 0xb4fe574c in mb_thread_func () from /usr/lib/libjack.so.0
---Type <return> to continue, or q <return> to quit---
#3 0xa97a7b70 in ?? ()
#4 0xb52a8ac0 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
Thread 10 (Thread 0xaf0ffb70 (LWP 2678)):
#0 0xb7fe2424 in __kernel_vsyscall ()
#1 0xb4a0eb86 in *__GI___poll (fds=0xb4aa4ff4, nfds=2, timeout=-1)
at ../sysdeps/unix/sysv/linux/poll.c:87
#2 0xaf2c7502 in ?? () from /usr/lib/libpulse.so.0
#3 0xaf2b3a59 in pa_mainloop_poll () from /usr/lib/libpulse.so.0
#4 0xaf2b5a13 in pa_mainloop_iterate () from /usr/lib/libpulse.so.0
#5 0xaf2b5ae4 in pa_mainloop_run () from /usr/lib/libpulse.so.0
#6 0xaf2c72a3 in ?? () from /usr/lib/libpulse.so.0
#7 0xaf281e02 in ?? () from /usr/lib/libpulsecommon-0.9.21.so
#8 0xb4fc696e in start_thread (arg=0xaf0ffb70) at pthread_create.c:300
#9 0xb4a1ca4e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
Thread 5 (Thread 0xb24e4b70 (LWP 2671)):
#0 0xb7fe2424 in __kernel_vsyscall ()
#1 0xb4fcb015 in pthread_cond_wait@@GLIBC_2.3.2 ()
at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:122
#2 0xb61653a8 in Glib::Cond::wait(Glib::Mutex&) ()
---Type <return> to continue, or q <return> to quit---
from /usr/lib/libglibmm-2.4.so.1
#3 0xb74fb327 in ARDOUR::Analyser::work () at ../libs/ardour/analyser.cc:85
#4 0xb74fb062 in analyser_work () at ../libs/ardour/analyser.cc:49
#5 0x0916d1a5 in sigc::pointer_functor0<void>::operator() (this=0x9c8e95c)
at /usr/include/sigc++-2.0/sigc++/functors/ptr_fun.h:77
#6 0x0916b058 in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator() (this=0x9c8e958)
at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
#7 0x091688cc in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it (rep=0x9c8e940) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#8 0xb6165eb2 in ?? () from /usr/lib/libglibmm-2.4.so.1
#9 0xb607adef in ?? () from /lib/libglib-2.0.so.0
#10 0xb4fc696e in start_thread (arg=0xb24e4b70) at pthread_create.c:300
#11 0xb4a1ca4e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
Thread 4 (Thread 0xb2ce5b70 (LWP 2670)):
#0 0xb7fe2424 in __kernel_vsyscall ()
#1 0xb4fcb015 in pthread_cond_wait@@GLIBC_2.3.2 ()
at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:122
#2 0xb61653a8 in Glib::Cond::wait(Glib::Mutex&) ()
from /usr/lib/libglibmm-2.4.so.1
#3 0xb79fb049 in peak_thread_work () at ../libs/ardour/source_factory.cc:68
---Type <return> to continue, or q <return> to quit---
#4 0x0916d1a5 in sigc::pointer_functor0<void>::operator() (this=0x9c8eb84)
at /usr/include/sigc++-2.0/sigc++/functors/ptr_fun.h:77
#5 0x0916b058 in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator() (this=0x9c8eb80)
at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
#6 0x091688cc in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it (rep=0x9c8eb68) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#7 0xb6165eb2 in ?? () from /usr/lib/libglibmm-2.4.so.1
#8 0xb607adef in ?? () from /lib/libglib-2.0.so.0
#9 0xb4fc696e in start_thread (arg=0xb2ce5b70) at pthread_create.c:300
#10 0xb4a1ca4e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
Thread 3 (Thread 0xb34e6b70 (LWP 2669)):
#0 0xb7fe2424 in __kernel_vsyscall ()
#1 0xb4fcb015 in pthread_cond_wait@@GLIBC_2.3.2 ()
at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:122
#2 0xb61653a8 in Glib::Cond::wait(Glib::Mutex&) ()
from /usr/lib/libglibmm-2.4.so.1
#3 0xb79fb049 in peak_thread_work () at ../libs/ardour/source_factory.cc:68
#4 0x0916d1a5 in sigc::pointer_functor0<void>::operator() (this=0x9c872cc)
at /usr/include/sigc++-2.0/sigc++/functors/ptr_fun.h:77
#5 0x0916b058 in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator---Type <return> to continue, or q <return> to quit---
() (this=0x9c872c8)
at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
#6 0x091688cc in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it (rep=0x9c872b0) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#7 0xb6165eb2 in ?? () from /usr/lib/libglibmm-2.4.so.1
#8 0xb607adef in ?? () from /lib/libglib-2.0.so.0
#9 0xb4fc696e in start_thread (arg=0xb34e6b70) at pthread_create.c:300
#10 0xb4a1ca4e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
Thread 2 (Thread 0xb3ce7b70 (LWP 2668)):
#0 0xb7fe2424 in __kernel_vsyscall ()
#1 0xb49e6ce6 in nanosleep () at ../sysdeps/unix/syscall-template.S:82
#2 0xb4a1644c in usleep (useconds=1000)
at ../sysdeps/unix/sysv/linux/usleep.c:33
#3 0x093e116b in gui_event_loop (ptr=0x0)
at ../gtk2_ardour/linux_vst_gui_support.cc:363
#4 0xb4fc696e in start_thread (arg=0xb3ce7b70) at pthread_create.c:300
#5 0xb4a1ca4e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
Thread 1 (Thread 0xb4264780 (LWP 2665)):
#0 0xb7fe2424 in __kernel_vsyscall ()
#1 0xb4979651 in *__GI_raise (sig=6)
at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
---Type <return> to continue, or q <return> to quit---
#2 0xb497ca82 in *__GI_abort () at abort.c:92
#3 0xb4972718 in *__GI___assert_fail (
assertion=0xb7af8644 "!AudioEngine::instance()->process_lock().trylock()",
file=0xb7af8620 "../libs/ardour/internal_return.cc", line=61,
function=0xb7afc720 "void ARDOUR::InternalReturn::add_send(ARDOUR::InternalSend*)") at assert.c:81
#4 0xb76eb4af in ARDOUR::InternalReturn::add_send (this=0xac4f3a8,
send=0xbf1cb90) at ../libs/ardour/internal_return.cc:61
#5 0xb789a015 in ARDOUR::Route::add_send_to_internal_return (this=0xac47058,
send=0xbf1cb90) at ../libs/ardour/route.cc:2560
#6 0xb76ed023 in ARDOUR::InternalSend::use_target (this=0xbf1cb90, sendto=...)
at ../libs/ardour/internal_send.cc:84
#7 0xb76edf33 in ARDOUR::InternalSend::connect_when_legal (this=0xbf1cb90)
at ../libs/ardour/internal_send.cc:283
#8 0xb76edd7d in ARDOUR::InternalSend::set_state (this=0xbf1cb90, node=...,
version=3000) at ../libs/ardour/internal_send.cc:259
#9 0xb78996a9 in ARDOUR::Route::set_processor_state (this=0xbf0f2f8, node=...)
at ../libs/ardour/route.cc:2447
#10 0xb789625c in ARDOUR::Route::set_state (this=0xbf0f2f8, node=...,
version=3000) at ../libs/ardour/route.cc:1982
#11 0xb7a22940 in ARDOUR::Track::set_state (this=0xbf0f2f8, node=...,
version=3000) at ../libs/ardour/track.cc:116
#12 0xb755a5f7 in ARDOUR::AudioTrack::set_state (this=0xbf0f2f8, node=...,
---Type <return> to continue, or q <return> to quit---
version=3000) at ../libs/ardour/audio_track.cc:200
#13 0xb798f84d in ARDOUR::Session::XMLRouteFactory (this=0xa816938, node=...,
version=3000) at ../libs/ardour/session_state.cc:1496
#14 0xb78ef358 in ARDOUR::Session::new_route_from_template (this=0xa816938,
how_many=1, template_path=...) at ../libs/ardour/session.cc:2032
#15 0x08bea9bc in ARDOUR_UI::add_route (this=0x9ae2da0, float_window=0xa52c720)
at ../gtk2_ardour/ardour_ui.cc:3289
#16 0x09097cc3 in Mixer_UI::new_track_or_bus (this=0xa52c720)
at ../gtk2_ardour/mixer_ui.cc:1785
#17 0x090a0f88 in sigc::bound_mem_functor0<void, Mixer_UI>::operator()() const
()
#18 0x0909f5f4 in sigc::adaptor_functor<sigc::bound_mem_functor0<void, Mixer_UI> >::operator()() const ()
#19 0x0909da50 in sigc::internal::slot_call0<sigc::bound_mem_functor0<void, Mixer_UI>, void>::call_it(sigc::internal::slot_rep*) ()
#20 0xb617027b in Glib::SignalProxyNormal::slot0_void_callback(_GObject*, void*) () from /usr/lib/libglibmm-2.4.so.1
#21 0xb610edcc in g_cclosure_marshal_VOID__VOID ()
from /usr/lib/libgobject-2.0.so.0
#22 0xb6101252 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#23 0xb6115d90 in ?? () from /usr/lib/libgobject-2.0.so.0
#24 0xb6116db4 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#25 0xb6117256 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#26 0xb5cbfc7a in gtk_button_clicked () from /usr/lib/libgtk-x11-2.0.so.0
#27 0xb5cc1238 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#28 0xb56400cd in Gtk::Button_Class::released_callback(_GtkButton*) ()
from /usr/lib/libgtkmm-2.4.so.1
#29 0xb610edcc in g_cclosure_marshal_VOID__VOID ()
from /usr/lib/libgobject-2.0.so.0
#30 0xb60ff8b9 in ?? () from /usr/lib/libgobject-2.0.so.0
#31 0xb6101252 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#32 0xb611523a in ?? () from /usr/lib/libgobject-2.0.so.0
#33 0xb6116db4 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#34 0xb6117256 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#35 0xb5cbfd1a in gtk_button_released () from /usr/lib/libgtk-x11-2.0.so.0
#36 0xb5cbfd63 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#37 0xb571a781 in Gtk::Widget_Class::button_release_event_callback(_GtkWidget*, _GdkEventButton*) () from /usr/lib/libgtkmm-2.4.so.1
#38 0xb5d7d434 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#39 0xb60ff8b9 in ?? () from /usr/lib/libgobject-2.0.so.0
#40 0xb6101252 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#41 0xb61155e6 in ?? () from /usr/lib/libgobject-2.0.so.0
#42 0xb6116c33 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#43 0xb6117256 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#44 0xb5eaa646 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#45 0xb5d75a6d in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#46 0xb5d76e17 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#47 0xb5bff39a in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#48 0xb60505e5 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#49 0xb60542d8 in ?? () from /lib/libglib-2.0.so.0
#50 0xb6054817 in g_main_loop_run () from /lib/libglib-2.0.so.0
#51 0xb5d773d9 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#52 0xb568a3a7 in Gtk::Main::run_impl() () from /usr/lib/libgtkmm-2.4.so.1
#53 0xb568a1a2 in Gtk::Main::run() () from /usr/lib/libgtkmm-2.4.so.1
#54 0xb6678fc5 in Gtkmm2ext::UI::run (this=0x9ae2da0, old_receiver=...)
at ../libs/gtkmm2ext/gtk_ui.cc:266
#55 0x08fe227f in main (argc=1, argv=0xbfffeb74) at ../gtk2_ardour/main.cc:555
(gdb)
(gdb)
|
|
|
Here's a backtrace, anyway. This happens even when the template I try to use has no plugins or sends in it. |
|
|
Can you specify which svn build that bt is from? |
|
|
Backtrace is from whatever current svn was yesterday morning when I uploaded it (plus patch here, of course), so r11266 or r11267 or thereabouts. Anything else you'd like me to try? [EDIT] Ah, I guess the change to route.cc in r11274 should fix this: I'll give it a go now... |
|
|
No, still the same assertion failure in r11274... |
|
2012-01-21 23:11
|
set-state-process_lock.patch (517 bytes)
Index: libs/ardour/internal_send.cc
===================================================================
--- libs/ardour/internal_send.cc (revision 11295)
+++ libs/ardour/internal_send.cc (working copy)
@@ -256,6 +256,7 @@
if (!IO::connecting_legal) {
IO::ConnectingLegal.connect_same_thread (connect_c, boost::bind (&InternalSend::connect_when_legal, this));
} else {
+ Glib::Mutex::Lock lm (AudioEngine::instance()->process_lock ()); // for InternalReturn::add_send
connect_when_legal ();
}
}
|
|
|
A process of blindly moving the taking of process_lock up the call stack until things work leads me to the attached set-state-process_lock.patch. With this change, I can open existing sessions and create new ones, and add new tracks both standard and from templates. I make no claim that this is anything like a proper fix, since I know practically nothing about how the locking in A3 is supposed to work, but it Works For Me™. |
|
|
colin - in the process of debugging my proposed fix, i ran into all kinds of other conceptual issues with internal sends in templates. can you post the template you were using? thanks. its in ~/.config/ardour3/route_templates |
|
|
Paul: I don't think I tested with any route templates containing sends: mostly I used a template saved from a newly-created mono track, and one containing just the Invada meter LV2 plugin. I'll upload the whole of my ~/.config/ardour3/route_templates/ in a moment anyway, just in case there's anything odd going on. |
|
2012-01-23 22:48
|
|
|
|
rev 11329 should fix this. |
|
|
Now works nicely for me when adding tracks & buses, both from route templates and standard track configurations. Thank you! |
|
|
Closing old issues reported by me: these have long since been fixed. |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2012-01-19 14:33 | colinf | New Issue | |
| 2012-01-19 18:09 | colinf | Note Added: 0012583 | |
| 2012-01-19 18:13 | colinf | Note Edited: 0012583 | |
| 2012-01-19 18:17 | colinf | File Added: route-templates.patch | |
| 2012-01-19 18:22 | colinf | Note Added: 0012584 | |
| 2012-01-19 18:47 | colinf | File Added: process-lock-assert-fail-bt.log | |
| 2012-01-19 18:49 | colinf | Note Added: 0012585 | |
| 2012-01-20 00:24 | paul | Note Added: 0012586 | |
| 2012-01-20 13:35 | colinf | Note Added: 0012593 | |
| 2012-01-20 13:39 | colinf | Note Edited: 0012593 | |
| 2012-01-20 13:41 | colinf | Note Added: 0012594 | |
| 2012-01-21 23:11 | colinf | File Added: set-state-process_lock.patch | |
| 2012-01-21 23:11 | colinf | Note Added: 0012608 | |
| 2012-01-22 10:20 | cth103 | cost | => 0.00 |
| 2012-01-22 10:20 | cth103 | Target Version | => 3.0-beta3 |
| 2012-01-23 22:25 | paul | Note Added: 0012632 | |
| 2012-01-23 22:46 | colinf | Note Added: 0012633 | |
| 2012-01-23 22:48 | colinf | File Added: route_templates.tgz | |
| 2012-01-24 13:44 | paul | Note Added: 0012636 | |
| 2012-01-24 17:46 | colinf | Note Added: 0012643 | |
| 2012-01-24 17:46 | colinf | Status | new => resolved |
| 2012-01-24 17:46 | colinf | Resolution | open => fixed |
| 2012-01-24 17:46 | colinf | Assigned To | => colinf |
| 2015-09-18 15:14 | colinf | Note Added: 0017260 | |
| 2015-09-18 15:14 | colinf | Status | resolved => closed |