[mythtv] Segfault with 0.15

Andrew Ingram adingram at clara.co.uk
Wed Jun 2 16:44:16 EDT 2004


I wrote to the users list shortly after 0.15 came out about a segfault in
MythMusic when scanning music.

I have just got back from a business trip and have been able to look into it
some more. I upgraded to 0.15.1 just in case it was fixed. Anyway, to recap:

Very simple to produce:
Settings->MythMusic->Scan for New Music
*BANG*

However, I did notice that doing:
Music->Scan for New Music
does NOT segfault !!!

The gdb trace is below. If I can help any more, just ask.

Regards,
Andrew


GNU gdb 5.3.90_2003-08-24-cvs-debian
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-linux"...
(gdb) handle SIGPIPE nostop
Signal        Stop      Print   Pass to program Description
SIGPIPE       No        Yes     Yes             Broken pipe
(gdb) run
Starting program: /usr/local/bin/mythfrontend
[New Thread 1101094880 (LWP 1790)]
2004-06-02 21:33:17 mythfrontend version: 0.15.20040525-1 www.mythtv.org
2004-06-02 21:33:17 Enabled verbose msgs : important general
2004-06-02 21:33:17 Registering Internal as a media playback plugin.
2004-06-02 21:33:17 Registering MythDVD DVD Media Handler as a media handler
2004-06-02 21:33:17 Registering MythDVD VCD Media Handler as a media handler
Detaching after fork from child process 1795.
Failed to run 'cdrecord --scanbus'
2004-06-02 21:33:18 Registering MythMusic Media Handler as a media handler
2004-06-02 21:33:18 Key [,[,F10 is already bound in context Stream.
[New Thread 1142852560 (LWP 1796)]
[New Thread 1152383952 (LWP 1797)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1101094880 (LWP 1790)]
0x42074b4a in AllMusic::resync() (this=0x1f) at metadata.cpp:490
490         done_loading = false;
(gdb)



(gdb) thread apply all bt full
Thread 1 (Thread 1101094880 (LWP 1790)):
#0  0x42074b4a in AllMusic::resync() (this=0x1f) at metadata.cpp:490
        aquery = {static null = {static null = <same as static member of an
already seen type>, d = 0x81d0ff8,
    static shared_null = 0x81d0ff8}, d = 0x82539f8, static shared_null =
0x81d0ff8}
        filename = {static null = {static null = <same as static member of
an already seen type>, d = 0x81d0ff8,
    static shared_null = 0x81d0ff8}, d = 0x4106ffc8, static shared_null =
0x81d0ff8}
        startdir = {static null = {static null = <same as static member of
an already seen type>, d = 0x81d0ff8,
    static shared_null = 0x81d0ff8}, d = 0x82539f8, static shared_null =
0x81d0ff8}
        query = <incomplete type>
        an_iterator = {<QGListIterator> = {list = 0x8238a98, curNode =
0x421279bc}, <No data fields>}
        map_add = (Metadata *) 0xbfffc3e0
#1  0x42063c73 in MusicCallback(void*, QString&) (data=0xbfffcf10,
selection=@0x8252a44) at main.cpp:307
        mdata = (MusicData *) 0xbfffcf10
        sel = {static null = {static null = <same as static member of an
already seen type>, d = 0x81d0ff8,
    static shared_null = 0x81d0ff8}, d = 0x8215340, static shared_null =
0x81d0ff8}
#2  0x4084d2bd in ThemedMenuPrivate::handleAction(QString const&)
(this=0x8252948, action=@0x8238b54) at themedmenu.cpp:2108
No locals.
#3  0x4084b7a3 in ThemedMenuPrivate::keyPressHandler(QKeyEvent*)
(this=0x8252948, e=0xbfffcb10) at themedmenu.cpp:1923
        action = {static null = {static null = <same as static member of an
already seen type>, d = 0x81d0ff8,
    static shared_null = 0x81d0ff8}, d = 0x82203e8, static shared_null =
0x81d0ff8}
        i = 0
        lastbutton = (ThemedButton *) 0x8238b18
        oldrow = 0
        handled = true
        actions = {<QValueList<QString>> = {sh = 0x825fee8}, <No data
fields>}
#4  0x4084e6e0 in ThemedMenu::keyPressEvent(QKeyEvent*) (this=0x8256190,
e=0xbfffcb10) at themedmenu.cpp:2294
No locals.
#5  0x40ce109f in QWidget::event(QEvent*) () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#6  0x40c5a26c in QApplication::internalNotify(QObject*, QEvent*) () from
/usr/lib/libqt-mt.so.3
No symbol table info available.
#7  0x40c59d80 in QApplication::notify(QObject*, QEvent*) () from
/usr/lib/libqt-mt.so.3
No symbol table info available.
#8  0x40bfa68d in QETWidget::translateKeyEvent(_XEvent const*, bool) () from
/usr/lib/libqt-mt.so.3
No symbol table info available.
#9  0x40bf6bf2 in QApplication::x11ProcessEvent(_XEvent*) () from
/usr/lib/libqt-mt.so.3
No symbol table info available.
#10 0x40c0b842 in QEventLoop::processEvents(unsigned) () from
/usr/lib/libqt-mt.so.3
No symbol table info available.
#11 0x40c6b8af in QEventLoop::enterLoop() () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#12 0x40c5a4f0 in QApplication::enter_loop() () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#13 0x408a9d77 in MythDialog::exec() (this=0x8256190) at mythdialogs.cpp:787
        res = 1108507068
#14 0x4206406d in runMenu(MusicData*, QString) (mdata=0xbfffcf10,
which_menu=
      {static null = {static null = <same as static member of an already
seen type>, d = 0x81d0ff8, static shared_null = 0x81d0ff8}, d = 0x823a098,
static shared_null = 0x81d0ff8}) at main.cpp:340
        themedir = {static null = {static null = <same as static member of
an already seen type>, d = 0x81d0ff8,
    static shared_null = 0x81d0ff8}, d = 0x821ef68, static shared_null =
0x81d0ff8}
        diag = (class ThemedMenu *) 0x8256190
#15 0x42067296 in mythplugin_config () at main.cpp:518
        translator = <incomplete type>
        mdata = {paths = {static null = {static null = <same as static
member of an already seen type>, d = 0x81d0ff8,
      static shared_null = 0x81d0ff8}, d = 0x8253f90, static shared_null =
0x81d0ff8}, startdir = {static null = {
      static null = <same as static member of an already seen type>, d =
0x81d0ff8, static shared_null = 0x81d0ff8},
    d = 0x8234558, static shared_null = 0x81d0ff8}, all_playlists =
0x404f12a0, all_music = 0x1f, trans = 0x8255cd8}
#16 0x4089fae1 in MythPlugin::config() (this=0x82b0970) at mythplugin.cpp:50
        rfunc = 0x42066b2a <mythplugin_config>
#17 0x408a0c0b in MythPluginManager::config_plugin(QString const&)
(this=0x8215698, plugname=@0xbfffd180) at mythplugin.cpp:180
        newname = {static null = {static null = <same as static member of an
already seen type>, d = 0x81d0ff8,
    static shared_null = 0x81d0ff8}, d = 0x823a100, static shared_null =
0x81d0ff8}
#18 0x4084cefa in ThemedMenuPrivate::handleAction(QString const&)
(this=0x8233fa8, action=@0x8257504) at themedmenu.cpp:2084
        rest = {static null = {static null = <same as static member of an
already seen type>, d = 0x81d0ff8,
    static shared_null = 0x81d0ff8}, d = 0x822c8e0, static shared_null =
0x81d0ff8}
        pmanager = (MythPluginManager *) 0x8215698
#19 0x4084b7a3 in ThemedMenuPrivate::keyPressHandler(QKeyEvent*)
(this=0x8233fa8, e=0xbfffd6d0) at themedmenu.cpp:1923
        action = {static null = {static null = <same as static member of an
already seen type>, d = 0x81d0ff8,
    static shared_null = 0x81d0ff8}, d = 0x8215200, static shared_null =
0x81d0ff8}
        i = 0
        lastbutton = (ThemedButton *) 0x82574c8
        oldrow = 3
        handled = true
        actions = {<QValueList<QString>> = {sh = 0x820a5e0}, <No data
fields>}
#20 0x4084e6e0 in ThemedMenu::keyPressEvent(QKeyEvent*) (this=0x82347a0,
e=0xbfffd6d0) at themedmenu.cpp:2294
No locals.
#21 0x40ce109f in QWidget::event(QEvent*) () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#22 0x40c5a26c in QApplication::internalNotify(QObject*, QEvent*) () from
/usr/lib/libqt-mt.so.3
No symbol table info available.
#23 0x40c59d80 in QApplication::notify(QObject*, QEvent*) () from
/usr/lib/libqt-mt.so.3
No symbol table info available.
#24 0x40bfa68d in QETWidget::translateKeyEvent(_XEvent const*, bool) () from
/usr/lib/libqt-mt.so.3
No symbol table info available.
#25 0x40bf6bf2 in QApplication::x11ProcessEvent(_XEvent*) () from
/usr/lib/libqt-mt.so.3
No symbol table info available.
#26 0x40c0b842 in QEventLoop::processEvents(unsigned) () from
/usr/lib/libqt-mt.so.3
No symbol table info available.
#27 0x40c6b8af in QEventLoop::enterLoop() () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#28 0x40c5a4f0 in QApplication::enter_loop() () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#29 0x408a9d77 in MythDialog::exec() (this=0x82347a0) at mythdialogs.cpp:787
        res = 1082825984
#30 0x08068166 in RunMenu(QString) (themedir=
      {static null = {static null = <same as static member of an already
seen type>, d = 0x81d0ff8, static shared_null = 0x81d0ff8}, d = 0x82ae440,
static shared_null = 0x81d0ff8}) at main.cpp:529
        exitstatus = 0
#31 0x0806c805 in main (argc=1, argv=0xbfffde84) at main.cpp:988
        lcd_host = {static null = {static null = <same as static member of
an already seen type>, d = 0x81d0ff8,
    static shared_null = 0x81d0ff8}, d = 0x82152b8, static shared_null =
0x81d0ff8}
        lcd_port = 13666
        a = <incomplete type>
        logfile = {static null = {static null = <same as static member of an
already seen type>, d = 0x81d0ff8,
    static shared_null = 0x81d0ff8}, d = 0x81f7500, static shared_null =
0x81d0ff8}
        verboseString = {static null = {static null = <same as static member
of an already seen type>, d = 0x81d0ff8,
    static shared_null = 0x81d0ff8}, d = 0x81f7518, static shared_null =
0x81d0ff8}
        pluginname = {static null = {static null = <same as static member of
an already seen type>, d = 0x81d0ff8,
    static shared_null = 0x81d0ff8}, d = 0x81f7530, static shared_null =
0x81d0ff8}
        finfo = {fn = {static null = {static null = <same as static member
of an already seen type>, d = 0x81d0ff8,
      static shared_null = 0x81d0ff8}, d = 0x81f7588, static shared_null =
0x81d0ff8}, fic = 0x0, cache = true, symLink = false}
        binname = {static null = {static null = <same as static member of an
already seen type>, d = 0x81d0ff8,
    static shared_null = 0x81d0ff8}, d = 0x81f75a0, static shared_null =
0x81d0ff8}
        logfd = -1
        fileprefix = {static null = {static null = <same as static member of
an already seen type>, d = 0x81d0ff8,
    static shared_null = 0x81d0ff8}, d = 0x81f7678, static shared_null =
0x81d0ff8}
        dir = <incomplete type>
        db = (struct QSqlDatabase *) 0x820a960
        themename = {static null = {static null = <same as static member of
an already seen type>, d = 0x81d0ff8,
    static shared_null = 0x81d0ff8}, d = 0x82aff08, static shared_null =
0x81d0ff8}
        randomtheme = false
        themedir = {static null = {static null = <same as static member of
an already seen type>, d = 0x81d0ff8,
    static shared_null = 0x81d0ff8}, d = 0x82ae440, static shared_null =
0x81d0ff8}
        switchMode = false
        mainWindow = (class MythMainWindow *) 0x82adc98
        pmanager = (MythPluginManager *) 0x8215698
        mon = (class MediaMonitor *) 0x0
        exitstatus = 1



More information about the mythtv-dev mailing list