[mythtv] Mythmusic 0.15 segfault

Ken Bass kbass at kenbass.com
Fri May 28 23:16:54 EDT 2004


I upgraded from 0.13 to 0.15. However, I wiped the mythconverg database
first and reran the mc.sql. My old database had problems being converted. I
think it may have been corrupted. I couldnt even back it up - something
about cannot find the recordedmarkup.myd file or something during a dump.

Anyhow, mythmusic crashes when it is updating the database. I've recompiled
with debug and the backtrace is below. For whatever reason, the FILE *input
pointer is NULL. The ptr is not range checked and the call to 'fstat()'
appears to be causing the segfault. At this point in the code, id3file is
NULL.

#0  0x41314449 in fileno_unlocked () from /lib/i686/libc.so.6
#1  0x42221436 in MadDecoder::getMetadata(QSqlDatabase*) (this=0x871c350,
db=0x821c9e0) at maddecoder.cpp:652
#2  0x422222db in CheckFile(QString const&) (filename=@0x8707d7c) at
main.cpp:73
#3  0x4222331f in SearchDir(QString&) (directory=@0xbfffeee4) at
main.cpp:219
#4  0x42223ba3 in MusicCallback(void*, QString&) (data=0xbfffeee0,
selection=@0x851a5cc) at main.cpp:306
#5  0x4083f5a0 in ThemedMenuPrivate::handleAction(QString const&)
(this=0x851a4d0, action=@0x42a026e4) at themedmenu.cpp:2108
#6  0x4083d9c6 in ThemedMenuPrivate::keyPressHandler(QKeyEvent*)
(this=0x851a4d0, e=0xbfffea70) at themedmenu.cpp:1923
#7  0x408409d3 in ThemedMenu::keyPressEvent(QKeyEvent*) (this=0x8279dd0,
e=0xbfffea70) at themedmenu.cpp:2294
#8  0x40da106c in QWidget::event(QEvent*) () from
/usr/lib/qt-3.1/lib/libqt-mt.so.3
#9  0x40d0ef24 in QApplication::internalNotify(QObject*, QEvent*) () from
/usr/lib/qt-3.1/lib/libqt-mt.so.3
#10 0x40d0eab7 in QApplication::notify(QObject*, QEvent*) () from
/usr/lib/qt-3.1/lib/libqt-mt.so.3
#11 0x40cb6abe in QETWidget::translateKeyEvent(_XEvent const*, bool) () from
/usr/lib/qt-3.1/lib/libqt-mt.so.3
#12 0x40cb2d14 in QApplication::x11ProcessEvent(_XEvent*) () from
/usr/lib/qt-3.1/lib/libqt-mt.so.3
#13 0x40cc7bda in QEventLoop::processEvents(unsigned) () from
/usr/lib/qt-3.1/lib/libqt-mt.so.3
#14 0x40d22cf6 in QEventLoop::enterLoop() () from
/usr/lib/qt-3.1/lib/libqt-mt.so.3
#15 0x40d0f1b1 in QApplication::enter_loop() () from
/usr/lib/qt-3.1/lib/libqt-mt.so.3
#16 0x4089d393 in MythDialog::exec() (this=0x8279dd0) at mythdialogs.cpp:787
#17 0x42223ff3 in runMenu(MusicData*, QString) (mdata=0xbfffeee0,
which_menu=
      {static null = {static null = <same as static member of an already
seen type>, d = 0x81d8f30, static shared_null = 0x81d8f30}, d = 0x824fd68,
static shared_null = 0x81d8f30}) at main.cpp:340
#18 0x422269bd in mythplugin_run () at main.cpp:495
#19 0x40893354 in MythPlugin::run() (this=0x824a258) at mythplugin.cpp:41
#20 0x4089421b in MythPluginManager::run_plugin(QString const&)
(this=0x82488d8, plugname=@0xbffff070) at mythplugin.cpp:164
#21 0x4083f326 in ThemedMenuPrivate::handleAction(QString const&)
(this=0x8275aa0, action=@0x827f584) at themedmenu.cpp:2091
#22 0x4083d9c6 in ThemedMenuPrivate::keyPressHandler(QKeyEvent*)
(this=0x8275aa0, e=0xbffff450) at themedmenu.cpp:1923
#23 0x408409d3 in ThemedMenu::keyPressEvent(QKeyEvent*) (this=0x8276358,
e=0xbffff450) at themedmenu.cpp:2294
#24 0x40da106c in QWidget::event(QEvent*) () from
/usr/lib/qt-3.1/lib/libqt-mt.so.3
#25 0x40d0ef24 in QApplication::internalNotify(QObject*, QEvent*) () from
/usr/lib/qt-3.1/lib/libqt-mt.so.3
#26 0x40d0eab7 in QApplication::notify(QObject*, QEvent*) () from
/usr/lib/qt-3.1/lib/libqt-mt.so.3
#27 0x40cb6abe in QETWidget::translateKeyEvent(_XEvent const*, bool) () from
/usr/lib/qt-3.1/lib/libqt-mt.so.3
#28 0x40cb2d14 in QApplication::x11ProcessEvent(_XEvent*) () from
/usr/lib/qt-3.1/lib/libqt-mt.so.3
#29 0x40cc7bda in QEventLoop::processEvents(unsigned) () from
/usr/lib/qt-3.1/lib/libqt-mt.so.3
#30 0x40d22cf6 in QEventLoop::enterLoop() () from
/usr/lib/qt-3.1/lib/libqt-mt.so.3
#31 0x40d0f1b1 in QApplication::enter_loop() () from
/usr/lib/qt-3.1/lib/libqt-mt.so.3
#32 0x4089d393 in MythDialog::exec() (this=0x8276358) at mythdialogs.cpp:787
#33 0x0806dba8 in RunMenu(QString) (themedir=
      {static null = {static null = <same as static member of an already
seen type>, d = 0x81d8f30, static shared_null = 0x81d8f30}, d = 0x8296938,
static shared_null = 0x81d8f30}) at main.cpp:529
#34 0x08072504 in main (argc=1, argv=0xbffffba4) at main.cpp:988
#35 0x412c0a07 in __libc_start_main () from /lib/i686/libc.so.6


More information about the mythtv-dev mailing list