MantisBT

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0004528ardourbugspublic2011-12-02 05:072012-01-27 14:56
Reporternettings 
Assigned To 
PrioritynormalSeveritycrashReproducibilityalways
StatusnewResolutionopen 
PlatformOSOS Version
Product Version 
Target Version3.XFixed in Version 
Summary0004528: crash after recording MIDI timecode to a midi track
Descriptioni know it makes no sense in practise, this is just a test case, so read on:

when i try to record midi timecode in an ardour midi track for about three minutes, ardour will crash soon after the transport is stopped, after being unresponsive for half a minute or so, apparently while doing janitorial tasks that have queued up while recording the midi data.

Steps To Reproduceconnect a source of full-frame MTC to an ardour midi track and record. i used
https://ltcsmpte.svn.sourceforge.net/svnroot/ltcsmpte/libltcsmpte/trunk/. [^]
apart from libltcsmpte itself, you will have to build jtlc (which creates LTC on jack audio ports, depending on the JACK transport state), and ltc2amidi, which takes a jack audio input and will convert it to MTC in lsa midi. to connect this to a3, you will need a2jmidid :)
sorry for the convoluted usecase...

to make sure its not downstream congestion that triggers the bug, i disconnected the ardour MIDI track output.

first try recording a few seconds of MTC. it will work, but you will notice it takes quite a while after you hit "STOP" before the midi region appears. if you zoom in, you will see the MTC full-frame sysexes in little yellow boxes.
then record for three minutes. after stopping, ardour will barf with the messages quoted below.
Additional Informationthe console says this:
MIDI 1-16.mid last write set to 512
Dropping incoming MIDI at time 27; offset=80 limit=256
drop flushed event on the floor, time 27 < 80
drop flushed event on the floor, time 27 < 80

Pango-ERROR **: Unable to open font file /usr/share/fonts/truetype/arial.ttf for font Arial 9.9990234375, exiting

aborting...

[1]+ Aborted ardour3 2012-Life_in_Technicolor_ii.ardour

*.*

it should be noted that ltc2amidi only creates full-frame MTC sysexes, 24 per second. full-fledged MTC includes additional quarter-frame messages, which were not part of this test scenario, but they might trigger the bug even earlier as they come a a vastly higher rate.

TagsNo tags attached.
Attached Files

- Relationships

-  Notes
(0012275)
nettings (manager)
2011-12-02 05:15

interesting. this time, after provoking the crash, ardour cannot start the session any more. it barfs with the same error. a post-mortem on the corefile indicates this:
Core was generated by `/usr/local/lib/ardour3/ardour-3.0 2012-Life_in_Technicolor_ii.ardour'.
Program terminated with signal 6, Aborted.
#0 0x00007ff8e495dab5 in raise () from /lib64/libc.so.6
(gdb) thread apply all bt

<snip>

Thread 1 (Thread 8514):
#0 0x00007ff8e495dab5 in raise () from /lib64/libc.so.6
#1 0x00007ff8e495efb6 in abort () from /lib64/libc.so.6
#2 0x00007ff8eb845b4a in g_logv () from /lib64/libglib-2.0.so.0
#3 0x00007ff8eb845bd3 in g_log () from /lib64/libglib-2.0.so.0
#4 0x00007ff8ea793be8 in pango_ft2_font_get_face () from /usr/lib64/libpangoft2-1.0.so.0
#5 0x00007ff8ea78f034 in pango_fc_font_create_base_metrics_for_context () from /usr/lib64/libpangoft2-1.0.so.0
#6 0x00007ff8ea78f428 in ?? () from /usr/lib64/libpangoft2-1.0.so.0
#7 0x00007ff8e99f5ba9 in ?? () from /usr/lib64/libpango-1.0.so.0
#8 0x00007ff8e99f86f8 in pango_layout_line_get_extents () from /usr/lib64/libpango-1.0.so.0
#9 0x00007ff8e99f87f7 in ?? () from /usr/lib64/libpango-1.0.so.0
#10 0x00007ff8e99f9eb9 in ?? () from /usr/lib64/libpango-1.0.so.0
#11 0x00007ff8e99fa1fe in pango_layout_get_pixel_extents () from /usr/lib64/libpango-1.0.so.0
#12 0x00007ff8e99fa24e in pango_layout_get_pixel_size () from /usr/lib64/libpango-1.0.so.0
#13 0x00007ff8e74fc4cd in gnome_canvas_text_set_property (object=0x7ff8afb8ce00, param_id=3, value=0x7fffd6475700, pspec=0x2136e30) at ../libs/gnomecanvas/libgnomecanvas/gnome-canvas-text.c:1089
#14 0x00007ff8ec112072 in g_object_set_valist () from /lib64/libgobject-2.0.so.0
#15 0x00007ff8e74dc7ae in gnome_canvas_item_set_valist (item=0x7ff8afb8ce00, first_arg_name=0x7ff8e77431c5 "x", args=0x7fffd64757d0) at ../libs/gnomecanvas/libgnomecanvas/gnome-canvas.c:559
#16 0x00007ff8e7739544 in Gnome::Canvas::Item::set(char const*, ...) () from /usr/lib64/libgnomecanvasmm-2.6.so.1
#17 0x00007ff8e773ee70 in Gnome::Canvas::Text::Text(Gnome::Canvas::Group&, double, double, Glib::ustring const&) () from /usr/lib64/libgnomecanvasmm-2.6.so.1
#18 0x00000000005ff1e0 in Gnome::Canvas::CanvasFlag::set_text(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
#19 0x000000000060e971 in Gnome::Canvas::CanvasSysEx::CanvasSysEx(MidiRegionView&, Gnome::Canvas::Group&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, double, double, double) ()
#20 0x0000000000886ef3 in MidiRegionView::display_sysexes() ()
#21 0x000000000088f0d1 in MidiRegionView::redisplay_model() ()
#22 0x00000000008aae7a in MidiStreamView::display_region(MidiRegionView*, bool) ()
#23 0x00000000008adb21 in MidiStreamView::add_region_view_internal(boost::shared_ptr<ARDOUR::Region>, bool, bool) ()
#24 0x0000000000af8782 in StreamView::add_region_view(boost::weak_ptr<ARDOUR::Region>) ()
#25 0x00000000008aea81 in boost::detail::function::void_function_obj_invoker1<sigc::retype_return_functor<void, sigc::bound_mem_functor1<void, MidiStreamView, boost::weak_ptr<ARDOUR::Region> > >, void, boost::shared_ptr<ARDOUR::Region> >::invoke(boost::detail::function::function_buffer&, boost::shared_ptr<ARDOUR::Region>) ()
#26 0x00007ff8ee95c172 in ARDOUR::Playlist::foreach_region(boost::function<void ()(boost::shared_ptr<ARDOUR::Region>)>) () from /usr/local/lib/ardour3/libardour.so.3
#27 0x00000000008ac6fa in MidiStreamView::redisplay_track() ()
#28 0x0000000000afbea8 in StreamView::playlist_switched(boost::weak_ptr<ARDOUR::Track>) ()
#29 0x0000000000afad3c in StreamView::display_track(boost::shared_ptr<ARDOUR::Track>) ()
#30 0x0000000000afaf2a in StreamView::attach() ()
#31 0x000000000064cf8d in Editor::first_idle() ()
#32 0x0000000000523cdf in ARDOUR_UI::first_idle() ()
#33 0x00007ff8ec390e62 in ?? () from /usr/lib64/libglibmm-2.4.so.1
#34 0x00007ff8eb83cbd3 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#35 0x00007ff8eb83d3b0 in ?? () from /lib64/libglib-2.0.so.0
#36 0x00007ff8eb83d650 in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#37 0x00007ff8eb2f69f1 in gtk_main_iteration () from /usr/lib64/libgtk-x11-2.0.so.0
#38 0x00000000006be13d in Editor::set_horizontal_position(double) ()
#39 0x0000000000646a59 in Editor::idle_visual_changer() ()
#40 0x00007ff8eb83cbd3 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#41 0x00007ff8eb83d3b0 in ?? () from /lib64/libglib-2.0.so.0
#42 0x00007ff8eb83d650 in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#43 0x00007ff8eb2f69f1 in gtk_main_iteration () from /usr/lib64/libgtk-x11-2.0.so.0
#44 0x00007ff8eda45395 in Gtkmm2ext::UI::flush_pending() () from /usr/local/lib/ardour3/libgtkmm2ext.so.0
#45 0x000000000056087e in ARDOUR_UI::goto_editor_window() ()
#46 0x0000000000527cae in ARDOUR_UI::load_session(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >) ()
#47 0x00000000005351bc in ARDOUR_UI::get_session_parameters ()
#48 0x0000000000535a91 in ARDOUR_UI::startup() ()
#49 0x000000000051a022 in sigc::internal::signal_emit0<void, sigc::nil>::emit(sigc::internal::signal_impl*) ()
#50 0x00007ff8eda45170 in Gtkmm2ext::UI::run(Receiver&) () from /usr/local/lib/ardour3/libgtkmm2ext.so.0
#51 0x0000000000860945 in main ()
(gdb)


so maybe it's not an ardour issue after all, but some pango bug?
(0012284)
nettings (manager)
2011-12-02 17:42

partly fixed for me as of 10875.
the new option "never display periodic midi messages", which defaults to off, allows the problem session to be opened again.
however, the pango crash can still be provoked by disabling it and zooming in afterwards - i guess this is to be expected, i'm just mentioning it for the record.
(0012285)
nettings (manager)
2011-12-02 17:46

update: paul, it's unlikely to be an out-of-memory situation like you wondered on IRC - i have 4g of ram, 3 of which are memlockable, and the crash occurs at less than 50% of system memory usage (unless there is a very short, very strong spike of memory allocation that does not show up in gnome-system-monitor).

- Issue History
Date Modified Username Field Change
2011-12-02 05:07 nettings New Issue
2011-12-02 05:07 nettings cost => 0.00
2011-12-02 05:09 nettings Steps to Reproduce Updated
2011-12-02 05:15 nettings Note Added: 0012275
2011-12-02 05:35 cth103 Target Version => 3.0-beta2
2011-12-02 17:42 nettings Note Added: 0012284
2011-12-02 17:46 nettings Note Added: 0012285
2012-01-10 12:46 cth103 Target Version 3.0-beta2 => 3.0-beta3
2012-01-27 14:56 paul Target Version 3.0-beta3 => 3.X


Copyright © 2000 - 2018 MantisBT Team
Powered by Mantis Bugtracker