View Issue Details

IDProjectCategoryView StatusLast Update
0002063ardourbugspublic2020-04-19 20:12
Reporternowhiskey Assigned Topaul  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Product VersionSVN/2.0-ongoing 
Summary0002063: crash while loading a session which contains the same trackname more than once
Descriptionongoing@3005

this crash is related to the bug0002014 and 0002046, but in the last time the problem got worse. in the moment ardour is crashing on opening a session which contains the same trackname more than once, so i was thinking perhaps a backtrace would be useful.

-crete new session
-import audio
-import the same audio one more time
-the region is imported twice into the same track
-save and close the session
-open the same session again
-segfault, coredump created.

backtrace:


Core was generated by `/usr/local/lib/ardour2/ardour-2.2
Ardour2/002/002.ardour'.
Program terminated with signal 11, Segmentation fault.
#0 0xb679a83f in memcpy () from /lib/libc.so.6
(gdb) thread apply all bt

Thread 6 (process 17295):
#0 0xb67f35bd in poll () from /lib/libc.so.6
0000001 0xb7840676 in ?? () from /usr/share/qt4/lib/libglib-2.0.so.0
#2 0x089f0f98 in ?? ()
#3 0x00000004 in ?? ()
0000004 0x000010d0 in ?? ()
0000005 0x089f0f98 in ?? ()
#6 0x00000004 in ?? ()
#7 0xb78ae6a0 in ?? () from /usr/share/qt4/lib/libglib-2.0.so.0
0000008 0xb78ae6e0 in ?? () from /usr/share/qt4/lib/libglib-2.0.so.0
0000009 0xbfcb77c4 in ?? ()
0000010 0x00000001 in ?? ()
0000011 0x00000001 in ?? ()
0000012 0x0890bc68 in ?? ()
0000013 0x089f0f98 in ?? ()
0000014 0xb67f3550 in ?? () from /lib/libc.so.6
#15 0xb6e99bc0 in ?? () from /lib/libpthread.so.0
0000016 0xb6e98330 in ?? () from /lib/libpthread.so.0
#17 0xb78603c2 in g_thread_self () from /usr/share/qt4/lib/libglib-2.0.so.0
0000018 0xb7840a27 in g_main_loop_run () from
#/usr/share/qt4/lib/libglib-2.0.so.0
0000019 0xb74ed189 in gtk_dialog_run () from
#/usr/share/qt4/lib/libgtk-x11-2.0.so.0
0000020 0xb71bb731 in Gtk::Dialog::run (this=0xbfcb78c0) at
#libs/gtkmm2/gtk/gtkmm/dialog.cc:277
0000021 0x083ccf64 in ARDOUR_UI::load_session (this=0x88f7ec0, path=@0xbfcb79ec,
#snap_name=@0xbfcb79f0, mix_template=@0xbfcb7990) at
#gtk2_ardour/ardour_ui.cc:2450
0000022 0x083db276 in ARDOUR_UI::load_cmdline_session (this=0x88f7ec0,
#session_name=@0xbfcb79f0, session_path=@0xbfcb79ec,
#existing_session=@0xbfcb79f7)
    at gtk2_ardour/ardour_ui.cc:2085
0000023 0x083db3a1 in ARDOUR_UI::get_session_parameters (this=0x88f7ec0,
backend_audio_is_running=true, should_be_new=false) at
#gtk2_ardour/ardour_ui.cc:2222
#24 0x083dbdbd in ARDOUR_UI::startup (this=0x88f7ec0) at
#gtk2_ardour/ardour_ui.cc:636
0000025 0x083c3136 in sigc::bound_mem_functor0<void, ARDOUR_UI>::operator()
#(this=0x8c070bc) at libs/sigc++2/sigc++/functors/mem_fun.h:1781
0000026 0x083c314c in sigc::adaptor_functor<sigc::bound_mem_functor0<void,
#ARDOUR_UI> >::operator() (this=0x8c070b8) at
#libs/sigc++2/sigc++/adaptors/adaptor_trait.h:251
0000027 0x083c3168 in sigc::internal::slot_call0<sigc::bound_mem_functor0<void,
#ARDOUR_UI>, void>::call_it (rep=0x8c070a0) at
#libs/sigc++2/sigc++/functors/slot.h:103
0000028 0x083e65bb in sigc::internal::signal_emit0<void, sigc::nil_>::emit
#(impl=0x8c06de0) at libs/sigc++2/sigc++/signal.h:517
0000029 0x083e6650 in sigc::signal0<void, sigc::nil_>::emit (this=0x88f7f08) at
#libs/sigc++2/sigc++/signal.h:1584
0000030 0x083e6663 in sigc::signal0<void, sigc::nil_>::operator()
#(this=0x88f7f08) at libs/sigc++2/sigc++/signal.h:1588
0000031 0xb6f4315d in Gtkmm2ext::UI::run (this=0x88f7ec0,
#old_receiver=@0x88d6a4c) at libs/gtkmm2ext/gtk_ui.cc:221
0000032 0x0864b8d3 in main (argc=2, argv=0xbfcb7c74) at gtk2_ardour/main.cc:330

Thread 5 (process 17297):
#0 0xb6e9a820 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib/libpthread.so.0
0000001 0xb77f645d in Glib::Cond::wait (this=0x8a8a9f8, mutex=@0xb7fdc6a4) at
#libs/glibmm2/glibmm/thread.cc:362
#2 0xb7f40e1b in peak_thread_work () at libs/ardour/source_factory.cc:61
#3 0x086e6691 in sigc::pointer_functor0<void>::operator() (this=0x8a96714)
#at libs/sigc++2/sigc++/functors/ptr_fun.h:77
0000004 0x086e66a8 in sigc::adaptor_functor<sigc::pointer_functor0<void>
#>::operator() (this=0x8a96710) at
#>libs/sigc++2/sigc++/adaptors/adaptor_trait.h:251
0000005 0x086e66c4 in sigc::internal::slot_call0<sigc::pointer_functor0<void>,
#void>::call_it (rep=0x8a966f8) at libs/sigc++2/sigc++/functors/slot.h:103
#6 0x083b24f4 in sigc::slot0<void>::operator() (this=0x8a96368) at
#libs/sigc++2/sigc++/functors/slot.h:440
#7 0xb77f6ff1 in call_thread_entry_slot (data=0x8a96368) at
#libs/glibmm2/glibmm/thread.cc:43
0000008 0xb786094f in ?? () from /usr/share/qt4/lib/libglib-2.0.so.0
0000009 0x08a96368 in ?? ()
0000010 0x08a96720 in ?? ()
0000011 0x00014080 in ?? ()
0000012 0x00000005 in ?? ()
0000013 0xb672eb9c in ?? () from /lib/libc.so.6
0000014 0xb6ea4ff4 in ?? () from /lib/libpthread.so.0
#15 0xb6e98330 in ?? () from /lib/libpthread.so.0
0000016 0xb6ea4ff4 in ?? () from /lib/libpthread.so.0
#17 0x00000000 in ?? ()

Thread 4 (process 17298):
#0 0xb6e9a820 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib/libpthread.so.0
0000001 0xb77f645d in Glib::Cond::wait (this=0x8a8a9f8, mutex=@0xb7fdc6a4) at
#libs/glibmm2/glibmm/thread.cc:362
#2 0xb7f40e1b in peak_thread_work () at libs/ardour/source_factory.cc:61
#3 0x086e6691 in sigc::pointer_functor0<void>::operator() (this=0x8a96834)
#at libs/sigc++2/sigc++/functors/ptr_fun.h:77
0000004 0x086e66a8 in sigc::adaptor_functor<sigc::pointer_functor0<void>
#>::operator() (this=0x8a96830) at
#>libs/sigc++2/sigc++/adaptors/adaptor_trait.h:251
0000005 0x086e66c4 in sigc::internal::slot_call0<sigc::pointer_functor0<void>,
#void>::call_it (rep=0x8a96818) at libs/sigc++2/sigc++/functors/slot.h:103
#6 0x083b24f4 in sigc::slot0<void>::operator() (this=0x8a96808) at
#libs/sigc++2/sigc++/functors/slot.h:440
#7 0xb77f6ff1 in call_thread_entry_slot (data=0x8a96808) at
#libs/glibmm2/glibmm/thread.cc:43
0000008 0xb786094f in ?? () from /usr/share/qt4/lib/libglib-2.0.so.0
0000009 0x08a96808 in ?? ()
0000010 0x08a96840 in ?? ()
0000011 0x00000000 in ?? ()

Thread 3 (process 17405):
#0 0xb6e9dc2c in nanosleep () from /lib/libpthread.so.0
0000001 0xb78630f2 in g_usleep () from /usr/share/qt4/lib/libglib-2.0.so.0
#2 0xb77d8d51 in Glib::usleep (microseconds=10000) at
#libs/glibmm2/glibmm/timer.cc:68
#3 0xb7d93cea in ARDOUR::AudioEngine::meter_thread (this=0x8d3dec8) at
#libs/ardour/audioengine.cc:431
0000004 0xb7d96bea in sigc::bound_mem_functor0<void,
#ARDOUR::AudioEngine>::operator() (this=0x8d3d0e4) at
#libs/sigc++2/sigc++/functors/mem_fun.h:1781
0000005 0xb7d96c0c in sigc::adaptor_functor<sigc::bound_mem_functor0<void,
#ARDOUR::AudioEngine> >::operator() (this=0x8d3d0e0)
    at libs/sigc++2/sigc++/adaptors/adaptor_trait.h:251
#6 0xb7d96c38 in sigc::internal::slot_call0<sigc::bound_mem_functor0<void,
ARDOUR::AudioEngine>, void>::call_it (rep=0x8d3d0c8)
    at libs/sigc++2/sigc++/functors/slot.h:103
#7 0x083b24f4 in sigc::slot0<void>::operator() (this=0x8d1a4f0) at
libs/sigc++2/sigc++/functors/slot.h:440
0000008 0xb77f6ff1 in call_thread_entry_slot (data=0x8d1a4f0) at
libs/glibmm2/glibmm/thread.cc:43
0000009 0xb786094f in ?? () from /usr/share/qt4/lib/libglib-2.0.so.0
0000010 0x08d1a4f0 in ?? ()
0000011 0x088f47f0 in ?? ()
0000012 0x00000000 in ?? ()

Thread 2 (process 17476):
#0 0xb67f35bd in poll () from /lib/libc.so.6
0000001 0xb6eae668 in jack_client_core_wait (client=0x8d47468) at client.c:1400
#2 0xb6eaec86 in jack_thread_wait (client=0x8d47468, status=0) at
#client.c:1554
#3 0xb6eaf795 in jack_client_thread (arg=0x8d47468) at client.c:1601
0000004 0xb6e96383 in start_thread () from /lib/libpthread.so.0
0000005 0xb67fd73e in clone () from /lib/libc.so.6

Thread 1 (process 17299):
#0 0xb679a83f in memcpy () from /lib/libc.so.6
0000001 0xb69151f4 in std::string::_Rep::_M_clone () from
#/usr/share/qt4/lib/libstdc++.so.6
#2 0xb6916210 in std::string::reserve () from
#/usr/share/qt4/lib/libstdc++.so.6
#3 0xb691646d in std::string::append () from
#/usr/share/qt4/lib/libstdc++.so.6
0000004 0xb6916575 in std::string::operator+= () from
#/usr/share/qt4/lib/libstdc++.so.6
0000005 0xb7f11f95 in ARDOUR::Session::peak_dir (this=0x8eda200) at
#libs/ardour/session_state.cc:2060
#6 0xb7f16fd3 in ARDOUR::Session::ensure_subdirs (this=0x8eda200) at
#libs/ardour/session_state.cc:476
#7 0xb7dc2944 in ARDOUR::AudioSource::get_transients_path (this=0x8f0c0f8)
#at libs/ardour/audiosource.cc:957
0000008 0xb7d739fb in ARDOUR::Analyser::analyse_audio_file_source
#(src=@0xb4d7c2f8) at libs/ardour/analyser.cc:111
0000009 0xb7d73cf4 in ARDOUR::Analyser::work () at libs/ardour/analyser.cc:99
0000010 0xb7d73d81 in analyser_work () at libs/ardour/analyser.cc:49
0000011 0x086e6691 in sigc::pointer_functor0<void>::operator() (this=0x8a9d21c)
#at libs/sigc++2/sigc++/functors/ptr_fun.h:77
0000012 0x086e66a8 in sigc::adaptor_functor<sigc::pointer_functor0<void>
#>::operator() (this=0x8a9d218) at
#>libs/sigc++2/sigc++/adaptors/adaptor_trait.h:251
0000013 0x086e66c4 in sigc::internal::slot_call0<sigc::pointer_functor0<void>,
#void>::call_it (rep=0x8a9d200) at libs/sigc++2/sigc++/functors/slot.h:103
0000014 0x083b24f4 in sigc::slot0<void>::operator() (this=0x8a9d1f0) at
#libs/sigc++2/sigc++/functors/slot.h:440
#15 0xb77f6ff1 in call_thread_entry_slot (data=0x8a9d1f0) at
#libs/glibmm2/glibmm/thread.cc:43
0000016 0xb786094f in ?? () from /usr/share/qt4/lib/libglib-2.0.so.0
#17 0x08a9d1f0 in ?? ()
0000018 0x08a9d228 in ?? ()
0000019 0x00000000 in ?? ()
............


here jackd is running no-RT.


cheers,
doc
TagsNo tags attached.

Relationships

duplicate of 0002014 closedv2 wired behavior when importing the same peace of audio more than once 

Activities

nowhiskey

2008-02-04 18:34

reporter   ~0004703

i did some further 'investigation' on this.
it looks for me like there are two bugs involved.
-one time, if i create new track, than import a peace of audio into track and than do this both steps again, i ll end up with two tracks (audio 1 and audio 2).
the first track is containing the file once and the second twice time but i am able to reload the session. so in this case there is only a strange importing issue.
-another time, i import the same peace of audio 'as new track' twice.
again i end up with the same schema as above, but in this case i can't reload the session anymore.

it seems for me that this bug report is addressing explicitly the second case.
in the moment ardour is preventing the user of creating a track if there is already the track with that name, but ardour is not doing so when importing 'as new track' when the trackname is taken from the audio file name.

cheers,
doc

nowhiskey

2008-02-09 15:33

reporter   ~0004711

ongoing@3033 contains the fix for this issue. (thanx sampo!)

but there still is the problem that the user is not prevented of creating tracks with the names 'click' and 'auditioner' which will make ardour refuse to open a session.

cheers,
doc

paul

2008-05-29 15:21

administrator   ~0004978

see notes.

system

2020-04-19 20:12

developer   ~0021626

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
2008-02-04 13:28 nowhiskey New Issue
2008-02-04 18:34 nowhiskey Note Added: 0004703
2008-02-09 15:33 nowhiskey Note Added: 0004711
2008-02-11 15:41 v2 Relationship added duplicate of 0002014
2008-05-29 15:21 paul Status new => resolved
2008-05-29 15:21 paul Resolution open => fixed
2008-05-29 15:21 paul Assigned To => paul
2008-05-29 15:21 paul Note Added: 0004978
2020-04-19 20:12 system Note Added: 0021626
2020-04-19 20:12 system Status resolved => closed