View Issue Details

IDProjectCategoryView StatusLast Update
0001855ardourbugspublic2007-09-09 19:14
Reporterseablade Assigned Topanic  
PrioritynormalSeveritycrashReproducibilityalways
Status assignedResolutionopen 
Product Version2.0 
Summary0001855: Crash on Playback of Automation Data
DescriptionArdour 2.0.5

When you are playing back automation data on a track, and touch a fader, or several faders, that are on playback only mode, ardour crashes with an error about witing to port mcu: 0Success which I am fairly sure is not the right port;)

Touching the fader in my case is necessary as for some reason, not sure if it is ardour or not at this point, some of the strips do not get updated like they should upon startup and do not update until they are modified.

I tried switching automation to manual, and did the same procedure of touching all my strips upon startup, and did not have a crash, however when switching back to playback mode on the automation, it crashed again.

     Seablade
TagsNo tags attached.

Activities

seablade

2007-09-04 12:07

manager   ~0004329

Ok I am going to have to take a look at this myself it seems, as I can't work any more on this session until it is fixed, SVN just crashes on startup. The console message is as follows...

MackiePort::connect_any already connected
MackiePort::connect_any already connected
Surface: couldn't write to port mcu: 0SuccessSurface: couldn't write to port 0Success

Copied over by hand, so while I was careful in my typing there may be a typo in there somewhere.

          Seablade

seablade

2007-09-04 12:23

manager   ~0004330

Uh yea I just realised I forgot to mention that the faders I reference are on the Mackie Control Universal Pro, so not in ardour itself. Though that is probably obvious from the error message;)

            Seablade

seablade

2007-09-04 13:11

manager   ~0004331

More Info:

From Debug Build, console output:

updating N6Mackie3PotE { name: vpot, id: 0xb015, type: 0xb0, raw_id: 0x15, ordinal: 6, group: strip_6 }
SurfacePort::write: [b0 35 03]
SurfacePort::wrote 3
updating N6Mackie5FaderE { name: gain, id: 0xe006, type: 0xe0, raw_id: 0x06, ordinal: 7, group: strip_7 }
SurfacePort::write: [e6 1d 71]
SurfacePort::wrote 3
updating N6Mackie3PotE { name: vpot, id: 0xb016, type: 0xb0, raw_id: 0x16, ordinal: 7, group: strip_7 }
SurfacePort::write: [b0 36 09]
Surface: couldn't write to port mcu: 0Success~MackiePort
MackiePort::close
MackiePort::close finished
~MackiePort finished
~SurfacePort::SurfacePort()
~SurfacePort::SurfacePort() finished
Surface: couldn't write to port mcu: 0Success
updating N6Mackie5FaderE { name: gain, id: 0xe007, type: 0xe0, raw_id: 0x07, ordinal: 8, group: strip_8 }
SurfacePort::write: [e7 08 64]

BackTrace to come.

          Seablade

seablade

2007-09-04 13:13

manager   ~0004332

Backtrace via ardbg...

(gdb) thread apply all bt

Thread 6 (Thread -1329906496 (LWP 20400)):
#0 0x0000002a in ?? ()
0000001 0xb0cbd913 in MackieControlProtocol::notify_gain_changed (this=0x9e60e38,
    route_signal=0x9e7b5d0)
    at libs/surfaces/mackie/mackie_control_protocol.cc:974
#2 0xb0cbda0c in MackieControlProtocol::update_automation (this=0x9e60e38,
    rs=@0x9e7b5d0) at libs/surfaces/mackie/mackie_control_protocol.cc:1045
#3 0xb0cbdaab in MackieControlProtocol::poll_automation (this=0x9e60e38)
    at libs/surfaces/mackie/mackie_control_protocol.cc:1062
0000004 0xb0cab2d9 in MackieControlProtocol::monitor_work (this=0x9e60e38)
    at libs/surfaces/mackie/mackie_control_protocol_poll.cc:66
0000005 0xb0cbe1f9 in MackieControlProtocol::_monitor_work (arg=0x9e60e38)
    at libs/surfaces/mackie/mackie_control_protocol.cc:742
#6 0xb6a34294 in start_thread () from /lib/libpthread.so.0
#7 0xb69cc32e in clone () from /lib/libc.so.6

Thread 5 (Thread -1273996096 (LWP 20399)):
#0 0xb7f0e410 in ?? ()
0000001 0xb4105478 in ?? ()
#2 0xffffffff in ?? ()
#3 0x00000002 in ?? ()
0000004 0x00000002 in ?? ()
0000005 0x00000000 in ?? ()

Thread 4 (Thread -1273492288 (LWP 20398)):
#0 0xb7f0e410 in ?? ()
0000001 0xb4180428 in ?? ()
#2 0xffffffff in ?? ()
#3 0x00000001 in ?? ()
0000004 0x00000000 in ?? ()

Thread 3 (Thread -1264346208 (LWP 20397)):
#0 0xb7f0e410 in ?? ()
0000001 0xb4a38408 in ?? ()
#2 0x000003e8 in ?? ()
#3 0x00000002 in ?? ()
0000004 0x00000000 in ?? ()

Thread 2 (Thread -1263670080 (LWP 20396)):
#0 0xb7f0e410 in ?? ()
0000001 0xb4ade4b8 in ?? ()
#2 0xb76a41e4 in ?? () from /usr/lib/libglib-2.0.so.0
#3 0xb4ade49c in ?? ()
0000004 0xb6a3a7f6 in ?? () from /lib/libpthread.so.0
0000005 0xb765eb92 in g_usleep () from /usr/lib/libglib-2.0.so.0
#6 0xb6ec263d in Glib::usleep (microseconds=10000)
    at libs/glibmm2/glibmm/timer.cc:68
#7 0xb7d00f68 in ARDOUR::AudioEngine::meter_thread (this=0x8bdb128)
    at libs/ardour/audioengine.cc:412
0000008 0xb7d03c6e in sigc::bound_mem_functor0<void, ARDOUR::AudioEngine>::operator() (this=0x8bd28f4) at libs/sigc++2/sigc++/functors/mem_fun.h:1781
0000009 0xb7d03c90 in sigc::adaptor_functor<sigc::bound_mem_functor0<void, ARDOUR::AudioEngine> >::operator() (this=0x8bd28f0)
    at libs/sigc++2/sigc++/adaptors/adaptor_trait.h:251
0000010 0xb7d03cbc in sigc::internal::slot_call0<sigc::bound_mem_functor0<void, ARDOUR::AudioEngine>, void>::call_it (rep=0x8bd28d8)
    at libs/sigc++2/sigc++/functors/slot.h:103
0000011 0x08370a6a in sigc::slot0<void>::operator() (this=0x8bcc458)
    at libs/sigc++2/sigc++/functors/slot.h:440
0000012 0xb6edc77b in call_thread_entry_slot (data=0x8bcc458)
    at libs/glibmm2/glibmm/thread.cc:43
0000013 0xb765cbef in ?? () from /usr/lib/libglib-2.0.so.0
0000014 0x08bcc458 in ?? ()
#15 0x08bd9fd8 in ?? ()
0000016 0xb6a2f000 in ?? ()
#17 0x000100e8 in ?? ()
0000018 0xb691bffc in ?? () from /lib/libc.so.6
0000019 0xb6a3eff4 in ?? () from /lib/libpthread.so.0
0000020 0xb6a362d0 in ?? () from /lib/libpthread.so.0
0000021 0xb6a3eff4 in ?? () from /lib/libpthread.so.0
0000022 0x00000000 in ?? ()

Thread 1 (Thread -1234630992 (LWP 20393)):
#0 0xb68ac564 in FcStrFree () from /usr/lib/libfontconfig.so.1
0000001 0xb68a9fae in FcValueDestroy () from /usr/lib/libfontconfig.so.1
#2 0xb689e340 in FcConfigSubstituteWithPat ()
   from /usr/lib/libfontconfig.so.1
#3 0xb68a853b in FcFontRenderPrepare () from /usr/lib/libfontconfig.so.1
0000004 0xb756d09e in ?? () from /usr/lib/libpangoft2-1.0.so.0
0000005 0x00000000 in ?? ()
#0 0x0000002a in ?? ()
(gdb)

        Seablade

panic

2007-09-09 19:12

developer   ~0004348

Added some code to further reduce bytes that result in no change to the surface control, and an explicit check for write overflow which doesn't throw and exception.

Issue History

Date Modified Username Field Change
2007-09-04 11:23 seablade New Issue
2007-09-04 12:07 seablade Note Added: 0004329
2007-09-04 12:23 seablade Note Added: 0004330
2007-09-04 13:11 seablade Note Added: 0004331
2007-09-04 13:13 seablade Note Added: 0004332
2007-09-09 19:12 panic Note Added: 0004348
2007-09-09 19:14 panic Status new => acknowledged
2007-09-09 19:14 panic Status acknowledged => assigned
2007-09-09 19:14 panic Assigned To => panic