[mythtv-users] MythMusic complied, now a new problem

Tom Custodio tcusto at yahoo.com
Sun Apr 27 21:44:01 UTC 2003


Hi,

I just installed MythMusic last week and and having the same GUI hang 
problems when playing MP3 or OGG that others are seeing.  I'm also using 
RH9 with a SB Live and version 0.8 of the software.

I've rebuilt with symbols and fired up ddd, it seems to be hanging in
MainVisual::timeout() trying to get a lock.

Here is the thread and backtrace info that was asked for earlier:

(gdb) info threads
  3 Thread 1116941376 (LWP 2805)  0xffffe002 in ?? ()
  2 Thread 1105755328 (LWP 2804)  0xffffe002 in ?? ()
* 1 Thread 1093081856 (LWP 2801)  0xffffe002 in ?? ()

Thread 1 (mythmusic):

#0  0xffffe002 in ?? ()
No symbol table info available.
#1  0x407713d2 in QRealMutexPrivate::lock() () from
/usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#2  0x40771c94 in QMutex::lock() () from 
/usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#3  0x08071738 in MainVisual::timeout() (this=0x81fbc98) at 
mainvisual.cpp:170
        olat = 949
        owrt = 0
        synctime = 0
        prev = (VisualNode *) 0x21
        node = (VisualNode *) 0x0
        stop = false
#4  0x080a097d in MainVisual::qt_invoke(int, QUObject*) 
(this=0x81fbc98,
_id=50, _o=0xbfffcec0) at moc_mainvisual.cpp:112
No locals.
#5  0x405250c9 in QObject::activate_signal(QConnectionList*, QUObject*) 
() from
/usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#6  0x40524f6d in QObject::activate_signal(int) () from
/usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#7  0x4080668b in QTimer::timeout() () from 
/usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#8  0x40545f12 in QTimer::event(QEvent*) () from
/usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#9  0x404c6f24 in QApplication::internalNotify(QObject*, QEvent*) () 
from
/usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#10 0x404c6b19 in QApplication::notify(QObject*, QEvent*) () from
/usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#11 0x404a1d95 in QEventLoop::activateTimers() () from
/usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#12 0x4047f8e8 in QEventLoop::processEvents(unsigned) () from
/usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#13 0x404dacf6 in QEventLoop::enterLoop() () from
/usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#14 0x404c71b1 in QApplication::enter_loop() () from
/usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#15 0x40688691 in QDialog::exec() () from 
/usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#16 0x0806df36 in startPlayback(QSqlDatabase*, QValueList<Metadata>*)
(db=0x81ae6a0, playlist=0xbfffdba0) at main.cpp:165
        pbb = (class PlaybackBox *) 0x8204728
#17 0x0806e180 in MusicCallback(void*, QString&) (data=0xbfffdac0,
selection=@0x81ba6a0) at main.cpp:212
        mdata = (MusicData *) 0xbfffdac0
        sel = {static null = {static null = <same as static member of an 
already seen
type>, d = 0x8119e08, static shared_null = 0x8119e08}, d = 0x81d77d0, 
static
shared_null = 0x8119e08}
(gdb) 

Thread 2:
#0  0xffffe002 in ?? ()
No symbol table info available.
#1  0x404bbc78 in QProc::~QProc() () from 
/usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#2  0x400a82b6 in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.

Thread 3:

#0  0xffffe002 in ?? ()
No symbol table info available.
#1  0x0808cc79 in VorbisDecoder::flush(bool) (this=0x836fb60, 
final=false) at
vorbisdecoder.cpp:115
        min = 2048
#2  0x0808d67e in VorbisDecoder::run() (this=0x836fb60) at
vorbisdecoder.cpp:271
        section = 0
#3  0x404bbc78 in QProc::~QProc() () from 
/usr/lib/qt-3.1/lib/libqt-mt.so.3
No symbol table info available.
#4  0x400a82b6 in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.

I put some cout before and after the lock and unlocks.  It gets the 
lock and can free it fine for the first 5 seconds or so, and then it 
starts hanging.

I've worked around this by changing the first set of mutex calls in
MainVisual::timeout() from output()->mutex()->lock(); to 
mutex()->lock();  I'm not sure what the side effects of that are, but
the playback GUI seems to be working now.

Does anyone know what else competes with that resource for the mutex?
I'm not quite sure how to proceed from here.

Thanks,

-Tom

__________________________________
Do you Yahoo!?
The New Yahoo! Search - Faster. Easier. Bingo.
http://search.yahoo.com


More information about the mythtv-users mailing list