View Issue Details

IDProjectCategoryView StatusLast Update
0004303ardourbugspublic2020-04-19 20:15
Reporteracolomb Assigned Tocth103  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Product Version2.8.11 
Target Version3.0 
Summary0004303: Duplicate controllable IDs when using route templates
DescriptionWhen creating tracks from a route template, the controllable IDs seem to be unconditionally copied and in many cases clash with existing IDs (especially when the template was created from within the same session).

Duplicate controllable IDs seem to break the Generic MIDI auto-learn feature and can lead to crashes.

A sample session is attached, along with instructions to re-create it (see below).
Additional InformationSteps to reproduce:
- Create new empty session
- Add a track "Audio 1"
- Click on "Audio 1" button in mixer strip and select "Save As Template"
- Enter template name "SimpleTrack"
- Press Enter (THERE IS NO OK BUTTON?)
- Add another track and select "SimpleTrack" under Channel Configuration
- Save the session

Now inspect the session XML file and the mixer strip template under .ardour2/route_templates/SimpleTrack.template. The <Route>s will have the following <controllable> ids:
name Audio 1 Audio 2 SimpleTrack
panner 73 73 73
gaincontrol 63 63 63
solo 66 66 66
mute 67 67 67
recenable 68 91 68

Note that except the recenable controllable, all IDs are copied from the template and therefore end up as duplicates in the session file.

Subsequently, this causes Ardour to crash when trying to auto-learn the MIDI controls:
- Enable the "Generic MIDI" control surface
- Ctrl + MiddleClick the fader for track "Audio 1"
- Move any controller A on a connected control surface. The fader moves correctly.
- Ctrl + MiddleClick the fader for track "Audio 2"
- Move another controller B. The fader for track "Audio 1" moves, and the message "operate controller now" stays where it is.
- Ctrl + MiddleClick again to cancel the auto-learn
- Ctrl + MiddleClick the fader for trach "Audio 1" again
- Ardour crashes with a segmentation fault
TagsNo tags attached.

Relationships

related to 0002753 feedbackpaul track templates: creation of multiple tracks in one go fails due to naming conflict. 
related to 0005437 new Copy operations of route processors (drag-and-drop and create from template) are not or incompletely implemented 

Activities

2011-09-02 09:01

 

acolomb

2011-09-02 09:04

reporter   ~0011438

This seems related to 0002753 which mentions duplicate send names when using route templates. I just could not find an option to record "related to" issue.

I have tried with 2.8.11, but I can test with A3 trunk if you think the problem might already be fixed.

2011-09-02 09:34

 

acolomb

2011-11-03 21:29

reporter   ~0011897

Last edited: 2011-11-03 21:38

Just re-tried with a debug build of 2.0-ongoing. Both the duplicate IDs and the crash are still reproducible, backtrace attached.

EDIT: Exactly the same behaviour with current SVN r10429 of ardour3 branch. Backtrace also attached.

2011-11-03 21:30

 

backtrace-4303-a2.txt (15,341 bytes)   
Ardour 2.8.12
   (built using 10429 and GCC version 4.6.1)
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/acolomb/.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 4096 open files
loading system configuration file ./ardour_system.rc
loading user configuration file /home/acolomb/.ardour2/ardour.rc
ardour: [INFO]: Using SSE optimized routines
[New Thread 0x7fffe607e700 (LWP 7648)]
[New Thread 0x7fffe587d700 (LWP 7649)]
[New Thread 0x7fffe507c700 (LWP 7650)]
ardour: [INFO]: looking for control protocols in /home/acolomb/.ardour2/surfaces/:/usr/local/lib64/ardour2/surfaces/
powermate: Opening of powermate failed - No such file or directory
ardour: [INFO]: Control protocol powermate not usable
ardour: [INFO]: Control surface protocol discovered: "Mackie"
ardour: [INFO]: Control surface protocol discovered: "Generic MIDI"
[New Thread 0x7fffc46c5700 (LWP 7654)]
[New Thread 0x7fffc3ec4700 (LWP 7655)]
[New Thread 0x7fffc36c3700 (LWP 7656)]
[New Thread 0x7fffc2ec2700 (LWP 7657)]
[New Thread 0x7fffc26c1700 (LWP 7658)]
[New Thread 0x7fffc1ec0700 (LWP 7659)]
[New Thread 0x7fffc1e3f700 (LWP 7660)]
[Thread 0x7fffc1e3f700 (LWP 7660) exited]
[Thread 0x7fffc1ec0700 (LWP 7659) exited]
[New Thread 0x7fffc1da8700 (LWP 7661)]
[Thread 0x7fffc46c5700 (LWP 7654) exited]
[Thread 0x7fffc1da8700 (LWP 7661) exited]
[Thread 0x7fffc2ec2700 (LWP 7657) exited]
[Thread 0x7fffc3ec4700 (LWP 7655) exited]
[Thread 0x7fffc26c1700 (LWP 7658) exited]
[New Thread 0x7fffc46b6700 (LWP 7664)]
[New Thread 0x7fffc4635700 (LWP 7665)]
loading bindings from /home/acolomb/.ardour2/ardour.bindings

(ardour-2.8.12:7644): Gtk-WARNING **: EnableTranslation: missing action EnableTranslation
[New Thread 0x7fffc439a700 (LWP 7666)]
[New Thread 0x7fffc4318820 (LWP 7667)]
Session writable based on /srv/data/Audio/recording/bug4303-a2/
[New Thread 0x7fffc429d820 (LWP 7668)]
[New Thread 0x7fffc4222820 (LWP 7669)]
[New Thread 0x7fffc26c1700 (LWP 7670)]
[Thread 0x7fffc26c1700 (LWP 7670) exited]
[Thread 0x7fffc36c3700 (LWP 7656) exited]
[New Thread 0x7fffc36c3700 (LWP 7685)]
[New Thread 0x7fffc26c1700 (LWP 7686)]
[Thread 0x7fffc36c3700 (LWP 7685) exited]
[New Thread 0x7fffc36c3700 (LWP 7688)]
[Thread 0x7fffc36c3700 (LWP 7688) exited]
[Thread 0x7fffc26c1700 (LWP 7686) exited]

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

Thread 18 (Thread 0x7fffc4222820 (LWP 7669)):
#0  0x00007fffefe3f723 in *__GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007ffff7a9ea20 in ARDOUR::Session::midi_thread_work (this=0x1b61360) at libs/ardour/session_midi.cc:1220
#2  0x00007ffff7a9e54a in ARDOUR::Session::_midi_thread_work (arg=0x1b61360) at libs/ardour/session_midi.cc:1138
#3  0x00007ffff00ffb40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#4  0x00007fffefe4a36d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 17 (Thread 0x7fffc429d820 (LWP 7668)):
#0  0x00007fffefe3f723 in *__GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007ffff7a4602a in ARDOUR::Session::butler_thread_work (this=0x1b61360) at libs/ardour/session_butler.cc:179
#2  0x00007ffff7a45f83 in ARDOUR::Session::_butler_thread_work (arg=0x1b61360) at libs/ardour/session_butler.cc:159
#3  0x00007ffff00ffb40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#4  0x00007fffefe4a36d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 16 (Thread 0x7fffc4318820 (LWP 7667)):
#0  0x00007ffff010789d in nanosleep () at ../sysdeps/unix/syscall-template.S:82
#1  0x00007ffff5994da2 in g_usleep () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff56fa658 in Glib::usleep (microseconds=10000) at libs/glibmm2/glibmm/timer.cc:68
#3  0x00007ffff793cb46 in ARDOUR::AudioEngine::meter_thread (this=0x14c19c0) at libs/ardour/audioengine.cc:498
#4  0x00007ffff7944e37 in sigc::bound_mem_functor0<void, ARDOUR::AudioEngine>::operator() (this=0x1b51468) at libs/sigc++2/sigc++/functors/mem_fun.h:1787
#5  0x00007ffff7944bfa in sigc::adaptor_functor<sigc::bound_mem_functor0<void, ARDOUR::AudioEngine> >::operator() (this=0x1b51460) at libs/sigc++2/sigc++/adaptors/adaptor_trait.h:251
#6  0x00007ffff7944619 in sigc::internal::slot_call0<sigc::bound_mem_functor0<void, ARDOUR::AudioEngine>, void>::call_it (rep=0x1b51430) at libs/sigc++2/sigc++/functors/slot.h:103
#7  0x0000000000926b00 in sigc::slot0<void>::operator() (this=0x130ef80) at libs/sigc++2/sigc++/functors/slot.h:440
#8  0x00007ffff56fbae8 in (anonymous namespace)::call_thread_entry_slot (data=0x130ef80) at libs/glibmm2/glibmm/thread.cc:43
#9  0x00007ffff5991986 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007ffff00ffb40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#11 0x00007fffefe4a36d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()

Thread 15 (Thread 0x7fffc439a700 (LWP 7666)):
#0  sem_timedwait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S:106
#1  0x00007ffff35c2180 in ?? () from /usr/lib/libjack.so.0
#2  0x00007ffff35b114a in ?? () from /usr/lib/libjack.so.0
#3  0x00007ffff35adbe7 in ?? () from /usr/lib/libjack.so.0
#4  0x00007ffff35c17a0 in ?? () from /usr/lib/libjack.so.0
#5  0x00007ffff00ffb40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#6  0x00007fffefe4a36d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 14 (Thread 0x7fffc4635700 (LWP 7665)):
#0  0x00007ffff010717d in read () at ../sysdeps/unix/syscall-template.S:82
#1  0x00007ffff35c342a in ?? () from /usr/lib/libjack.so.0
#2  0x00007ffff35c5cf7 in ?? () from /usr/lib/libjack.so.0
#3  0x00007ffff35c17a0 in ?? () from /usr/lib/libjack.so.0
#4  0x00007ffff00ffb40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#5  0x00007fffefe4a36d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6  0x0000000000000000 in ?? ()

Thread 13 (Thread 0x7fffc46b6700 (LWP 7664)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007ffff35c2f21 in ?? () from /usr/lib/libjack.so.0
#2  0x00007ffff35be5f5 in ?? () from /usr/lib/libjack.so.0
#3  0x00007ffff35c17a0 in ?? () from /usr/lib/libjack.so.0
#4  0x00007ffff00ffb40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#5  0x00007fffefe4a36d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7fffe507c700 (LWP 7650)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007ffff56fc3af in Glib::Cond::wait (this=0x1407470, mutex=...) at libs/glibmm2/glibmm/thread.cc:362
---Type <return> to continue, or q <return> to quit---
#2  0x00007ffff791e5b4 in ARDOUR::Analyser::work () at libs/ardour/analyser.cc:85
#3  0x00007ffff791e2f9 in analyser_work () at libs/ardour/analyser.cc:49
#4  0x0000000000c8d379 in sigc::pointer_functor0<void>::operator() (this=0x1407528) at libs/sigc++2/sigc++/functors/ptr_fun.h:77
#5  0x0000000000c8c712 in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator() (this=0x1407520) at libs/sigc++2/sigc++/adaptors/adaptor_trait.h:251
#6  0x0000000000c8b13f in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it (rep=0x14074f0) at libs/sigc++2/sigc++/functors/slot.h:103
#7  0x0000000000926b00 in sigc::slot0<void>::operator() (this=0x14074d0) at libs/sigc++2/sigc++/functors/slot.h:440
#8  0x00007ffff56fbae8 in (anonymous namespace)::call_thread_entry_slot (data=0x14074d0) at libs/glibmm2/glibmm/thread.cc:43
#9  0x00007ffff5991986 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007ffff00ffb40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#11 0x00007fffefe4a36d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7fffe587d700 (LWP 7649)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007ffff56fc3af in Glib::Cond::wait (this=0x1406eb0, mutex=...) at libs/glibmm2/glibmm/thread.cc:362
#2  0x00007ffff7ad563e in peak_thread_work () at libs/ardour/source_factory.cc:65
#3  0x0000000000c8d379 in sigc::pointer_functor0<void>::operator() (this=0x1407298) at libs/sigc++2/sigc++/functors/ptr_fun.h:77
#4  0x0000000000c8c712 in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator() (this=0x1407290) at libs/sigc++2/sigc++/adaptors/adaptor_trait.h:251
#5  0x0000000000c8b13f in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it (rep=0x1407260) at libs/sigc++2/sigc++/functors/slot.h:103
#6  0x0000000000926b00 in sigc::slot0<void>::operator() (this=0x1407240) at libs/sigc++2/sigc++/functors/slot.h:440
#7  0x00007ffff56fbae8 in (anonymous namespace)::call_thread_entry_slot (data=0x1407240) at libs/glibmm2/glibmm/thread.cc:43
#8  0x00007ffff5991986 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#9  0x00007ffff00ffb40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#10 0x00007fffefe4a36d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fffe607e700 (LWP 7648)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007ffff56fc3af in Glib::Cond::wait (this=0x1406eb0, mutex=...) at libs/glibmm2/glibmm/thread.cc:362
#2  0x00007ffff7ad563e in peak_thread_work () at libs/ardour/source_factory.cc:65
#3  0x0000000000c8d379 in sigc::pointer_functor0<void>::operator() (this=0x1407068) at libs/sigc++2/sigc++/functors/ptr_fun.h:77
#4  0x0000000000c8c712 in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator() (this=0x1407060) at libs/sigc++2/sigc++/adaptors/adaptor_trait.h:251
#5  0x0000000000c8b13f in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it (rep=0x1407030) at libs/sigc++2/sigc++/functors/slot.h:103
#6  0x0000000000926b00 in sigc::slot0<void>::operator() (this=0x1406ed0) at libs/sigc++2/sigc++/functors/slot.h:440
#7  0x00007ffff56fbae8 in (anonymous namespace)::call_thread_entry_slot (data=0x1406ed0) at libs/glibmm2/glibmm/thread.cc:43
#8  0x00007ffff5991986 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#9  0x00007ffff00ffb40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#10 0x00007fffefe4a36d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7ffff7f1a960 (LWP 7644)):
#0  0x0000000000000081 in ?? ()
#1  0x00007fffc3f834b0 in GenericMidiControlProtocol::start_learning (this=0x20b9ef0, c=0x7fffbc02f100) at libs/surfaces/generic_midi/generic_midi_control_protocol.cc:154
#2  0x00007fffc3f8a57f in sigc::bound_mem_functor1<bool, GenericMidiControlProtocol, PBD::Controllable*>::operator() (this=0x20ba078, _A_a1=@0x1e3d8e8) at libs/sigc++2/sigc++/functors/mem_fun.h:1851
#3  0x00007fffc3f89b4b in sigc::adaptor_functor<sigc::bound_mem_functor1<bool, GenericMidiControlProtocol, PBD::Controllable*> >::operator()<PBD::Controllable* const&> (this=0x20ba070, _A_arg1=@0x1e3d8e8)
    at libs/sigc++2/sigc++/adaptors/adaptor_trait.h:84
#4  0x00007fffc3f88f54 in sigc::internal::slot_call1<sigc::bound_mem_functor1<bool, GenericMidiControlProtocol, PBD::Controllable*>, bool, PBD::Controllable*>::call_it (rep=0x20ba040, a_1=@0x1e3d8e8)
    at libs/sigc++2/sigc++/functors/slot.h:137
#5  0x00007ffff389098b in sigc::internal::signal_emit1<bool, PBD::Controllable*, sigc::nil>::emit (impl=0x19cb320, _A_a1=@0x1e3d8e8) at libs/sigc++2/sigc++/signal.h:917
#6  0x00007ffff389040f in sigc::signal1<bool, PBD::Controllable*, sigc::nil>::emit (this=0x7ffff284d3d0, _A_a1=@0x1e3d8e8) at libs/sigc++2/sigc++/signal.h:2773
#7  0x00007ffff3890241 in sigc::signal1<bool, PBD::Controllable*, sigc::nil>::operator() (this=0x7ffff284d3d0, _A_a1=@0x1e3d8e8) at libs/sigc++2/sigc++/signal.h:2781
#8  0x00007ffff388fdc7 in BindingProxy::button_press_handler (this=0x1e3d8d0, ev=0x2019500) at libs/gtkmm2ext/binding_proxy.cc:84
#9  0x00007ffff38b3483 in Gtkmm2ext::SliderController::on_button_press_event (this=0x1e3d860, ev=0x2019500) at libs/gtkmm2ext/slider_controller.cc:55
#10 0x00007ffff3e2284e in Gtk::Widget_Class::button_press_event_callback (self=0x1e32950, p0=0x2019500) at libs/gtkmm2/gtk/gtkmm/widget.cc:3753
#11 0x00007ffff51a5148 in _gtk_marshal_BOOLEAN__BOXED (closure=0x11f6c80, return_value=0x7fffffffd210, n_param_values=<optimized out>, param_values=0x18da090, invocation_hint=<optimized out>, marshal_data=<optimized out>)
    at /build/buildd-gtk+2.0_2.24.6-2-amd64-2xdxG0/gtk+2.0-2.24.6/gtk/gtkmarshalers.c:86
#12 0x00007ffff623c804 in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00007ffff624e5bf in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#14 0x00007ffff6257be3 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#15 0x00007ffff6257fb2 in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#16 0x00007ffff52bdf91 in gtk_widget_event_internal (widget=0x1e32950, event=0x2019500) at /build/buildd-gtk+2.0_2.24.6-2-amd64-2xdxG0/gtk+2.0-2.24.6/gtk/gtkwidget.c:4984
#17 0x00007ffff51a3343 in IA__gtk_propagate_event (widget=0x1e32950, event=0x2019500) at /build/buildd-gtk+2.0_2.24.6-2-amd64-2xdxG0/gtk+2.0-2.24.6/gtk/gtkmain.c:2489
#18 0x00007ffff51a36a3 in IA__gtk_main_do_event (event=0x2019500) at /build/buildd-gtk+2.0_2.24.6-2-amd64-2xdxG0/gtk+2.0-2.24.6/gtk/gtkmain.c:1684
---Type <return> to continue, or q <return> to quit---
#19 0x00007ffff4e0f1dc in gdk_event_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at /build/buildd-gtk+2.0_2.24.6-2-amd64-2xdxG0/gtk+2.0-2.24.6/gdk/x11/gdkevents-x11.c:2377
#20 0x00007ffff596c1ad in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#21 0x00007ffff596c9a8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#22 0x00007ffff596cee2 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#23 0x00007ffff51a26f7 in IA__gtk_main () at /build/buildd-gtk+2.0_2.24.6-2-amd64-2xdxG0/gtk+2.0-2.24.6/gtk/gtkmain.c:1256
#24 0x00007ffff3ddc93b in Gtk::Main::run_impl (this=0x11a88a0) at libs/gtkmm2/gtk/gtkmm/main.cc:503
#25 0x00007ffff3ddc747 in Gtk::Main::run () at libs/gtkmm2/gtk/gtkmm/main.cc:450
#26 0x00007ffff389e1e8 in Gtkmm2ext::UI::run (this=0x11a2fb0, old_receiver=...) at libs/gtkmm2ext/gtk_ui.cc:231
#27 0x0000000000be7af0 in main (argc=1, argv=0x7fffffffd8c8) at gtk2_ardour/main.cc:549
(gdb) 

backtrace-4303-a2.txt (15,341 bytes)   

2011-11-03 21:38

 

backtrace-4303-a3.txt (35,531 bytes)   
Starting program: /usr/local/src/ardour3/build/gtk2_ardour/ardour-3.0 
[Thread debugging using libthread_db enabled]
Ardour3.0alpha10 (built using ['10429'] and GCC version 4.6.1)
Copyright (C) 1999-2011 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 xinstall SIGPIPE error handler
ardour: [INFO]: Loading default ui configuration file ./../gtk2_ardour/ardour3_ui_default.conf
Loading ui configuration file ./../build/gtk2_ardour/ardour3_ui_dark.rc
ardour: [INFO]: Ardour will be limited to 4096 open files
[New Thread 0x7fffe4f07700 (LWP 7938)]
ardour: [INFO]: Loading system configuration file /usr/local/etc/ardour3/ardour_system.rc
Loading user configuration file /home/acolomb/.config/ardour3/ardour.rc
Using SSE optimized routines
[New Thread 0x7fffe4706700 (LWP 7939)]
[New Thread 0x7fffe3f05700 (LWP 7940)]
[New Thread 0x7fffe3704700 (LWP 7941)]
ardour: [INFO]: looking for panners in ./../build/libs/panners/2in2out:./../build/libs/panners/1in2out:./../build/libs/panners/vbap
ardour: [INFO]: Panner discovered: "Equal Power Stereo"
ardour: [INFO]: Panner discovered: "Mono to Stereo Panner"
ardour: [INFO]: Panner discovered: "VBAP 2D panner"
[New Thread 0x7fffe16be700 (LWP 7943)]
[New Thread 0x7fffe0ebd700 (LWP 7944)]
[New Thread 0x7fffd660f700 (LWP 7945)]
[New Thread 0x7fffd5e0e700 (LWP 7946)]
[New Thread 0x7fffd560d700 (LWP 7947)]
[New Thread 0x7fffe06bc700 (LWP 7948)]
[New Thread 0x7fffe063b700 (LWP 7949)]
[Thread 0x7fffe063b700 (LWP 7949) exited]
[Thread 0x7fffe06bc700 (LWP 7948) exited]
[Thread 0x7fffd660f700 (LWP 7945) exited]
[Thread 0x7fffd560d700 (LWP 7947) exited]
[Thread 0x7fffe16be700 (LWP 7943) exited]
[Thread 0x7fffe0ebd700 (LWP 7944) exited]
[New Thread 0x7fffe0ebd700 (LWP 7950)]
[Thread 0x7fffe0ebd700 (LWP 7950) exited]
[New Thread 0x7fffe06bc700 (LWP 7952)]
[New Thread 0x7fffe063b700 (LWP 7953)]
LV2: Discovering 186 plugins
Done LV2 discovery
[New Thread 0x7fffe00f6700 (LWP 7958)]
[New Thread 0x7fffd40a0700 (LWP 7959)]
[New Thread 0x7fffb5370700 (LWP 7960)]
[New Thread 0x7fffb52ef700 (LWP 7961)]
[New Thread 0x7fffb526d820 (LWP 7962)]
[New Thread 0x7fffe0ebd700 (LWP 7963)]
[New Thread 0x7fffb51f2820 (LWP 7964)]
[Thread 0x7fffd5e0e700 (LWP 7946) exited]
[New Thread 0x7fffd5e0e700 (LWP 7965)]
[New Thread 0x7fffd560d700 (LWP 7967)]
[Thread 0x7fffd5e0e700 (LWP 7965) exited]
[Thread 0x7fffd560d700 (LWP 7967) exited]

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

Thread 22 (Thread 0x7fffb51f2820 (LWP 7964)):
#0  0x00007fffec88089d in nanosleep () at ../sysdeps/unix/syscall-template.S:82
#1  0x00007ffff2bfcda2 in g_usleep () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff6de1516 in ARDOUR::AudioEngine::meter_thread (this=0x2a11b50) at ../libs/ardour/audioengine.cc:692
#3  0x00007ffff6e00bb0 in boost::_mfi::mf0<void, ARDOUR::AudioEngine>::operator() (this=0x7fffd28d9de0, p=0x2a11b50) at /usr/include/boost/bind/mem_fn_template.hpp:49
#4  0x00007ffff6dfc200 in boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> >::operator()<boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list0> (this=0x7fffd28d9df0, f=..., a=...)
    at /usr/include/boost/bind/bind.hpp:253
#5  0x00007ffff6df7d8f in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > >::operator() (this=0x7fffd28d9de0)
    at /usr/include/boost/bind/bind_template.hpp:20
#6  0x00007ffff6df316c in sigc::adaptor_functor<boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > > >::operator() (this=0x7fffd28d9de0)
    at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
#7  0x00007ffff6deeac6 in sigc::internal::slot_call0<boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > >, void>::call_it (rep=0x7fffd28d9db0)
    at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#8  0x00007ffff372894d in operator() (this=0x7fffd28bca50) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:440
#9  (anonymous namespace)::call_thread_entry_slot (data=0x7fffd28bca50) at thread.cc:44
#10 0x00007ffff2bf9986 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#11 0x00007fffec878b40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#12 0x00007fffec5c336d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#13 0x0000000000000000 in ?? ()

Thread 21 (Thread 0x7fffe0ebd700 (LWP 7963)):
#0  0x00007fffec5b8723 in *__GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007ffff2bd46b8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff2bd4ee2 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff4cd013f in BaseUI::main_thread (this=0x3f5c3a0) at ../libs/pbd/base_ui.cc:77
#4  0x00007ffff4cd14e9 in sigc::bound_mem_functor0<void, BaseUI>::operator() (this=0x3f69b48) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1787
#5  0x00007ffff4cd134e in sigc::adaptor_functor<sigc::bound_mem_functor0<void, BaseUI> >::operator() (this=0x3f69b40) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
#6  0x00007ffff4cd10bf in sigc::internal::slot_call0<sigc::bound_mem_functor0<void, BaseUI>, void>::call_it (rep=0x3f69b10) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#7  0x00007ffff372894d in operator() (this=0x3f5c4b0) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:440
#8  (anonymous namespace)::call_thread_entry_slot (data=0x3f5c4b0) at thread.cc:44
#9  0x00007ffff2bf9986 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007fffec878b40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#11 0x00007fffec5c336d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()

Thread 20 (Thread 0x7fffb526d820 (LWP 7962)):
#0  0x00007fffec5b8723 in *__GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007ffff6e5e6af in ARDOUR::Butler::thread_work (this=0x3eb8870) at ../libs/ardour/butler.cc:153
#2  0x00007ffff6e5e609 in ARDOUR::Butler::_thread_work (arg=0x3eb8870) at ../libs/ardour/butler.cc:137
#3  0x00007ffff4d05f0c in fake_thread_start (arg=0x3f5beb0) at ../libs/pbd/pthread_utils.cc:81
#4  0x00007fffec878b40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#5  0x00007fffec5c336d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6  0x0000000000000000 in ?? ()

Thread 19 (Thread 0x7fffb52ef700 (LWP 7961)):
#0  sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86
#1  0x00007ffff6f3e5b6 in PBD::ProcessSemaphore::wait (this=0x3eb9ee8) at /usr/local/src/ardour3/libs/pbd/pbd/semutils.h:41
#2  0x00007ffff6f3ca94 in ARDOUR::Graph::run_one (this=0x3eb9e20) at ../libs/ardour/graph.cc:393
#3  0x00007ffff6f3ce60 in ARDOUR::Graph::helper_thread (this=0x3eb9e20) at ../libs/ardour/graph.cc:443
#4  0x00007ffff6f42660 in boost::_mfi::mf0<void, ARDOUR::Graph>::operator() (this=0x7fffb52eec08, p=0x3eb9e20) at /usr/include/boost/bind/mem_fn_template.hpp:49
#5  0x00007ffff6f4206c in boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> >::operator()<boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list0> (this=0x7fffb52eec18, f=..., a=...) at /usr/include/boost/bind/bind.hpp:253
#6  0x00007ffff6f41c57 in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> > >::operator() (this=0x7fffb52eec08) at /usr/include/boost/bind/bind_template.hpp:20
#7  0x00007ffff6f417c7 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 (function_obj_ptr=...)
    at /usr/include/boost/function/function_template.hpp:153
#8  0x00000000013a67a4 in boost::function0<void>::operator() (this=0x7fffb52eec00) at /usr/include/boost/function/function_template.hpp:1013
#9  0x00007ffff6de42a1 in ARDOUR::AudioEngine::_start_process_thread (arg=0x3eca2b0) at ../libs/ardour/audioengine.cc:1476
#10 0x00007fffec878b40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#11 0x00007fffec5c336d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()

Thread 18 (Thread 0x7fffb5370700 (LWP 7960)):
#0  sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86
#1  0x00007ffff6f3e5b6 in PBD::ProcessSemaphore::wait (this=0x3eb9ee8) at /usr/local/src/ardour3/libs/pbd/pbd/semutils.h:41
#2  0x00007ffff6f3ca94 in ARDOUR::Graph::run_one (this=0x3eb9e20) at ../libs/ardour/graph.cc:393
#3  0x00007ffff6f3ce60 in ARDOUR::Graph::helper_thread (this=0x3eb9e20) at ../libs/ardour/graph.cc:443
#4  0x00007ffff6f42660 in boost::_mfi::mf0<void, ARDOUR::Graph>::operator() (this=0x7fffb536fc08, p=0x3eb9e20) at /usr/include/boost/bind/mem_fn_template.hpp:49
#5  0x00007ffff6f4206c in boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> >::operator()<boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list0> (this=0x7fffb536fc18, f=..., a=...) at /usr/include/boost/bind/bind.hpp:253
#6  0x00007ffff6f41c57 in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> > >::operator() (this=0x7fffb536fc08) at /usr/include/boost/bind/bind_template.hpp:20
#7  0x00007ffff6f417c7 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 (function_obj_ptr=...)
    at /usr/include/boost/function/function_template.hpp:153
#8  0x00000000013a67a4 in boost::function0<void>::operator() (this=0x7fffb536fc00) at /usr/include/boost/function/function_template.hpp:1013
#9  0x00007ffff6de42a1 in ARDOUR::AudioEngine::_start_process_thread (arg=0x3eca2b0) at ../libs/ardour/audioengine.cc:1476
#10 0x00007fffec878b40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#11 0x00007fffec5c336d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()

Thread 17 (Thread 0x7fffd40a0700 (LWP 7959)):
#0  __strcmp_sse2 () at ../sysdeps/x86_64/multiarch/../strcmp.S:184
#1  0x00007fffecd5d94d in __cxxabiv1::__si_class_type_info::__do_dyncast(long, __cxxabiv1::__class_type_info::__sub_kind, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info::__dyncast_result&) const () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#2  0x00007fffecd5b7b2 in __dynamic_cast () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x00007ffff6f42d3e in ARDOUR::GraphNode::process (this=0x7fffd2a95140) at ../libs/ardour/graphnode.cc:69
#4  0x00007ffff6f3cbe4 in ARDOUR::Graph::run_one (this=0x3eb9e20) at ../libs/ardour/graph.cc:406
#5  0x00007ffff6f3d092 in ARDOUR::Graph::main_thread (this=0x3eb9e20) at ../libs/ardour/graph.cc:479
#6  0x00007ffff6f42660 in boost::_mfi::mf0<void, ARDOUR::Graph>::operator() (this=0x7fffd409fc08, p=0x3eb9e20) at /usr/include/boost/bind/mem_fn_template.hpp:49
#7  0x00007ffff6f4206c in boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> >::operator()<boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list0> (this=0x7fffd409fc18, f=..., a=...) at /usr/include/boost/bind/bind.hpp:253
#8  0x00007ffff6f41c57 in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> > >::operator() (this=0x7fffd409fc08) at /usr/include/boost/bind/bind_template.hpp:20
#9  0x00007ffff6f417c7 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 (function_obj_ptr=...)
    at /usr/include/boost/function/function_template.hpp:153
#10 0x00000000013a67a4 in boost::function0<void>::operator() (this=0x7fffd409fc00) at /usr/include/boost/function/function_template.hpp:1013
#11 0x00007ffff6de42a1 in ARDOUR::AudioEngine::_start_process_thread (arg=0x3eca2b0) at ../libs/ardour/audioengine.cc:1476
#12 0x00007fffec878b40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#13 0x00007fffec5c336d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#14 0x0000000000000000 in ?? ()

Thread 16 (Thread 0x7fffe00f6700 (LWP 7958)):
#0  sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86
#1  0x00007ffff6f3e5b6 in PBD::ProcessSemaphore::wait (this=0x3eb9f28) at /usr/local/src/ardour3/libs/pbd/pbd/semutils.h:41
#2  0x00007ffff6f3e068 in ARDOUR::Graph::routes_no_roll (this=0x3eb9e20, nframes=64, start_frame=0, end_frame=64, non_rt_pending=false, declick=0) at ../libs/ardour/graph.cc:582
#3  0x00007ffff719a13c in ARDOUR::Session::no_roll (this=0x3eb1000, nframes=64) at ../libs/ardour/session_process.cc:112
#4  0x00007ffff719ae20 in ARDOUR::Session::process_with_events (this=0x3eb1000, nframes=64) at ../libs/ardour/session_process.cc:343
#5  0x00007ffff7199eb0 in ARDOUR::Session::process (this=0x3eb1000, nframes=64) at ../libs/ardour/session_process.cc:75
#6  0x00007ffff6de0aac in ARDOUR::AudioEngine::process_callback (this=0x2a11b50, nframes=64) at ../libs/ardour/audioengine.cc:519
#7  0x00007ffff6de0744 in ARDOUR::AudioEngine::process_thread (this=0x2a11b50) at ../libs/ardour/audioengine.cc:443
#8  0x00007ffff6de0144 in ARDOUR::AudioEngine::_process_thread (arg=0x2a11b50) at ../libs/ardour/audioengine.cc:352
#9  0x00007fffee714b88 in ?? () from /usr/lib/libjack.so.0
#10 0x00007fffee7287a0 in ?? () from /usr/lib/libjack.so.0
#11 0x00007fffec878b40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#12 0x00007fffec5c336d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#13 0x0000000000000000 in ?? ()

Thread 15 (Thread 0x7fffe063b700 (LWP 7953)):
#0  0x00007fffec88017d in read () at ../sysdeps/unix/syscall-template.S:82
#1  0x00007fffee72a42a in ?? () from /usr/lib/libjack.so.0
#2  0x00007fffee72ccf7 in ?? () from /usr/lib/libjack.so.0
#3  0x00007fffee7287a0 in ?? () from /usr/lib/libjack.so.0
#4  0x00007fffec878b40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#5  0x00007fffec5c336d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6  0x0000000000000000 in ?? ()

Thread 14 (Thread 0x7fffe06bc700 (LWP 7952)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fffee729f21 in ?? () from /usr/lib/libjack.so.0
#2  0x00007fffee7255f5 in ?? () from /usr/lib/libjack.so.0
#3  0x00007fffee7287a0 in ?? () from /usr/lib/libjack.so.0
#4  0x00007fffec878b40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#5  0x00007fffec5c336d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6  0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7fffe3704700 (LWP 7941)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007ffff6d72531 in ARDOUR::Analyser::work () at ../libs/ardour/analyser.cc:85
#2  0x00007ffff6d722c9 in analyser_work () at ../libs/ardour/analyser.cc:49
#3  0x00000000019439c7 in sigc::pointer_functor0<void>::operator() (this=0x7fffdc000bc8) at /usr/include/sigc++-2.0/sigc++/functors/ptr_fun.h:77
#4  0x00000000019412c0 in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator() (this=0x7fffdc000bc0) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
#5  0x000000000193e34f in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it (rep=0x7fffdc000b90) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#6  0x00007ffff372894d in operator() (this=0x7fffdc000b70) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:440
#7  (anonymous namespace)::call_thread_entry_slot (data=0x7fffdc000b70) at thread.cc:44
#8  0x00007ffff2bf9986 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#9  0x00007fffec878b40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#10 0x00007fffec5c336d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7fffe3f05700 (LWP 7940)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007ffff72174c1 in peak_thread_work () at ../libs/ardour/source_factory.cc:68
#2  0x00000000019439c7 in sigc::pointer_functor0<void>::operator() (this=0x7fffdc0008e8) at /usr/include/sigc++-2.0/sigc++/functors/ptr_fun.h:77
#3  0x00000000019412c0 in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator() (this=0x7fffdc0008e0) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
#4  0x000000000193e34f in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it (rep=0x7fffdc0008b0) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#5  0x00007ffff372894d in operator() (this=0x27f3910) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:440
#6  (anonymous namespace)::call_thread_entry_slot (data=0x27f3910) at thread.cc:44
#7  0x00007ffff2bf9986 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#8  0x00007fffec878b40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#9  0x00007fffec5c336d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7fffe4706700 (LWP 7939)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007ffff72174c1 in peak_thread_work () at ../libs/ardour/source_factory.cc:68
#2  0x00000000019439c7 in sigc::pointer_functor0<void>::operator() (this=0x282d088) at /usr/include/sigc++-2.0/sigc++/functors/ptr_fun.h:77
#3  0x00000000019412c0 in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator() (this=0x282d080) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
#4  0x000000000193e34f in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it (rep=0x282d050) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#5  0x00007ffff372894d in operator() (this=0x27ffc10) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:440
#6  (anonymous namespace)::call_thread_entry_slot (data=0x27ffc10) at thread.cc:44
#7  0x00007ffff2bf9986 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#8  0x00007fffec878b40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#9  0x00007fffec5c336d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fffe4f07700 (LWP 7938)):
#0  0x00007fffec5941cd in nanosleep () at ../sysdeps/unix/syscall-template.S:82
#1  0x00007fffec5bd584 in usleep (useconds=<optimized out>) at ../sysdeps/unix/sysv/linux/usleep.c:33
#2  0x00007ffff725182b in gui_event_loop (ptr=0x0) at ../libs/ardour/vstfxwin.cc:382
#3  0x00007fffec878b40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#4  0x00007fffec5c336d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7ffff7f169a0 (LWP 7925)):
#0  0x00000000000000c1 in ?? ()
#1  0x00007fffd43f8303 in GenericMidiControlProtocol::start_learning (this=0x3f68c00, c=0x7fffd28d51e0) at ../libs/surfaces/generic_midi/generic_midi_control_protocol.cc:304
#2  0x00007fffd440d21b in boost::_mfi::mf1<bool, GenericMidiControlProtocol, PBD::Controllable*>::operator() (this=0x3f69720, p=0x3f68c00, a1=0x7fffd28d51e0) at /usr/include/boost/bind/mem_fn_template.hpp:165
#3  0x00007fffd4409b15 in boost::_bi::list2<boost::_bi::value<GenericMidiControlProtocol*>, boost::arg<1> >::operator()<bool, boost::_mfi::mf1<bool, GenericMidiControlProtocol, PBD::Controllable*>, boost::_bi::list1<PBD::Controllable*&> > (this=0x3f69730, f=..., a=...) at /usr/include/boost/bind/bind.hpp:303
#4  0x00007fffd4406f4e in boost::_bi::bind_t<bool, boost::_mfi::mf1<bool, GenericMidiControlProtocol, PBD::Controllable*>, boost::_bi::list2<boost::_bi::value<GenericMidiControlProtocol*>, boost::arg<1> > >::operator()<PBD::Controllable*> (this=0x3f69720, a1=@0x7fffffffc5e0) at /usr/include/boost/bind/bind_template.hpp:32
#5  0x00007fffd4404209 in boost::detail::function::function_obj_invoker1<boost::_bi::bind_t<bool, boost::_mfi::mf1<bool, GenericMidiControlProtocol, PBD::Controllable*>, boost::_bi::list2<boost::_bi::value<GenericMidiControlProtocol*>, boost::arg<1> > >, bool, PBD::Controllable*>::invoke (function_obj_ptr=..., a0=0x7fffd28d51e0) at /usr/include/boost/function/function_template.hpp:132
#6  0x00007ffff514736b in boost::function1<bool, PBD::Controllable*>::operator() (this=0x3f69718, a0=0x7fffd28d51e0) at /usr/include/boost/function/function_template.hpp:1013
#7  0x00007ffff5146724 in boost::signals2::detail::signal1_impl<bool, PBD::Controllable*, boost::signals2::optional_last_value<bool>, int, std::less<int>, boost::function<bool (PBD::Controllable*)>, boost::function<bool (boost::signals2::connection const&, PBD::Controllable*)>, boost::signals2::mutex>::slot_invoker::m_invoke(boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<bool, PBD::Controllable*, boost::function<bool (PBD::Controllable*)> >, boost::signals2::mutex> > const&, ...) const (this=0x7fffffffca00, connectionBody=...) at /usr/include/boost/signals2/detail/signal_template.hpp:365
#8  0x00007ffff5144a12 in boost::signals2::detail::signal1_impl<bool, PBD::Controllable*, boost::signals2::optional_last_value<bool>, int, std::less<int>, boost::function<bool (PBD::Controllable*)>, boost::function<bool (boost::signals2::connection const&, PBD::Controllable*)>, boost::signals2::mutex>::slot_invoker::operator()(boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<bool, PBD::Controllable*, boost::function<bool (PBD::Controllable*)> >, boost::signals2::mutex> > const&) const (this=0x7fffffffca00, connectionBody=...) at /usr/include/boost/signals2/detail/signal_template.hpp:345
#9  0x00007ffff514186d in boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal1_impl<bool, PBD::Controllable*, boost::signals2::optional_last_value<bool>, int, std::less<int>, boost::function<bool (PBD::Controllable*)>, boost::function<bool (boost::signals2::connection const&, PBD::Controllable*)>, boost::signals2::mutex>::slot_invoker, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<bool, PBD::Controllable*, boost::function<bool (PBD::Controllable*)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<bool, PBD::Controllable*, boost::function<bool (PBD::Controllable*)> >, boost::signals2::mutex> >::dereference() const (this=0x7fffffffc820)
    at /usr/include/boost/signals2/detail/slot_call_iterator.hpp:82
#10 0x00007ffff513f27a in boost::iterator_core_access::dereference<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal1_impl<bool, PBD::Controllable*, boost::signals2::optional_last_value<bool>, int, std::less<int>, boost::function<bool (PBD::Controllable*)>, boost::function<bool (boost::signals2::connection const&, PBD::Controllable*)>, boost::signals2::mutex>::slot_invoker, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<bool, PBD::Controllable*, boost::function<bool (PBD::Controllable*)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<bool, PBD::Controllable*, boost::function<bool (PBD::Controllable*)> >, boost::signals2::mutex> > >(boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal1_impl<bool, PBD::Controllable*, boost::signals2::optional_last_value<bool>, int, std::less<int>, boost::function<bool (PBD::Controllable*)>, boost::function<bool (boost::signals2::connection const&, PBD::Controllable*)>, boost::signals2::mutex>::slot_invoker, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<bool, PBD::Controllable*, boost::function<bool (PBD::Controllable*)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<bool, PBD::Controllable*, boost::function<bool (PBD::Controllable*)> >, boost::signals2::mutex> > const&) (f=...) at /usr/include/boost/iterator/iterator_facade.hpp:517
#11 0x00007ffff513ce54 in boost::iterator_facade<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal1_impl<bool, PBD::Controllable*, boost::signals2::optional_last_value<bool>, int, std::less<int>, boost::function<bool (PBD::Controllable*)>, boost::function<bool (boost::signals2::connection const&, PBD::Controllable*)>, boost::signals2::mutex>::slot_invoker, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<bool, PBD::Controllable*, boost::function<bool (PBD::Controllable*)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<bool, PBD::Controllable*, boost::function<bool (PBD::Controllable*)> >, boost::signals2::mutex> >, bool, boost::single_pass_traversal_tag, bool const&, long>::operator*() const (this=0x7fffffffc820) at /usr/include/boost/iterator/iterator_facade.hpp:643
#12 0x00007ffff513a7d8 in boost::signals2::optional_last_value<bool>::operator()<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal1_impl<bool, PBD::Controllable*, boost::signals2::optional_last_value<bool>, int, std::less<int>, boost::function<bool (PBD::Controllable*)>, boost::function<bool (boost::signals2::connection const&, PBD::Controllable*)>, boost::signals2::mutex>::slot_invoker, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<bool, PBD::Controllable*, boost::function<bool (PBD::Controllable*)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<bool, PBD::Controllable*, boost::function<bool (PBD::Controllable*)> >, boost::signals2::mutex> > >(boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal1_impl<bool, PBD::Controllable*, boost::signals2::optional_last_value<bool>, int, std::less<int>, boost::function<bool (PBD::Controllable*)>, boost::function<bool (boost::signals2::connection const&, PBD::Controllable*)>, boost::signals2::mutex>::slot_invoker, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<bool, PBD::Controllable*, boost::function<bool (PBD::Controllable*)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<bool, PBD::Controllable*, boost::function<bool (PBD::Controllable*)> >, boost::signals2::mutex> >, boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal1_impl<bool, PBD::Controllable*, boost::signals2::optional_last_value<bool>, int, std::less<int>, boost::function<bool (PBD::Controllable*)>, boost::function<bool (boost::signals2::connection const&, PBD::Controllable*)>, boost::signals2::mutex>::slot_invoker, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<bool, PBD::Controllable*, boost::function<bool (PBD::Controllable*)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<bool, PBD::Controllable*, boost::function<bool (PBD::Controllable*)> >, boost::signals2::mutex> >) const (this=0x24f8e20, first=..., last=...) at /usr/include/boost/signals2/optional_last_value.hpp:34
#13 0x00007ffff5137b8a in boost::signals2::detail::combiner_invoker<boost::optional<bool> >::operator()<boost::signals2::optional_last_value<bool>, boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal1_impl<bool, PBD::Controllable*, boost::signals2::optional_last_value<bool>, int, std::less<int>, boost::function<bool (PBD::Controllable*)>, boost::function<bool (boost::signals2::connection const&, PBD::Controllable*)>, boost::signals2::mutex>::slot_invoker, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<bool, PBD::Controllable*, boost::function<bool (PBD::Controllable*)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<bool, PBD::Controllable*, boost::function<bool (PBD::Controllable*)> >, boost::signals2::mutex> > >(boost::signals2::optional_last_value<bool>&, boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal1_impl<bool, PBD::Controllable*, boost::signals2::optional_last_value<bool>, int, std::less<int>, boost::function<bool (PBD::Controllable*)>, boost::function<bool (boost::signals2::connection const&, PBD::Controllable*)>, boost::signals2::mutex>::slot_invoker, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<bool, PBD::Controllable*, boost::function<bool (PBD::Controllable*)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<bool, PBD::Controllable*, boost::function<bool (PBD::Controllable*)> >, boost::signals2::mutex> >, boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal1_impl<bool, PBD::Controllable*, boost::signals2::optional_last_value<bool>, int, std::less<int>, boost::function<bool (PBD::Controllable*)>, boost::function<bool (boost::signals2::connection const&, PBD::Controllable*)>, boost::signals2::mutex>::slot_invoker, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<bool, PBD::Controllable*, boost::function<bool (PBD::Controllable*)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<bool, PBD::Controllable*, boost::function<bool (PBD::Controllable*)> >, boost::signals2::mutex> >) const (this=0x7fffffffcabf, combiner=..., first=..., last=...)
    at /usr/include/boost/signals2/detail/result_type_wrapper.hpp:53
#14 0x00007ffff5136711 in boost::signals2::detail::signal1_impl<bool, PBD::Controllable*, boost::signals2::optional_last_value<bool>, int, std::less<int>, boost::function<bool (PBD::Controllable*)>, boost::function<bool (boost::signals2::connection const&, PBD::Controllable*)>, boost::signals2::mutex>::operator()(PBD::Controllable*) (this=0x24f8d30, arg1=0x7fffd28d51e0) at /usr/include/boost/signals2/detail/signal_template.hpp:246
#15 0x00007ffff513581e in boost::signals2::signal1<bool, PBD::Controllable*, boost::signals2::optional_last_value<bool>, int, std::less<int>, boost::function<bool (PBD::Controllable*)>, boost::function<bool (boost::signals2::connection const&, PBD::Controllable*)>, boost::signals2::mutex>::operator()(PBD::Controllable*) (this=0x7ffff4f906c0, arg1=0x7fffd28d51e0) at /usr/include/boost/signals2/detail/signal_template.hpp:692
#16 0x00007ffff5134fcf in PBD::Signal1<bool, PBD::Controllable*, boost::signals2::optional_last_value<bool> >::operator() (this=0x7ffff4f906c0, arg1=0x7fffd28d51e0) at /usr/local/src/ardour3/libs/pbd/pbd/signals.h:161
#17 0x00007ffff51333a2 in BindingProxy::button_press_handler (this=0x7fffd2af18a8, ev=0x29ca4a0) at ../libs/gtkmm2ext/binding_proxy.cc:83
#18 0x00007ffff5199376 in Gtkmm2ext::SliderController::on_button_press_event (this=0x7fffd2af1800, ev=0x29ca4a0) at ../libs/gtkmm2ext/slider_controller.cc:51
#19 0x00007ffff06f0fc3 in Gtk::Widget_Class::button_press_event_callback (self=0x7fffd2ae5b10, p0=0x29ca4a0) at widget.cc:4631
#20 0x00007ffff2689148 in _gtk_marshal_BOOLEAN__BOXED (closure=0x2664a50, return_value=0x7fffffffce80, n_param_values=<optimized out>, param_values=0x7fffd2c73430, invocation_hint=<optimized out>, marshal_data=<optimized out>)
    at /build/buildd-gtk+2.0_2.24.6-2-amd64-2xdxG0/gtk+2.0-2.24.6/gtk/gtkmarshalers.c:86
#21 0x00007ffff34a6804 in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#22 0x00007ffff34b85bf in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#23 0x00007ffff34c1be3 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#24 0x00007ffff34c1fb2 in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#25 0x00007ffff27a1f91 in gtk_widget_event_internal (widget=0x7fffd2ae5b10, event=0x29ca4a0) at /build/buildd-gtk+2.0_2.24.6-2-amd64-2xdxG0/gtk+2.0-2.24.6/gtk/gtkwidget.c:4984
#26 0x00007ffff2687343 in IA__gtk_propagate_event (widget=0x7fffd2ae5b10, event=0x29ca4a0) at /build/buildd-gtk+2.0_2.24.6-2-amd64-2xdxG0/gtk+2.0-2.24.6/gtk/gtkmain.c:2489
#27 0x00007ffff26876a3 in IA__gtk_main_do_event (event=0x29ca4a0) at /build/buildd-gtk+2.0_2.24.6-2-amd64-2xdxG0/gtk+2.0-2.24.6/gtk/gtkmain.c:1684
#28 0x00007ffff22f31dc in gdk_event_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at /build/buildd-gtk+2.0_2.24.6-2-amd64-2xdxG0/gtk+2.0-2.24.6/gdk/x11/gdkevents-x11.c:2377
#29 0x00007ffff2bd41ad in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#30 0x00007ffff2bd49a8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007ffff2bd4ee2 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007ffff26866f7 in IA__gtk_main () at /build/buildd-gtk+2.0_2.24.6-2-amd64-2xdxG0/gtk+2.0-2.24.6/gtk/gtkmain.c:1256
#33 0x00007ffff5167b6c in Gtkmm2ext::UI::run (this=0x25f6550, old_receiver=...) at ../libs/gtkmm2ext/gtk_ui.cc:268
#34 0x00000000017a4f93 in main (argc=1, argv=0x7fffffffd598) at ../gtk2_ardour/main.cc:557
(gdb) 

backtrace-4303-a3.txt (35,531 bytes)   

paul

2011-11-03 21:45

administrator   ~0011898

this is a known bug without a solution at this time.

the new track/bus inherits the same ID's for its constituents as the one used for the template.

its a major mistake, and hard to fix.

cth103

2011-11-16 23:04

administrator   ~0012099

Should hopefully be fixed in SVN 10655.

acolomb

2011-11-17 06:55

reporter   ~0012101

Skimming through the diff on 10655, this looks like it might also fix part of 0002753?

Is the crash also fixed just in case anything (stupid XML-copy-pasting user) ever creates duplicate IDs by different means?

acolomb

2011-11-21 22:43

reporter   ~0012169

The crash is definitely still reproducible with current SVN r10742, thus reopening.

Anyone with sessions from A3 pre-beta1 or A2 will be prone to this crash and I guess it's better not to have possible segmentation faults in the code anyway :-)

paul

2011-11-21 22:59

administrator   ~0012171

some crashes are not avoidable if circumstances conspire to create conditions that totally violate very basic assumptions in the code (like: "no two IDs are ever the same). its not good that it can happen, but it is unwise to assume that its necessarily fixable (though it may be). sometimes the answer has to be "don't do that (while we make it impossible for you to do that)" :)

cth103

2011-11-21 23:10

administrator   ~0012172

acolomb clarifies on irc that the remaining crash happens when a session file has duplicate IDs from a previous version of Ardour; new sessions are ok.

2011-11-22 00:12

 

bug4303-a3.tar.gz (3,587 bytes)

acolomb

2011-11-22 00:19

reporter   ~0012174

Attached the session which was used to create the backtrace.

Note that the "mute" controllable is not duplicated, but all others in "Audio 1" and "Audio 1.1" match. This reminds me of the original reported situation where only the "recenable" ID was different.

2011-11-22 01:51

 

4303.patch (1,403 bytes)   
diff --git a/libs/pbd/pbd/stateful.h b/libs/pbd/pbd/stateful.h
index 2d5b2a0..30487c2 100644
--- a/libs/pbd/pbd/stateful.h
+++ b/libs/pbd/pbd/stateful.h
@@ -125,6 +125,9 @@ class Stateful {
 
   private:
 	PBD::ID  _id;
+
+	static std::set<PBD::ID> _used_ids;
+	static pthread_mutex_t* _used_ids_mutex;
 };
 
 } // namespace PBD
diff --git a/libs/pbd/stateful.cc b/libs/pbd/stateful.cc
index b2c76f4..65ae799 100644
--- a/libs/pbd/stateful.cc
+++ b/libs/pbd/stateful.cc
@@ -37,11 +37,18 @@ namespace PBD {
 
 int Stateful::current_state_version = 0;
 int Stateful::loading_state_version = 0;
+pthread_mutex_t* Stateful::_used_ids_mutex = 0;
+set<PBD::ID> Stateful::_used_ids;
 
 Stateful::Stateful ()
 	: _frozen (0)
 	, _properties (new OwnedPropertyList)
 {
+	if (_used_ids_mutex == 0) {
+		_used_ids_mutex = new pthread_mutex_t;
+		pthread_mutex_init (_used_ids_mutex, NULL);
+	}
+	
 	_extra_xml = 0;
 	_instant_xml = 0;
 }
@@ -375,7 +382,7 @@ Stateful::set_id (const XMLNode& node)
 	const XMLProperty* prop;
 
 	if ((prop = node.property ("id")) != 0) {
-		_id = prop->value ();
+		set_id (prop->value ());
 		return true;
 	} 
 
@@ -392,6 +399,11 @@ void
 Stateful::set_id (const string& str)
 {
 	_id = str;
+
+	pthread_mutex_lock (_used_ids_mutex);
+	assert (_used_ids.find (_id) == _used_ids.end ());
+	_used_ids.insert (_id);
+	pthread_mutex_unlock (_used_ids_mutex);
 }
 
 } // namespace PBD
4303.patch (1,403 bytes)   

cth103

2011-11-22 01:51

administrator   ~0012179

Attached 4303.patch should detect these problems on session load; just need to provide a message to the user rather than aborting.

nettings

2013-01-21 07:18

manager   ~0014517

is this still an issue? i haven't seen this problem in a while with a3. then again, i have no corrupted sessions around to test cth103's patch.

paul

2013-01-21 13:13

administrator   ~0014520

believed resolved.

acolomb

2013-01-23 06:34

reporter   ~0014571

Sorry I don't have time to test currently. Did Carl's patch ever get applied to SVN?

@nettings: I have attached a test session to this bug report that you could use to verify.

system

2020-04-19 20:15

developer   ~0022735

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
2011-09-02 09:01 acolomb New Issue
2011-09-02 09:01 acolomb File Added: controllable test.tar.bz2
2011-09-02 09:04 acolomb Note Added: 0011438
2011-09-02 09:34 acolomb File Added: SimpleTrack.template.bz2
2011-09-02 10:15 cth103 cost => 0.00
2011-09-02 10:15 cth103 Target Version => 2.8.12
2011-11-03 21:29 acolomb Note Added: 0011897
2011-11-03 21:30 acolomb File Added: backtrace-4303-a2.txt
2011-11-03 21:38 acolomb Note Edited: 0011897
2011-11-03 21:38 acolomb File Added: backtrace-4303-a3.txt
2011-11-03 21:45 paul Note Added: 0011898
2011-11-03 21:45 paul Status new => acknowledged
2011-11-03 23:08 cth103 Target Version 2.8.12 => 3.0-beta1
2011-11-15 17:24 cth103 Status acknowledged => confirmed
2011-11-15 17:24 cth103 Target Version 3.0-beta1 => 3.0-beta2
2011-11-16 23:04 cth103 Note Added: 0012099
2011-11-16 23:04 cth103 Status confirmed => resolved
2011-11-16 23:04 cth103 Resolution open => fixed
2011-11-16 23:04 cth103 Assigned To => cth103
2011-11-17 06:55 acolomb Note Added: 0012101
2011-11-21 22:43 acolomb Note Added: 0012169
2011-11-21 22:43 acolomb Status resolved => feedback
2011-11-21 22:43 acolomb Resolution fixed => reopened
2011-11-21 22:59 paul Note Added: 0012171
2011-11-21 23:10 cth103 Note Added: 0012172
2011-11-22 00:12 acolomb File Added: bug4303-a3.tar.gz
2011-11-22 00:19 acolomb Note Added: 0012174
2011-11-22 01:51 cth103 File Added: 4303.patch
2011-11-22 01:51 cth103 Note Added: 0012179
2011-11-30 16:25 nettings Relationship added related to 0002753
2012-01-10 20:46 cth103 Target Version 3.0-beta2 => 3.0-beta3
2012-02-14 17:20 paul Target Version 3.0-beta3 => 3.0 beta4
2012-04-23 22:04 cth103 Status feedback => acknowledged
2012-05-23 15:07 cth103 Target Version 3.0 beta4 => 3.0
2013-01-21 07:18 nettings Note Added: 0014517
2013-01-21 13:13 paul Note Added: 0014520
2013-01-21 13:13 paul Status acknowledged => resolved
2013-01-21 13:13 paul Resolution reopened => fixed
2013-01-23 06:34 acolomb Note Added: 0014571
2013-04-06 23:19 nettings Relationship added related to 0005437
2020-04-19 20:15 system Note Added: 0022735
2020-04-19 20:15 system Status resolved => closed