View Issue Details

IDProjectCategoryView StatusLast Update
0003306ardourbugspublic2011-09-28 16:23
Reportercolinf Assigned Topaul  
PrioritynormalSeveritycrashReproducibilitysometimes
Status closedResolutionfixed 
Product VersionSVN/2.0-ongoing 
Target Version2.8.12 
Summary0003306: AutomationList::truncate_start() called on an empty list
DescriptionWhen attempting to resize the start of the 'harmonica-10.7' region in the attached session file, the message 'AutomationList::truncate_start() called on an empty list' appears, with 'Press To Exit' the only option.
TagsNo tags attached.

Activities

2010-07-07 19:49

 

empty-list.ardour (95,215 bytes)

colinf

2010-07-07 19:58

updater   ~0008406

A few more notes:

I've not used any automation in this session at all.

Choosing 'Region envelope visible' on the region in question doesn't show any automation points at all.

'Reset region envelope' causes the default 0dB envelope to appear on that region, after which resizing it works as expected.

moshisushi

2010-07-27 00:48

reporter   ~0008659

I just experienced the same in 3.0 (rev 7504). What i did:

- Import a sound file to a stereo track (track 1)
- Create a _new_ track (track 2)
- Cut out a region from the sound file on track 1
- Move the new region to track 2
- Resize the start of the region

Ardour crashes with
ardour-3.0: ../libs/evoral/src/ControlList.cpp:681: void Evoral::ControlList::truncate_start(double): Assertion `!_events.empty()' failed

moshisushi

2010-07-27 00:59

reporter   ~0008660

Further investigation suggests that the move-to-new-track part is not necessary for getting the assertion failure.

cth103

2010-07-27 01:01

administrator   ~0008661

Confirmed in 3.0 (not checked in 2.0, yet).

cth103

2010-07-27 02:11

administrator   ~0008663

Should be fixed in A3 SVN (rev 7510). Could you check, moshisushi?

moshisushi

2010-07-27 10:31

reporter   ~0008666

Seems to be a little better now! I imported a drum loop, tried to resize the start of it in different ways. Couldn't make it crash that way. Then i moved it to another track and resized, still no crash. However, i found that these steps will always crash Ardour:

1. Import a sound file to a new track / region.
2. Make a copy of that region, and make the two regions overlap a bit (with crossfades)
3. Adjust (resize) the beginning of the first region to the right.
4. Adjust (resize) the beginning of the first region to the left.

2010-07-27 12:05

 

negative_use_count_bug.txt (6,269 bytes)   
Program received signal SIGABRT, Aborted.
0x00007fffecdf3a75 in raise () from /lib/libc.so.6
(gdb) bt
#0  0x00007fffecdf3a75 in raise () from /lib/libc.so.6
#1  0x00007fffecdf75c0 in abort () from /lib/libc.so.6
#2  0x00007ffff6bc77ba in ARDOUR::Source::dec_use_count (this=0x2abab50) at ../libs/ardour/source.cc:288
#3  0x00007ffff6a789d3 in ARDOUR::Region::drop_sources (this=0x7fffdc4fb190) at ../libs/ardour/region.cc:1553
#4  0x00007ffff6a72860 in ~Region (this=0x7fffdc4fb190, __in_chrg=<value optimized out>) at ../libs/ardour/region.cc:420
#5  0x00007ffff67e65e9 in ~AudioRegion (this=0x7fffdc4fb190, __in_chrg=<value optimized out>) at ../libs/ardour/audioregion.cc:220
#6  0x00007ffff6840b90 in ~Crossfade (this=0x7fffdc4fb190, __in_chrg=<value optimized out>) at ../libs/ardour/crossfade.cc:214
#7  0x00007ffff677c5ac in boost::checked_delete<ARDOUR::Crossfade> (x=0x7fffdc4fb190) at /usr/include/boost/checked_delete.hpp:34
#8  0x00007ffff678d722 in boost::detail::sp_counted_impl_p<ARDOUR::Crossfade>::dispose() () from ./../build/default/libs/ardour/libardour.so.3
#9  0x0000000000865706 in boost::detail::sp_counted_base::release (this=0x7fffdc503430)
    at /usr/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp:145
#10 0x0000000000865795 in ~shared_count (this=0x7fffffffc668, __in_chrg=<value optimized out>) at /usr/include/boost/smart_ptr/detail/shared_count.hpp:217
#11 0x000000000095fba0 in ~shared_ptr (this=0x7fffffffc660, __in_chrg=<value optimized out>) at /usr/include/boost/smart_ptr/shared_ptr.hpp:169
#12 0x00007ffff6774c92 in ARDOUR::AudioPlaylist::check_dependents (this=0x7fffdc2171d0, r=..., norefresh=false) at ../libs/ardour/audio_playlist.cc:511
#13 0x00007ffff69f1c24 in ARDOUR::Playlist::flush_notifications (this=0x7fffdc2171d0, from_undo=false) at ../libs/ardour/playlist.cc:663
#14 0x00007ffff67729b2 in ARDOUR::AudioPlaylist::flush_notifications (this=0x7fffdc2171d0, from_undo=false) at ../libs/ardour/audio_playlist.cc:246
#15 0x00007ffff69f10ad in ARDOUR::Playlist::release_notifications (this=0x7fffdc2171d0, from_undo=false) at ../libs/ardour/playlist.cc:481
#16 0x00007ffff69f0ffe in ARDOUR::Playlist::thaw (this=0x7fffdc2171d0, from_undo=false) at ../libs/ardour/playlist.cc:465
#17 0x0000000000af5d43 in TrimDrag::finished (this=0x7fffdc4f5bd0, event=0x2abf890, movement_occurred=true) at ../gtk2_ardour/editor_drag.cc:1880
#18 0x0000000000aed184 in Drag::end_grab (this=0x7fffdc4f5bd0, event=0x2abf890) at ../gtk2_ardour/editor_drag.cc:252
#19 0x0000000000aecb81 in DragManager::end_grab (this=0x1ecf790, e=0x2abf890) at ../gtk2_ardour/editor_drag.cc:122
#20 0x0000000000b3ad4f in Editor::button_release_handler (this=0x1e92da0, item=0x7fffdc4b15e0, event=0x2abf890, item_type=RegionViewNameHighlight)
    at ../gtk2_ardour/editor_mouse.cc:1115
#21 0x0000000000ae78fa in Editor::canvas_region_view_name_highlight_event (this=0x1e92da0, event=0x2abf890, item=0x7fffdc4b15e0, rv=0x7fffdc4b64e0)
    at ../gtk2_ardour/editor_canvas_events.cc:837
#22 0x0000000000955cd7 in sigc::bound_mem_functor3<bool, PublicEditor, _GdkEvent*, Gnome::Canvas::Item*, RegionView*>::operator() (this=0x7fffdc4b69e0, 
    _A_a1=@0x7fffffffcca8, _A_a2=@0x7fffffffcc18, _A_a3=@0x7fffdc4b6a08) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1985
#23 0x0000000000ece347 in sigc::adaptor_functor<sigc::bound_mem_functor3<bool, PublicEditor, _GdkEvent*, Gnome::Canvas::Item*, RegionView*> >::operator()<_GdkEvent* const&, Gnome::Canvas::SimpleRect*&, RegionView*&> (this=0x7fffdc4b69d8, _A_arg1=@0x7fffffffcca8, _A_arg2=@0x7fffdc4b6a00, _A_arg3=@0x7fffdc4b6a08)
    at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:123
#24 0x0000000000ecdb0c in sigc::bind_functor<-1, sigc::bound_mem_functor3<bool, PublicEditor, _GdkEvent*, Gnome::Canvas::Item*, RegionView*>, Gnome::Canvas::SimpleRect*, RegionView*, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::operator()<_GdkEvent* const&> (this=0x7fffdc4b69d0, 
    _A_arg1=@0x7fffffffcca8) at /usr/include/sigc++-2.0/sigc++/adaptors/bind.h:1336
#25 0x0000000000ecd116 in sigc::internal::slot_call1<sigc::bind_functor<-1, sigc::bound_mem_functor3<bool, PublicEditor, _GdkEvent*, Gnome::Canvas::Item*, RegionView*>, Gnome::Canvas::SimpleRect*, RegionView*, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>, bool, _GdkEvent*>::call_it (
    rep=0x7fffdc4b69a0, a_1=@0x7fffffffcca8) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:137
#26 0x00007fffee217f22 in ?? () from /usr/lib/libgnomecanvasmm-2.6.so.1
---Type <return> to continue, or q <return> to quit---
#27 0x00007fffefd57168 in gnome_canvas_marshal_BOOLEAN__BOXED () from /usr/lib/libgnomecanvas-2.so.0
#28 0x00007ffff20fa5de in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#29 0x00007ffff210e9a4 in ?? () from /usr/lib/libgobject-2.0.so.0
#30 0x00007ffff210f8b9 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#31 0x00007ffff2110033 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#32 0x00007fffefd52972 in ?? () from /usr/lib/libgnomecanvas-2.so.0
#33 0x00007fffefd55426 in ?? () from /usr/lib/libgnomecanvas-2.so.0
#34 0x00007ffff1a08178 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#35 0x00007ffff20fa5de in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#36 0x00007ffff210e1dd in ?? () from /usr/lib/libgobject-2.0.so.0
#37 0x00007ffff210f8b9 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#38 0x00007ffff2110033 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#39 0x00007ffff1b1f0bf in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#40 0x00007ffff1a00643 in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
#41 0x00007ffff1a0171b in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#42 0x00007ffff167586c in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#43 0x00007ffff2f728c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#44 0x00007ffff2f76748 in ?? () from /lib/libglib-2.0.so.0
#45 0x00007ffff2f76c55 in g_main_loop_run () from /lib/libglib-2.0.so.0
#46 0x00007ffff1a01bb7 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#47 0x00007ffff57f0f13 in Gtkmm2ext::UI::run (this=0x17f1fb0, old_receiver=...) at ../libs/gtkmm2ext/gtk_ui.cc:259
#48 0x0000000000ce906f in main (argc=1, argv=0x7fffffffda68) at ../gtk2_ardour/main.cc:433

negative_use_count_bug.txt (6,269 bytes)   

moshisushi

2010-07-27 12:07

reporter   ~0008667

Seems to be a different problem though.. the use count of some region source turns negative, causing Ardour to abort execution (atomizer 100.wav is my test audio file):

"Bad use dec for ZG HH atomizer 100.wav"

Full backtrace attached.

moshisushi

2010-07-27 22:23

reporter   ~0008675

The problem disappears if "create crossfades automatically" is unchecked

2011-06-03 15:15

 

truncate_start-error.patch (523 bytes)   
Index: libs/ardour/automation_event.cc
===================================================================
--- libs/ardour/automation_event.cc	(revision 9675)
+++ libs/ardour/automation_event.cc	(working copy)
@@ -913,10 +913,9 @@
 		double first_legal_coordinate;
 
 		if (events.empty()) {
-			fatal << _("programming error:")
+			cerr  << _("programming error:")
 			      << "AutomationList::truncate_start() called on an empty list"
-			      << endmsg;
-			/*NOTREACHED*/
+			      << endmsg;			
 			return;
 		}
 		
truncate_start-error.patch (523 bytes)   

colinf

2011-06-03 15:18

updater   ~0010839

I've had the attached change (truncate_start-error.patch) in my local copy since I originally reported this. I can't see any ill effects from just returning rather than aborting in this case.

Is there a reason this is a fatal error?

paul

2011-06-11 17:00

administrator   ~0010846

colin's patch applied to 2.X.

colinf

2011-09-28 16:23

updater   ~0011606

Fixed in 2.8.12. Thank you!

Issue History

Date Modified Username Field Change
2010-07-07 19:49 colinf New Issue
2010-07-07 19:49 colinf File Added: empty-list.ardour
2010-07-07 19:58 colinf Note Added: 0008406
2010-07-10 10:05 cth103 cost => 0.00
2010-07-10 10:05 cth103 Target Version => 2.8.12
2010-07-27 00:48 moshisushi Note Added: 0008659
2010-07-27 00:59 moshisushi Note Added: 0008660
2010-07-27 01:01 cth103 Note Added: 0008661
2010-07-27 01:01 cth103 Status new => confirmed
2010-07-27 02:11 cth103 Note Added: 0008663
2010-07-27 02:11 cth103 Status confirmed => feedback
2010-07-27 10:31 moshisushi Note Added: 0008666
2010-07-27 12:05 moshisushi File Added: negative_use_count_bug.txt
2010-07-27 12:07 moshisushi Note Added: 0008667
2010-07-27 22:23 moshisushi Note Added: 0008675
2011-06-03 15:15 colinf File Added: truncate_start-error.patch
2011-06-03 15:18 colinf Note Added: 0010839
2011-06-11 17:00 paul Note Added: 0010846
2011-06-11 17:00 paul Status feedback => resolved
2011-06-11 17:00 paul Resolution open => fixed
2011-06-11 17:00 paul Assigned To => paul
2011-09-28 16:23 colinf Note Added: 0011606
2011-09-28 16:23 colinf Status resolved => closed