View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0004763 | ardour | bugs | public | 2012-03-09 11:07 | 2012-05-23 15:08 |
Reporter | nettings | Assigned To | paul | ||
Priority | normal | Severity | crash | Reproducibility | always |
Status | assigned | Resolution | open | ||
Platform | x86_64 | OS | Linux | OS Version | 3.1.9 |
Target Version | 3.0 | ||||
Summary | 0004763: session file corruption (negative region lengths in playlist) leading to runaway memory usage | ||||
Description | when i try to load the attached session, ardour starts gobbling up all available memory (16gb ram, 10 of which are memlockable for this user), then aborts after throwing a std:bad_alloc. post-mortem is attached. the issue is 100% reproducible, and i'm stumped. did go through the session file for obvious inconsistencies, but couldn't find anything amiss... | ||||
Steps To Reproduce | start jack, start ardour3, load the attached session file. | ||||
Tags | No tags attached. | ||||
2012-03-09 11:07
|
memory-hogging-backtrace.txt (18,381 bytes)
Core was generated by `./../build/gtk2_ardour/ardour-3.0'. Program terminated with signal 6, Aborted. #0 0x00007f7346788d95 in raise () from /lib64/libc.so.6 (gdb) thread apply all bt Thread 13 (Thread 0x7f733c117820 (LWP 9590)): #0 0x00007f7346824523 in poll () from /lib64/libc.so.6 #1 0x00007f73518224bb in ARDOUR::Butler::thread_work (this=0x3de2650) at ../libs/ardour/butler.cc:153 #2 0x00007f7351822415 in ARDOUR::Butler::_thread_work (arg=0x3de2650) at ../libs/ardour/butler.cc:137 #3 0x00007f734f6b1a6c in fake_thread_start (arg=0x5412700) at ../libs/pbd/pthread_utils.cc:81 #4 0x00007f73484f7f05 in start_thread () from /lib64/libpthread.so.0 #5 0x00007f734682d63d in clone () from /lib64/libc.so.6 Thread 12 (Thread 0x7f73377fe700 (LWP 9586)): #0 0x00007f7346824523 in poll () from /lib64/libc.so.6 #1 0x00007f7348716966 in jack_client_core_wait () from /usr/local/lib64/libjack.so.0 #2 0x00007f7348716cea in jack_cycle_wait () from /usr/local/lib64/libjack.so.0 #3 0x00007f73517a475e in ARDOUR::AudioEngine::process_thread (this=0x2c7b150) at ../libs/ardour/audioengine.cc:444 #4 0x00007f73517a40d0 in ARDOUR::AudioEngine::_process_thread (arg=0x2c7b150) at ../libs/ardour/audioengine.cc:342 #5 0x00007f7348716be2 in jack_client_thread () from /usr/local/lib64/libjack.so.0 #6 0x00007f73484f7f05 in start_thread () from /lib64/libpthread.so.0 #7 0x00007f734682d63d in clone () from /lib64/libc.so.6 Thread 11 (Thread 0x7f72c2d49820 (LWP 9610)): #0 0x00007f73484ff52d in nanosleep () from /lib64/libpthread.so.0 #1 0x00007f734d59b1d2 in g_usleep () from /usr/lib64/libglib-2.0.so.0 #2 0x00007f73517a5554 in ARDOUR::AudioEngine::meter_thread (this=0x2c7b150) at ../libs/ardour/audioengine.cc:697 #3 0x00007f73517c49ee in boost::_mfi::mf0<void, ARDOUR::AudioEngine>::operator() (this=0xfa3b250, p=0x2c7b150) at /usr/include/boost/bind/mem_fn_template.hpp:49 #4 0x00007f73517c003e in boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> >::operator()<boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list0> (this=0xfa3b260, f=..., a=...) at /usr/include/boost/bind/bind.hpp:253 #5 0x00007f73517bbc19 in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > >::operator() (this=0xfa3b250) at /usr/include/boost/bind/bind_template.hpp:20 #6 0x00007f73517b7072 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=0xfa3b250) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251 #7 0x00007f73517b2d0a 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= 0xfa3b220) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103 #8 0x00007f734e0cab7d in ?? () from /usr/lib64/libglibmm-2.4.so.1 #9 0x00007f734d597db6 in ?? () from /usr/lib64/libglib-2.0.so.0 #10 0x00007f73484f7f05 in start_thread () from /lib64/libpthread.so.0 #11 0x00007f734682d63d in clone () from /lib64/libc.so.6 Thread 10 (Thread 0x7f72f2244700 (LWP 9589)): #0 0x00007f73484fe010 in sem_wait () from /lib64/libpthread.so.0 #1 0x00007f735190266e in PBD::ProcessSemaphore::wait (this=0x3de6518) at /build/ardour3-svn/libs/pbd/pbd/semutils.h:41 #2 0x00007f7351900183 in ARDOUR::Graph::restart_cycle (this=0x3de6440) at ../libs/ardour/graph.cc:249 #3 0x00007f735190014d in ARDOUR::Graph::dec_ref (this=0x3de6440) at ../libs/ardour/graph.cc:236 #4 0x00007f73519066ee in ARDOUR::GraphNode::finish (this=0xc03ba10, chain=1) at ../libs/ardour/graphnode.cc:71 #5 0x00007f7351900d5d in ARDOUR::Graph::run_one (this=0x3de6440) at ../libs/ardour/graph.cc:389 #6 0x00007f7351900f3f in ARDOUR::Graph::helper_thread (this=0x3de6440) at ../libs/ardour/graph.cc:406 #7 0x00007f735190607c in boost::_mfi::mf0<void, ARDOUR::Graph>::operator() (this=0x7f72f2243c08, p=0x3de6440) at /usr/include/boost/bind/mem_fn_template.hpp:49 #8 0x00007f7351905cd2 in boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> >::operator()<boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list0> (this=0x7f72f2243c18, f=..., a=...) at /usr/include/boost/bind/bind.hpp:253 #9 0x00007f73519059c5 in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> > >::operator() (this=0x7f72f2243c08) at /usr/include/boost/bind/bind_template.hpp:20 #10 0x00007f7351905587 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 #11 0x00000000013badf0 in boost::function0<void>::operator() (this=0x7f72f2243c00) at /usr/include/boost/function/function_template.hpp:1013 #12 0x00007f73517a887d in ARDOUR::AudioEngine::_start_process_thread (arg=0x3df6ab0) at ../libs/ardour/audioengine.cc:1506 #13 0x00007f73484f7f05 in start_thread () from /lib64/libpthread.so.0 ---Type <return> to continue, or q <return> to quit--- #14 0x00007f734682d63d in clone () from /lib64/libc.so.6 Thread 9 (Thread 0x7f733f2a8700 (LWP 9572)): #0 0x00007f73484fbe6c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 #1 0x00007f7351bebd89 in peak_thread_work () at ../libs/ardour/source_factory.cc:68 #2 0x0000000001977485 in sigc::pointer_functor0<void>::operator() (this=0x2927c28) at /usr/include/sigc++-2.0/sigc++/functors/ptr_fun.h:77 #3 0x0000000001974c30 in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator() (this=0x2927c20) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251 #4 0x0000000001971bd5 in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it (rep=0x2927bf0) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103 #5 0x00007f734e0cab7d in ?? () from /usr/lib64/libglibmm-2.4.so.1 #6 0x00007f734d597db6 in ?? () from /usr/lib64/libglib-2.0.so.0 #7 0x00007f73484f7f05 in start_thread () from /lib64/libpthread.so.0 #8 0x00007f734682d63d in clone () from /lib64/libc.so.6 Thread 8 (Thread 0x7f72f2a45700 (LWP 9588)): #0 0x00007f73484fe010 in sem_wait () from /lib64/libpthread.so.0 #1 0x00007f735190266e in PBD::ProcessSemaphore::wait (this=0x3de64f8) at /build/ardour3-svn/libs/pbd/pbd/semutils.h:41 #2 0x00007f7351900bf8 in ARDOUR::Graph::run_one (this=0x3de6440) at ../libs/ardour/graph.cc:375 #3 0x00007f7351900f3f in ARDOUR::Graph::helper_thread (this=0x3de6440) at ../libs/ardour/graph.cc:406 #4 0x00007f735190607c in boost::_mfi::mf0<void, ARDOUR::Graph>::operator() (this=0x7f72f2a44c08, p=0x3de6440) at /usr/include/boost/bind/mem_fn_template.hpp:49 #5 0x00007f7351905cd2 in boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> >::operator()<boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list0> (this=0x7f72f2a44c18, f=..., a=...) at /usr/include/boost/bind/bind.hpp:253 #6 0x00007f73519059c5 in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> > >::operator() (this=0x7f72f2a44c08) at /usr/include/boost/bind/bind_template.hpp:20 #7 0x00007f7351905587 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 0x00000000013badf0 in boost::function0<void>::operator() (this=0x7f72f2a44c00) at /usr/include/boost/function/function_template.hpp:1013 #9 0x00007f73517a887d in ARDOUR::AudioEngine::_start_process_thread (arg=0x3df68c0) at ../libs/ardour/audioengine.cc:1506 #10 0x00007f73484f7f05 in start_thread () from /lib64/libpthread.so.0 #11 0x00007f734682d63d in clone () from /lib64/libc.so.6 Thread 7 (Thread 0x7f7337fff700 (LWP 9584)): #0 0x00007f73484fbe6c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 #1 0x00007f7348717feb in mb_thread_func () from /usr/local/lib64/libjack.so.0 #2 0x00007f73484f7f05 in start_thread () from /lib64/libpthread.so.0 #3 0x00007f734682d63d in clone () from /lib64/libc.so.6 Thread 6 (Thread 0x7f73362a6700 (LWP 9587)): #0 0x00007f73484fe010 in sem_wait () from /lib64/libpthread.so.0 #1 0x00007f735190266e in PBD::ProcessSemaphore::wait (this=0x3de64f8) at /build/ardour3-svn/libs/pbd/pbd/semutils.h:41 #2 0x00007f7351900bf8 in ARDOUR::Graph::run_one (this=0x3de6440) at ../libs/ardour/graph.cc:375 #3 0x00007f735190116d in ARDOUR::Graph::main_thread (this=0x3de6440) at ../libs/ardour/graph.cc:444 #4 0x00007f735190607c in boost::_mfi::mf0<void, ARDOUR::Graph>::operator() (this=0x7f73362a5c08, p=0x3de6440) at /usr/include/boost/bind/mem_fn_template.hpp:49 #5 0x00007f7351905cd2 in boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> >::operator()<boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list0> (this=0x7f73362a5c18, f=..., a=...) at /usr/include/boost/bind/bind.hpp:253 #6 0x00007f73519059c5 in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> > >::operator() (this=0x7f73362a5c08) at /usr/include/boost/bind/bind_template.hpp:20 #7 0x00007f7351905587 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 0x00000000013badf0 in boost::function0<void>::operator() (this=0x7f73362a5c00) at /usr/include/boost/function/function_template.hpp:1013 #9 0x00007f73517a887d in ARDOUR::AudioEngine::_start_process_thread (arg=0x3df68c0) at ../libs/ardour/audioengine.cc:1506 #10 0x00007f73484f7f05 in start_thread () from /lib64/libpthread.so.0 #11 0x00007f734682d63d in clone () from /lib64/libc.so.6 Thread 5 (Thread 0x7f72f1a43700 (LWP 9591)): #0 0x00007f7346824523 in poll () from /lib64/libc.so.6 ---Type <return> to continue, or q <return> to quit--- #1 0x00007f734d572a98 in ?? () from /usr/lib64/libglib-2.0.so.0 #2 0x00007f734d5732c2 in g_main_loop_run () from /usr/lib64/libglib-2.0.so.0 #3 0x00007f734f67a80f in BaseUI::main_thread (this=0x5474180) at ../libs/pbd/base_ui.cc:77 #4 0x00007f734f67bbb9 in sigc::bound_mem_functor0<void, BaseUI>::operator() (this=0x62bc578) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1787 #5 0x00007f734f67ba1e in sigc::adaptor_functor<sigc::bound_mem_functor0<void, BaseUI> >::operator() (this=0x62bc570) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251 #6 0x00007f734f67b78f in sigc::internal::slot_call0<sigc::bound_mem_functor0<void, BaseUI>, void>::call_it (rep=0x62bc540) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103 #7 0x00007f734e0cab7d in ?? () from /usr/lib64/libglibmm-2.4.so.1 #8 0x00007f734d597db6 in ?? () from /usr/lib64/libglib-2.0.so.0 #9 0x00007f73484f7f05 in start_thread () from /lib64/libpthread.so.0 #10 0x00007f734682d63d in clone () from /lib64/libc.so.6 Thread 4 (Thread 0x7f73402aa700 (LWP 9570)): #0 0x00007f73467fbe0d in nanosleep () from /lib64/libc.so.6 #1 0x00007f7346827604 in usleep () from /lib64/libc.so.6 #2 0x0000000001bc1031 in gui_event_loop (ptr=0x0) at ../gtk2_ardour/linux_vst_gui_support.cc:363 #3 0x00007f73484f7f05 in start_thread () from /lib64/libpthread.so.0 #4 0x00007f734682d63d in clone () from /lib64/libc.so.6 Thread 3 (Thread 0x7f7336aa7700 (LWP 9573)): #0 0x00007f73484fbe6c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 #1 0x00007f73517376c9 in ARDOUR::Analyser::work () at ../libs/ardour/analyser.cc:85 #2 0x00007f7351737461 in analyser_work () at ../libs/ardour/analyser.cc:49 #3 0x0000000001977485 in sigc::pointer_functor0<void>::operator() (this=0x292a428) at /usr/include/sigc++-2.0/sigc++/functors/ptr_fun.h:77 #4 0x0000000001974c30 in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator() (this=0x292a420) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251 #5 0x0000000001971bd5 in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it (rep=0x292a3f0) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103 #6 0x00007f734e0cab7d in ?? () from /usr/lib64/libglibmm-2.4.so.1 #7 0x00007f734d597db6 in ?? () from /usr/lib64/libglib-2.0.so.0 #8 0x00007f73484f7f05 in start_thread () from /lib64/libpthread.so.0 #9 0x00007f734682d63d in clone () from /lib64/libc.so.6 Thread 2 (Thread 0x7f733faa9700 (LWP 9571)): #0 0x00007f73484fbe6c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 #1 0x00007f7351bebd89 in peak_thread_work () at ../libs/ardour/source_factory.cc:68 #2 0x0000000001977485 in sigc::pointer_functor0<void>::operator() (this=0x292ab08) at /usr/include/sigc++-2.0/sigc++/functors/ptr_fun.h:77 #3 0x0000000001974c30 in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator() (this=0x292ab00) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251 #4 0x0000000001971bd5 in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it (rep=0x292aad0) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103 #5 0x00007f734e0cab7d in ?? () from /usr/lib64/libglibmm-2.4.so.1 #6 0x00007f734d597db6 in ?? () from /usr/lib64/libglib-2.0.so.0 #7 0x00007f73484f7f05 in start_thread () from /lib64/libpthread.so.0 #8 0x00007f734682d63d in clone () from /lib64/libc.so.6 Thread 1 (Thread 0x7f735296f9a0 (LWP 9565)): #0 0x00007f7346788d95 in raise () from /lib64/libc.so.6 #1 0x00007f734678a2ab in abort () from /lib64/libc.so.6 #2 0x00007f7346db7f2d in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib64/libstdc++.so.6 #3 0x00007f7346db60d6 in ?? () from /usr/lib64/libstdc++.so.6 #4 0x00007f7346db6103 in std::terminate() () from /usr/lib64/libstdc++.so.6 #5 0x00007f7346db61fe in __cxa_throw () from /usr/lib64/libstdc++.so.6 #6 0x00007f7346db66dd in operator new(unsigned long) () from /usr/lib64/libstdc++.so.6 #7 0x00007f7351c07614 in __gnu_cxx::new_allocator<ARDOUR::TempoMap::BBTPoint>::allocate (this=0x3df7038, __n=1073741824) at /usr/include/c++/4.6/ext/new_allocator.h:92 #8 0x00007f7351c0719b in std::_Vector_base<ARDOUR::TempoMap::BBTPoint, std::allocator<ARDOUR::TempoMap::BBTPoint> >::_M_allocate (this=0x3df7038, __n=1073741824) at /usr/include/c++/4.6/bits/stl_vector.h:150 #9 0x00007f7351c064ad in std::vector<ARDOUR::TempoMap::BBTPoint, std::allocator<ARDOUR::TempoMap::BBTPoint> >::_M_insert_aux (this=0x3df7038, __position=..., __x=...) at /usr/include/c++/4.6/bits/vector.tcc:327 #10 0x00007f7351c03a4e in std::vector<ARDOUR::TempoMap::BBTPoint, std::allocator<ARDOUR::TempoMap::BBTPoint> >::push_back (this=0x3df7038, __x=...) at /usr/include/c++/4.6/bits/stl_vector.h:834 #11 0x00007f7351bfb481 in ARDOUR::TempoMap::_extend_map (this=0x3df6f10, tempo=0x8ce9100, meter=0x8ce95b0, next_metric=..., current=..., current_frame=12884901888000, end=9223372036854775806) ---Type <return> to continue, or q <return> to quit--- at ../libs/ardour/tempo.cc:1022 #12 0x00007f7351bfa89e in ARDOUR::TempoMap::extend_map (this=0x3df6f10, end=9223372036854775806) at ../libs/ardour/tempo.cc:882 #13 0x00007f7351bf9c97 in ARDOUR::TempoMap::require_map_to (this=0x3df6f10, pos=9223372036854775806) at ../libs/ardour/tempo.cc:714 #14 0x00007f7351bfbe1e in ARDOUR::TempoMap::bbt_time (this=0x3df6f10, frame=9223372036854775806, bbt=...) at ../libs/ardour/tempo.cc:1113 #15 0x000000000165026e in EditorRegions::format_position (this=0x35e83a0, pos=9223372036854775806, buf=0x7fff5fac4d90 "\330y\220\v", bufsize=16, onoff=true) at ../gtk2_ardour/editor_regions.cc:698 #16 0x0000000001650ea5 in EditorRegions::populate_row_end (this=0x35e83a0, region=..., row=..., used=1) at ../gtk2_ardour/editor_regions.cc:824 #17 0x0000000001650630 in EditorRegions::populate_row (this=0x35e83a0, region=..., row=...) at ../gtk2_ardour/editor_regions.cc:754 #18 0x000000000164e443 in EditorRegions::add_region (this=0x35e83a0, region=...) at ../gtk2_ardour/editor_regions.cc:444 #19 0x000000000164fbf9 in EditorRegions::redisplay (this=0x35e83a0) at ../gtk2_ardour/editor_regions.cc:638 #20 0x000000000164c963 in EditorRegions::set_session (this=0x35e83a0, s=0x3dda910) at ../gtk2_ardour/editor_regions.cc:283 #21 0x00000000015101b0 in Editor::set_session (this=0x354b400, t=0x3dda910) at ../gtk2_ardour/editor.cc:1128 #22 0x00000000013cbd17 in ARDOUR_UI::connect_dependents_to_session (this=0x26e70d0, s=0x3dda910) at ../gtk2_ardour/ardour_ui_dependents.cc:78 #23 0x00000000013ce8b7 in ARDOUR_UI::set_session (this=0x26e70d0, s=0x3dda910) at ../gtk2_ardour/ardour_ui_dialogs.cc:178 #24 0x000000000137dbf0 in ARDOUR_UI::load_session (this=0x26e70d0, path=..., snap_name=..., mix_template=...) at ../gtk2_ardour/ardour_ui.cc:2757 #25 0x000000000137d2c7 in ARDOUR_UI::get_session_parameters (this=0x26e70d0, quit_on_cancel=true, should_be_new=false, load_template=...) at ../gtk2_ardour/ardour_ui.cc:2614 #26 0x00000000013742af in ARDOUR_UI::startup (this=0x26e70d0) at ../gtk2_ardour/ardour_ui.cc:667 #27 0x00000000013a090b in sigc::bound_mem_functor0<void, ARDOUR_UI>::operator() (this=0x2a9b1f8) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1787 #28 0x000000000139af16 in sigc::adaptor_functor<sigc::bound_mem_functor0<void, ARDOUR_UI> >::operator() (this=0x2a9b1f0) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251 #29 0x00000000013952c1 in sigc::internal::slot_call0<sigc::bound_mem_functor0<void, ARDOUR_UI>, void>::call_it (rep=0x2a9b1c0) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103 #30 0x000000000135cfeb in sigc::internal::signal_emit0<void, sigc::nil>::emit (impl=0x2a9b170) at /usr/include/sigc++-2.0/sigc++/signal.h:772 #31 0x000000000135ee30 in sigc::signal0<void, sigc::nil>::emit (this=0x26e7190) at /usr/include/sigc++-2.0/sigc++/signal.h:2669 #32 0x000000000135e1e8 in sigc::signal0<void, sigc::nil>::operator() (this=0x26e7190) at /usr/include/sigc++-2.0/sigc++/signal.h:2677 #33 0x00007f734fb206d5 in Gtkmm2ext::UI::run (this=0x26e70d0, old_receiver=...) at ../libs/gtkmm2ext/gtk_ui.cc:264 #34 0x00000000017c61ce in main (argc=1, argv=0x7fff5fac7428) at ../gtk2_ardour/main.cc:555 (gdb) |
|
just verified i can reproduce this bug with just the session file, in the absence of sound and peak files or anything else in the session directory. |
|
with all regions commented out in the session file, the problem persists. with all playlists commented out, the session loads. looks like there is a region length in the playlists that got corrupted: Region name="Bala L L-22.38" position="948409829" length="9223372035906365978" the same martian length crops up in all playlists that have been touched by the last edit operation... will try to salvage the session file and report back... |
2012-03-09 13:12
|
|
2012-03-09 13:14
|
|
|
ok, i've edited the session file by hand to weed out the obvious errors (see *-edited.ardour), and now i'm stuck with a segfault related to automation drawing, probably because i guessed the region length wrong. |
|
you've already moved past the point where my debug line is really useful. and it was also wrong anyway, because i put in the code that shows the start, not end of the region. how easy is it to end up with a session in this condition? |
|
don't know, this is a first. the session is complex - 24 channels, two recording days, 2k8 regions. and then i started editing, which was probably not a good idea. there was no crash or any other oddity. just saved a snapshot, and the next morning, pooof. i do have regular snapshots, so i could sort of bisect the session. will try that next. as soon as i know more, i'll fix the title of this bug, the memory explosion seems to have been justified - it was the playlist length field after all... |
|
<nettings> las: btw, i've just had another session state corruption, happened while copying a range out of a number of selected tracks and moving it backwards in time. standard situation: first note is weak, so cut out one from a few bars into the groove and move it to the beginning. <nettings> same situation as the first breakage, and it creates a spurious region in an empty track. i'm uploading a screenshot. this is based on the old session, which was cleaned by hand after the initial corruption. |
2012-03-12 21:22
|
|
|
it seems the bug is triggered by selecting non-consecutive ranges of tracks. the bogus regions with negative lengths (which are ultimately causing the crashes) are in those tracks which were _not_ selected for copying. |
|
the root cause of this behaviour was a previously corrupted session file, so i've renamed the bug. |
|
Do you have a recipe by any chance? |
|
not really. as mentioned above, the following sequence of actions triggered the problem, at least twice: select a short range, spanning multiple tracks. the selected tracks are not consecutive in the current track order. the tracks were selected using ctrl-leftclick, or a combination of rubberband selection and ctrl-leftclick. most tracks are mono, but one or two are four-channel. copy the ranges. move the edit point back in time. paste the ranges. now, an error related to negative index numbers in BBT pops up. the session file will now have some ranges with very big length numbers in the playlist section. crossfades and other automation might have spurious negative numbers. disclaimer: this session might have been dodgy to begin with. as you can see, it's huge (two long days of recording into it), and there was at least one ffado-related jack crash during that time. i'll be on the lookout for similar issues, but unless other people are seeing similar issues, i wouldn't treat it as too urgent... |
Date Modified | Username | Field | Change |
---|---|---|---|
2012-03-09 11:07 | nettings | New Issue | |
2012-03-09 11:07 | nettings | File Added: memory-hogging-backtrace.txt | |
2012-03-09 11:07 | nettings | cost | => 0.00 |
2012-03-09 11:09 | nettings | File Added: Mahadmalila.ardour | |
2012-03-09 11:23 | nettings | Note Added: 0012883 | |
2012-03-09 12:51 | nettings | Note Added: 0012884 | |
2012-03-09 13:11 | nettings | File Deleted: Mahadmalila.ardour | |
2012-03-09 13:12 | nettings | File Added: Mahadmalila-corrupted.ardour | |
2012-03-09 13:14 | nettings | File Added: Mahadmalila-edited.ardour | |
2012-03-09 13:15 | nettings | Note Added: 0012885 | |
2012-03-09 16:32 | paul | Status | new => assigned |
2012-03-09 16:32 | paul | Assigned To | => paul |
2012-03-09 16:35 | paul | Note Added: 0012886 | |
2012-03-09 18:23 | nettings | Note Added: 0012890 | |
2012-03-09 19:33 | cth103 | Target Version | => 3.0 beta4 |
2012-03-12 21:21 | nettings | Note Added: 0012903 | |
2012-03-12 21:22 | nettings | File Added: ardour3-session_corruption.png | |
2012-03-12 22:07 | nettings | Note Added: 0012905 | |
2012-03-14 12:00 | nettings | Note Added: 0012920 | |
2012-03-14 12:00 | nettings | Summary | A3 terminates after std:bad_alloc when loading a session (runaway memory usage) => session file corruption (negative region lengths in playlist) leading to runaway memory usage |
2012-03-25 14:55 | cth103 | Note Added: 0013032 | |
2012-03-31 15:45 | nettings | Note Added: 0013049 | |
2012-05-23 15:08 | cth103 | Target Version | 3.0 beta4 => 3.0 |