[mythtv-commits] Ticket #8878: mythbackend segfaults in libQtCore during media scanning
MythTV
mythtv at cvs.mythtv.org
Tue Sep 7 03:13:24 UTC 2010
#8878: mythbackend segfaults in libQtCore during media scanning
-----------------------------------------+----------------------------------
Reporter: Jeremy Kerr <jk@…> | Type: defect
Status: new | Priority: minor
Milestone: unknown | Component: MythTV - General
Version: 0.23.1 | Severity: medium
Keywords: | Ticket locked: 0
-----------------------------------------+----------------------------------
A few minutes after starting mythbackend, it dies with a segfault in
libQtCore.
Before the crash, I noticed that the load on mysqld was high; after
enabling the mysql's general log, I see that the mythbackend seems to be
continually trying one query:
{{{
100907 10:42:32 530 Prepare INSERT INTO upnpmedia (intid, class,
itemtype, parentid, itemproperties, filepath, filename, title, coverart)
VALUES (?, ?, 'FOLDER', ?, '', ?, ?, ?, ?)
530 Reset stmt
530 Execute INSERT INTO upnpmedia (intid, class,
itemtype, parentid, itemproperties, filepath, filename, title, coverart)
VALUES (112785, 'VIDEO', 'FOLDER', 112784, '',
'/media/network/jk/Soundtracks/', '', '', '')
530 Close stmt
}}}
:it appears to be crashing while scanning for media; I have both the
mythvideo and mythmusic plugins enabled, and they're configured to find
content in /media/network.
/media/network/jk/Soundtracks contains one directory, with the name 'π'
(ie, \317\200). The (flac) files in this directory all have 'π' as their
album name. If I remove this directory, this bug no longer occurs.
I'll attach a backtrace of all threads, but here's the one for the thread
that caused the segfault:
{{{
#0 0x07a2264c in QString (this=0xb0951158, unicode=0xa98e738e, size=1) at
tools/qstring.cpp:971
#1 0x07a22899 in QString::mid (this=0xa98e7730, position=30, n=1) at
tools/qstring.cpp:3267
#2 0x07ab3de4 in QFSFileEngine::fileName (this=0xa98e64c8,
file=QAbstractFileEngine::BaseName) at io/qfsfileengine_unix.cpp:985
#3 0x07ab4982 in QFSFileEngine::fileFlags (this=0xa98e64c8, type=...) at
io/qfsfileengine_unix.cpp:827
#4 0x07a65a52 in QFileInfoPrivate::getFileFlags (this=0xa98e70a0,
request=...) at io/qfileinfo.cpp:154
#5 0x07a65bec in QFileInfo::isFile (this=0xb0951288) at
io/qfileinfo.cpp:969
#6 0x07a5d37b in QDirIteratorPrivate::matchesFilters (this=0xa98e69e8,
fileName=..., fi=...) at io/qdiriterator.cpp:319
#7 0x07a5db7d in QDirIteratorPrivate::advance (this=0xa98e69e8) at
io/qdiriterator.cpp:222
#8 0x07a5e699 in QDirIteratorPrivate (this=0xa98e69e8, path=...,
nameFilters=..., filters=..., flags=...) at io/qdiriterator.cpp:170
#9 0x07a5e87a in QDirIterator (this=0xb095139c, path=...,
nameFilters=..., filters=..., flags=...) at io/qdiriterator.cpp:435
#10 0x07a590ea in QDir::entryInfoList (this=0xb09515b8, nameFilters=...,
filters=..., sort=...) at io/qdir.cpp:1409
#11 0x07a5931f in QDir::entryInfoList (this=0xb09515b8, filters=...,
sort=...) at io/qdir.cpp:1326
#12 0x0815f3e0 in UPnpMedia::buildFileList (this=0x8739bc8, directory=...,
rootID=0, itemID=133019, query=...) at upnpmedia.cpp:132
#13 0x0815fd31 in UPnpMedia::buildFileList (this=0x8739bc8, directory=...,
rootID=0, itemID=133019, query=...) at upnpmedia.cpp:171
#14 0x0815fd31 in UPnpMedia::buildFileList (this=0x8739bc8, directory=...,
rootID=0, itemID=133018, query=...) at upnpmedia.cpp:171
#15 0x0815fd31 in UPnpMedia::buildFileList (this=0x8739bc8, directory=...,
rootID=0, itemID=133017, query=...) at upnpmedia.cpp:171
[the last frame repeats with differing itemID arguments...]
#24262 0x0815fd31 in UPnpMedia::buildFileList (this=0x8739bc8,
directory=..., rootID=0, itemID=108770, query=...) at upnpmedia.cpp:171
#24263 0x0815fd31 in UPnpMedia::buildFileList (this=0x8739bc8,
directory=..., rootID=100000, itemID=105438, query=...) at
upnpmedia.cpp:171
#24264 0x081615a3 in UPnpMedia::BuildMediaMap (this=0x8739bc8) at
upnpmedia.cpp:272
#24265 0x0815ee71 in UPnpMedia::RunRebuildLoop (this=0x8739bc8) at
upnpmedia.cpp:57
#24266 0x0815eeab in UPnpMedia::doUPnpMediaThread (param=0x8739bc8) at
upnpmedia.cpp:66
#24267 0x0025596e in start_thread (arg=0xb134fb70) at pthread_create.c:300
#24268 0x05ceda4e in clone () at
../sysdeps/unix/sysv/linux/i386/clone.S:130
}}}
So, I'd guess that the segfault is caused by mythbackend running out of
stack, as it is having trouble dealing with the metadata or directory
name.
I'm running mythbackend with the 0.23.1 'autobuild' packages for Ubuntu
10.04:
{{{
[jk at backend ~]$ mythbackend --version
Please attach all output as a file in bug reports.
MythTV Version : 26057
MythTV Branch : branches/release-0-23-fixes
Network Protocol : 23056
Library API : 0.23.1.201000710-1
QT Version : 4.6.2
Options compiled in:
linux debug using_oss using_alsa using_pulse using_jack using_pulseoutput
using_backend using_dvb using_firewire using_frontend
using_glx_proc_addr_arb using_hdhomerun using_hdpvr using_iptv using_ivtv
using_joystick_menu using_libudev using_lirc using_mheg using_opengl_video
using_opengl_vsync using_qtdbus using_qtwebkit using_v4l using_x11
using_xrandr using_xv using_xvmc using_xvmc_vld using_xvmcw
using_bindings_perl using_bindings_python using_opengl using_vdpau
using_ffmpeg_threads using_libavc_5_3 using_live using_mheg
}}}
--
Ticket URL: <http://svn.mythtv.org/trac/ticket/8878>
MythTV <http://www.mythtv.org/>
MythTV Media Center
More information about the mythtv-commits
mailing list