View Issue Details

IDProjectCategoryView StatusLast Update
0000947ardourbugspublic2008-11-20 23:42
ReporterJoeHartley Assigned Topaul  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Summary0000947: FFWD causes freezup of GTK interface
Descriptiongtk 0.583, libardour 0.883, load a session, connect MIDI between Ardour and a Behringer BCF2000, and press the FWD key on the controller. Ardour responds to the command and starts playing back at a fast speed, then pops up a small, empty window and becomes non-responsive. Ardour must be killed manually from a command line.

From the trace below, it looks like it's falling over because it can't read the data from the hard drives fast enough in a FFWD situation. I loaded up another session which had only 2 stereo tracks, and it was able to keep up with no problem, so this is definitely related to the size of the session.
Additional Informationhere's a trace from gdb:

xtc:~% gdb /usr/bin/ardour
GNU gdb Red Hat Linux (5.3post-0.20021129.18rh)
Copyright 2003 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux-gnu"...
(gdb) run
Starting program: /usr/bin/ardour
Between grand theft and a legal fee, there only stands a law degree.
[New Thread 16384 (LWP 22925)]
[New Thread 32769 (LWP 22952)]
[New Thread 16386 (LWP 22953)]
Ardour/GTK 0.9beta28
   (built using 0.583.0 with libardour 0.883.0)
Copyright (C) 1999-2005 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.
Loading UI configuration file /home/jh/.ardour_ui.rc
Loading system configuration file /home/jh/.ardour_system.rc
Loading user configuration file /home/jh/.ardour/ardour.rc
ardour: [WARNING]: Your system generates "Mod2" when the NumLock key is pressed. This can cause problems when editing so Ardour will use Mod3 to mean Meta rather than Mod2
[New Thread 32771 (LWP 22954)]
[New Thread 49156 (LWP 22955)]
Loading session /tape/Meccalily-Jungle using snapshot Final Mix
[New Thread 65541 (LWP 22956)]
[New Thread 81926 (LWP 22957)]
[New Thread 98311 (LWP 22958)]

***** This is where I had to kill ardour from a command line *****

Program received signal SIGCONT, Continued.
[Switching to Thread 16384 (LWP 22925)]
0x4099d985 in __pthread_sigsuspend () from /lib/i686/libpthread.so.0
(gdb)
(gdb) bt
#0 0x4099d985 in __pthread_sigsuspend () from /lib/i686/libpthread.so.0
0000001 0x4099d388 in __pthread_wait_for_restart_signal ()
   from /lib/i686/libpthread.so.0
#2 0x4099eef0 in __pthread_alt_lock () from /lib/i686/libpthread.so.0
#3 0x4099bda7 in pthread_mutex_lock () from /lib/i686/libpthread.so.0
0000004 0x4094aa4f in pthread_mutex_lock () from /lib/i686/libc.so.6
0000005 0x080e2f21 in PBD::Lock::lock() (this=0x86d7950) at lockmonitor.h:41
#6 0x08089504 in LockMonitor (this=0xbfffeec0, lck=@0x86d7950, l=434,
    f=0x851f8f8 "libs/gtkmmext/gtk_ui.cc") at lockmonitor.h:75
#7 0x08434aca in Gtkmmext::UI::handle_ui_requests() (this=0x86d7908)
    at libs/gtkmmext/gtk_ui.cc:434
0000008 0x08434a95 in Gtkmmext::UI::signal_pipe_callback(void*, int, GdkInputCondition) (arg=0x86d7908, fd=9, cond=GDK_INPUT_READ) at libs/gtkmmext/gtk_ui.cc:426
0000009 0x4029ec22 in gdk_get_show_events () from /usr/lib/libgdk-1.2.so.0
0000010 0x402d30a6 in g_io_add_watch () from /usr/lib/libglib-1.2.so.0
0000011 0x402d49ae in g_get_current_time () from /usr/lib/libglib-1.2.so.0
0000012 0x402d4e89 in g_get_current_time () from /usr/lib/libglib-1.2.so.0
0000013 0x402d5124 in g_main_run () from /usr/lib/libglib-1.2.so.0
0000014 0x401df27f in gtk_main () from /usr/lib/libgtk-1.2.so.0
#15 0x084920eb in Gtk::Main::run_impl() (this=0x86d7028)
    at libs/gtkmm/src/gtk--/main.cc:11
0000016 0x0806e049 in Gtk::Main::run() () at main.h:168
#17 0x0806d9d0 in ArdourDialog::run() (this=0xbffff290)
    at gtk_ardour/ardour_dialog.cc:154
0000018 0x0806eb54 in ArdourMessage (this=0xbffff290, parent=0x88cc280, name=
        {static npos = 4294967295, _M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x96205b4 "diskrate2 dialog"}, static _S_empty_rep_storage = {0, 0, 3446, 0}}, msg=
        {static npos = 4294967295, _M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x913e89c "The disk system on your computer\nwas not able to keep up with Ardour.\n\nSpecifically, it failed to read data from disk\nquickly enough to keep up with playback.\n"}, static _S_empty_rep_storage = {0, 0, 3446, 0}}, grab_focus=true, auto_run=true) at gtk_ardour/ardour_message.cc:66
0000019 0x08082969 in ARDOUR_UI::disk_underrun_handler() (this=0x86d7908)
    at gtk_ardour/ardour_ui.cc:3312
0000020 0x080879f9 in SigC::ObjectSlot0_<void, ARDOUR_UI>::callback(void*) (
    d=0x913e9e4) at object_slot.h:56
0000021 0x0806cf09 in SigC::Callback0<void>::call() (this=0x913e9e4) at slot.h:260
0000022 0x082fe6e3 in SigC::Slot0<void>::call() (this=0x89661e4) at slot.h:284
0000023 0x08434cb4 in Gtkmmext::UI::do_request(Gtkmmext::UI::Request*) (
    this=0x86d7908, req=0x89661d4) at libs/gtkmmext/gtk_ui.cc:466
#24 0x08434b6c in Gtkmmext::UI::handle_ui_requests() (this=0x86d7908)
    at libs/gtkmmext/gtk_ui.cc:441
0000025 0x08434a95 in Gtkmmext::UI::signal_pipe_callback(void*, int, GdkInputCondition) (arg=0x86d7908, fd=9, cond=GDK_INPUT_READ) at libs/gtkmmext/gtk_ui.cc:426
0000026 0x4029ec22 in gdk_get_show_events () from /usr/lib/libgdk-1.2.so.0
0000027 0x402d30a6 in g_io_add_watch () from /usr/lib/libglib-1.2.so.0
0000028 0x402d49ae in g_get_current_time () from /usr/lib/libglib-1.2.so.0
0000029 0x402d4e89 in g_get_current_time () from /usr/lib/libglib-1.2.so.0
0000030 0x402d5124 in g_main_run () from /usr/lib/libglib-1.2.so.0
0000031 0x401df27f in gtk_main () from /usr/lib/libgtk-1.2.so.0
0000032 0x084920eb in Gtk::Main::run_impl() (this=0x86d7028)
    at libs/gtkmm/src/gtk--/main.cc:11
0000033 0x0806e049 in Gtk::Main::run() () at main.h:168
0000034 0x08434140 in Gtkmmext::UI::run(Receiver&) (this=0x86d7908,
    old_receiver=@0x86c0e20) at libs/gtkmmext/gtk_ui.cc:171
0000035 0x0821e4e9 in main (argc=1, argv=0xbffff8a4) at gtk_ardour/main.cc:454
0000036 0x40871a67 in __libc_start_main () from /lib/i686/libc.so.6
(gdb) quit
The program is running. Exit anyway? (y or n) y
TagsNo tags attached.

Activities

paul

2005-04-07 02:55

administrator   ~0002169

fixed in CVS. ardour will still be unable to read the data from disk fast enough, but the error message that caused the lockup is now handled gracefully.

Issue History

Date Modified Username Field Change
2005-04-03 16:44 JoeHartley New Issue
2005-04-03 16:44 JoeHartley E-mail => jh@brainiac.com
2005-04-03 16:44 JoeHartley Name => Jpe Hartley
2005-04-07 02:55 paul Status new => resolved
2005-04-07 02:55 paul Resolution open => fixed
2005-04-07 02:55 paul Assigned To => paul
2005-04-07 02:55 paul Note Added: 0002169
2008-11-20 23:42 seablade Status resolved => closed